如何防止我的用户直接访问仅用于ajax调用的页面?
在ajax调用期间传递密钥似乎是一种解决方案,但是不处理没有密钥的访问。但是制作密钥也很容易,不是吗?查看源的诅咒…
p / s:使用Apache作为Web服务器。
编辑:要回答原因,我的index.php中有jQuery ui- tabs,并且在这些选项卡中是带有脚本的表单,如果直接访问它们将不起作用。我不知道为什么用户会想要这样做,我只是想通过防止没有验证脚本直接访问表单来使用户更友好。
正如其他人所说,可以通过创建适当的头来模拟Ajax请求。如果要进行基本检查以查看该请求是否为Ajax请求,则可以使用:
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { //Request identified as ajax request }
但是,您永远不应基于此检查来确保安全。如果需要,它将消除对页面的直接访问。