小编典典

禁止直接访问PHP页面

ajax

如何防止我的用户直接访问仅用于ajax调用的页面?

在ajax调用期间传递密钥似乎是一种解决方案,但是不处理没有密钥的访问。但是制作密钥也很容易,不是吗?查看源的诅咒…

p / s:使用Apache作为Web服务器。

编辑:要回答原因,我的index.php中有jQuery ui-
tabs,并且在这些选项卡中是带有脚本的表单,如果直接访问它们将不起作用。我不知道为什么用户会想要这样做,我只是想通过防止没有验证脚本直接访问表单来使用户更友好。


阅读 308

收藏
2020-07-26

共1个答案

小编典典

正如其他人所说,可以通过创建适当的头来模拟Ajax请求。如果要进行基本检查以查看该请求是否为Ajax请求,则可以使用:

 if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
     //Request identified as ajax request
 }

但是,您永远不应基于此检查来确保安全。如果需要,它将消除对页面的直接访问。

2020-07-26