-4

嘿,我想知道是否有一种方法可以在使用 ajax 时只查看您的文件。例如,我设置了 ajax 等,我提出了一个请求,但任何人都可以找出我的文件夹结构并转到我的 php 文件,任何事情都可能发生,如果他们尝试访问该文件,我想给他们一个 404。我没有尝试过任何事情,因为我没有最小的线索。您需要使用 .htaccess 吗?

我试图在互联网上搜索这个我找不到任何东西,所以如果有另一个类似的帖子,请告诉我并给我一个链接,谢谢。

4

1 回答 1

1

不是一件容易的事。

与任何其他 HTTP 访问一样,Ajax 是通过请求进行的。正常的请求是用这个GET方法完成的,就像有一个GETAjax 请求方法一样。

我遇到了你的情况,时间不长,我的解决方案,即使远非完美,是这样的:

  1. 使应用程序中的所有 Ajax 调用都使用该POST方法;
  2. 将此添加到您include/require在每个应该通过 Ajax 获取的 PHP 开头的文件中:

    if ($_SERVER['REQUEST_METHOD'] != 'POST') {
        header('Location: /404page.php'); //The / represents the site root
        exit;
    }
    

这样,试图直接打开您的页面的人将被重定向到 404 页面。

当然,可以很容易地伪造一个 POST 请求标头。您还可以为每个 Ajax 调用添加一个 POST 参数,但是可以伪造标头的参数也可以轻松伪造 POST 数据。

只需进行强大的服务器端验证,以确保用户有权查看页面并且它应该接收的所有数据都在那里并且有效。如果有人乱用请求标头并在您的应用程序之外看到丑陋的页面,这毕竟不是您的问题。

于 2012-09-16T20:04:52.553 回答