我需要在javascript中限制直接的URL文件名!当我输入HTML文件的直接URL时,它不应该允许在里面显示内容。它应该向用户发出警告。它只有在我们点击索引文件链接时才能工作。
文件是1.index.html 2.viewer.html
我试图在viewer.html中限制直接访问,但它无效。当我点击index.html页面中的链接时,查看器页面应该显示它的内容。
Viewer.html代码
<iframe src="https://docs.google.com/viewerng/viewer?url=http:files/tutorial.pdf&chrome=true" style="width:100%; height:100%;" frameborder="0"></iframe>
<script type="text/javascript">
var accepted_domains=new Array("viewer.html","viewer.html")
var domaincheck=document.location.href //retrieve the current URL of user browser
var accepted_ok=false //set acess to false by default
if (domaincheck.indexOf("http")!=-1){ //if this is a http request
for (r=0;r<accepted_domains.length;r++){
if (domaincheck.indexOf(accepted_domains[r])!=-1){ //if a match is found
accepted_ok=true //set access to true, and break out of loop
break
}
}
}
else
accepted_ok=true
if (!accepted_ok){
alert("You\'re not allowed to directly link to this file on our server!")
history.back(-1)
}
</script>
答案 0 :(得分:1)
实现这一目标的一种方法是使用&#34; document.referrer&#34;属性。
如果是您的入口点,则document.referrer将设置为&#34;&#34;。
如果您链接到子页面,那么您的文档引荐来源将设置为您的host / entry.html
http://www.w3schools.com/jsref/prop_doc_referrer.asp
不如服务器端,但有些东西。
答案 1 :(得分:0)
测试1.html:
...
location /billing/ {
...
root /var/virtual/a-laravel-app/public;
# this replaces the rewrite
# rewrite will alter the url in nginx and a new lookup will be made
# the entry point for Laravel is the public/index.php file
try_files /index.php =404;
....
}
...
<强> test2.html:强>
<a href="test2.html">Test 2</a>
这也允许您指定主机名,而不仅仅是文件名。 (让协议关闭以使其与协议无关)
免责声明:对于REAL安全性,此锁定应在服务器端完成。