Javascript 阻止直接访问js、css文件,但允许从index.html访问?

Javascript 阻止直接访问js、css文件,但允许从index.html访问?,javascript,php,html,css,.htaccess,Javascript,Php,Html,Css,.htaccess,这是我的目录,看起来像: index.html data.js .htaccess index.html中的内容: <html> <body> <script src="data.js" /> </body> </html> 或 但它也总是阻止index.html的访问 谢谢 我不希望用户通过像这样的直接链接查看或下载我的data.js www.sample.com/data.js 不可能。 JS将在客户端呈现,即它将被下载到缓存

这是我的目录,看起来像:

  • index.html
  • data.js
  • .htaccess
index.html中的内容:

<html>
<body>
<script src="data.js" />
</body>
</html>

但它也总是阻止index.html的访问

谢谢

我不希望用户通过像这样的直接链接查看或下载我的data.js www.sample.com/data.js

不可能。
JS将在客户端呈现,即它将被下载到缓存中,无论您如何保护它。

在提问之前尝试进行搜索。此类主题有很多搜索结果可用

部分链接:

1.

2..

.
.
.
以及更多



所有人都有一个共同的答案,那就是:你不能隐藏/阻止访问者访问CSS或JS文件。换句话说,“不可能”我的提示很容易被忽略,但如果不小心,我们可能会被困住

仅页面的实时视图 您可以使用javascript替换或删除脚本标记,以便在页面的实时视图中隐藏该标记。但是如果您直接观看网络,您可以很容易地看到javascript文件/代码

<div id="RemoveMe0">
    <script type="text/javascript">
        //This code it is hidden to live view.
        var my_var = 5 + 5;

        $('#RemoveMe0').remove();
        //or document.getElementById("RemoveMe0").innerHTML = "";
    </script>
</div>

或者缩小/解析JS 您可以使用如下工具:

  • :此工具使用eval函数,并尝试使脚本复杂化
  • :使初学者的代码复杂化,容易忽略
  • :优化、压缩和缩小代码它是生产环境的自然工具

不可能。互联网不是这样运作的。你发明的任何解决方案都很容易被忽略。这有点不同,他不想访问那个文件,我希望我的index.html仍然可以访问。我告诉你,这是不可能的。用户“直接”访问文件与通过index.html间接访问文件之间没有区别。你不能阻止一个而允许另一个。有没有什么方法可以通过php或者别的什么来做到这一点,因为我真的需要它。没有。你没有得到不可能的哪一部分?充其量,你可以混淆你的代码,使它对人类可读性降低,但你不能阻止人们看到它。互联网上任何地方都没有这样做的网站。不知何故,尽管存在这种“限制”,互联网仍在继续发挥作用。如果浏览器可以访问JavaScript文件,那么人类就可以读取它。故事结束。谢谢,我只希望用户不能通过直接访问查看它,这对我来说已经足够了。@user972611这是不可能的,无论你多么想要它。使用.htaccess是可能的。回答问题之前请先研究一下。@Dre\u Dre如果可能的话,它很好。你为什么不给这篇文章添加一个答案。如果这证明我的答案是错误的,我没有问题。我很乐意学习一些新的东西,或者你可以使用
document.currentScript
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] 
RewriteRule \.(gif|jpg|css|js|png)$ - [F]
<div id="RemoveMe0">
    <script type="text/javascript">
        //This code it is hidden to live view.
        var my_var = 5 + 5;

        $('#RemoveMe0').remove();
        //or document.getElementById("RemoveMe0").innerHTML = "";
    </script>
</div>
<div id="RemoveMe1">
    <script type="text/javascript" src="Javascript/MyJS.js"></script>
    <script>
        //Your include it is hidden to live view.
        $('#RemoveMe1').remove();
    </script>
</div>
function Hello() {
    alert("Hello");
}
Hello();
//<script>document.body.innerHTML = "";</script>
AddType text/html .js