2013-08-29 41 views
0

我有一个用PHP,HTML和JavaScript首先编写的网页。我想阻止(拒绝访问页面并显示一条消息)访问我的网页,该网页没有在浏览器设置中启用JavaScript或者不支持它,因为那时我的页面没有正确显示,并且有很多错误(还有安全漏洞!)。我知道有可能在HTML中编写<noscript>语句,但是除了这个文本以外的其他东西是可以显示的,并且它也是可移动的(例如通过检查器功能是浏览器),我说没有JS,我的页面包含错误。所以,我的问题:有没有办法阻止访问*不支持使用PHP的我的网页的用户?任何其他建议,欢迎:)为非JavaScript用户提供块访问

*阻止访问手段 - 拒绝访问主页,并显示一条消息

+3

你不能拒绝访问,但你可以给出一个不错的信息并隐藏你的主要内容。 – 2013-08-29 19:05:49

+0

有可能在这里有一些有用的答案:http://stackoverflow.com/questions/4454551/check-if-javascript-is-enabled-with-php – showdev

+3

_...有很多的错误(也安全漏洞! )_ - 那是你的第一个问题。依赖于JS的安全** c ** ** – SeanWM

回答

1

如果你真的真的需要这个。我说三个真的是因为我认为大多数时候你可以选择替代这个。

使用JavaScript设置cookie,并将其与请求一起传递给服务器,并使用传递的请求验证服务器上的cookie。如果你能够验证cookie你的客户端没有JS。

更好的方法是从单点重定向js和非js用户。在您的index.html文件中说,您已经有了JavaScript代码,可以将您的客户或访问者重定向到不同的网址。这样你就知道这些用户已经启用了js,否则他们不会被重定向。

1

你可以做一个“子”页面加载通过AJAX它的全部内容。这不会阻止人们直接点击您的URLS。不要相信客户。

4

这是不可能以真正安全的方式。你可以只提供一个空白的页面,然后使用JS实际加载内容(例如通过AJAX),但问题是JS必须从某处加载该代码,并且攻击者可以做到这一点太。但这是真正的问题:

用户可以控制其浏览器。 JS是客户端代码。攻击者可能会选择运行,不运行或更改,然后运行您的JS。攻击者甚至可以运行自己的JS来调用或替换你的函数。依赖于您的JS的任何安全性默认情况下都会中断。

因此,尽管您可以(和人们)在您的页面上显示警告消息,然后通过JS代码隐藏或使用JS加载您的内容,但它永远不会安全。

0

其他的答案和评论已经包括了很多,为什么你真的不能技术上使用Javascript,但是,一个简单的解决方法去做只有启用JS东西阻止访问的详细信息,是调用JS功能后, DOM负载:

<script type="text/javascript"> 
    window.onload = do_something(); 
    </script> 
</body> 
</html> 

do_something(),则可能包括简单的事情,像开关块元素的可见性,例如,隐藏非JS消息,再加上推出AJAX装载机还是从上面已经提出的东西,别的东西。

相关问题