2012-09-16 106 views
-4

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

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

+1

我知道你说过你没有尝试过任何东西,但是这里有个问题:[你有什么尝试?](http://www.whathaveyoutried.com)。 – rationalboss

+0

@ArtursLapins首先让你自己了解AJAX这个主题,以及它究竟做了什么,这将是非常明智的。主要观点是,这是一般情况。如果您尝试访问的文件可以通过浏览器(或任何允许访问的协议(本例中为http/https))进行检索,则可以使用名为AJAX的方法来检索该文件。 – dbf

+0

同意上面的dbf你需要先理解AJAX是什么,也可以尝试使用额外的头文件或传递请求的信息。 – Gntem

回答

1

不是一件容易的事。

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

我面临的情况和你不是太长,我的解决方案,尽管远非完美,是这样的:

  1. 让所有的Ajax应用程序中调用使用POST方法;
  2. 一下添加到一个文件,你include在应该通过Ajax来获取每个PHP的开始/ require

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

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

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

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