这是我的目录:
index.html中的内容:
<html>
<body>
<script src="data.js" />
</body>
</html>
我的问题是:
我不希望用户通过data.js
www.sample.com/data.js
但data.js
仍然允许从index.html
我试过像.htaccess一样:
deny from all
或
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg|css|js|png)$ - [F]
但它总是阻止从index.html访问。
感谢。
答案 0 :(得分:5)
我不希望用户通过直接链接查看或下载我的data.js www.sample.com/data.js
JS将在客户端呈现,即无论您采取什么措施保护它,都会将其下载到缓存中。
答案 1 :(得分:2)
在提问之前尝试进行搜索。有很多搜索结果可用于此类主题。
部分链接:
1。 How to prevent direct access to CSS and JS files
2 .. http://www.codeproject.com/Questions/287331/Prevent-user-from-viewing-CSS-or-Javascript-of-any
。
。
。
等......
所有人都有一个共同的答案: 您无法隐藏/阻止访问者访问CSS或JS文件。换句话说,“不可能”
答案 2 :(得分:2)
我的提示很容易被绕过,但不小心,我们可能会被困。
您可以使用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>
包括javascript:
<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>
将您的文件放在HTML文件中(myfile.js到myfile.html),在直接视图中可以执行javascript函数。
function Hello() {
alert("Hello");
}
Hello();
//<script>document.body.innerHTML = "";</script>
或者,如果您不想重命名文件,可以使用.htaccess文件修改文件头。
AddType text/html .js
您可以使用以下工具: