Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅通过ajax访问文件_Php_Javascript_Ajax_.htaccess_Http Status Code 404 - Fatal编程技术网

Php 仅通过ajax访问文件

Php 仅通过ajax访问文件,php,javascript,ajax,.htaccess,http-status-code-404,Php,Javascript,Ajax,.htaccess,Http Status Code 404,嘿,我想知道在使用ajax时是否有一种只查看文件的方法。例如 我已经设置了ajax等,我提出了一个请求,但任何人都可以找到我的文件夹结构,转到我的php文件,任何事情都可能发生,如果他们试图访问该文件,我想给他们一个404。我什么都没试过,因为我一点线索都没有。 您需要使用.htaccess吗 我试着在互联网上搜索这篇文章,但我什么也找不到,所以如果还有类似的文章,请告诉我并给我一个链接,谢谢。这不是一件容易的事 与其他HTTP访问一样,Ajax也是通过请求进行的。正常的请求是通过GET方法完成

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


我试着在互联网上搜索这篇文章,但我什么也找不到,所以如果还有类似的文章,请告诉我并给我一个链接,谢谢。

这不是一件容易的事

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

我很快就遇到了你的情况,我的解决方案虽然还远远不够完美,但是:

  • 使用
    POST
    方法在应用程序中进行所有Ajax调用
  • 将此添加到一个文件中,该文件包含在每个PHP的开头,该PHP应该通过Ajax获取:

    if ($_SERVER['REQUEST_METHOD'] != 'POST') {
        header('Location: /404page.php'); //The / represents the site root
        exit;
    }
    
  • 这样,试图直接打开您的页面的用户将被重定向到404页面

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


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

    我知道你说过你没有尝试过任何东西,但问题是:。@ArtursLapins首先让自己了解AJAX主题以及它的具体功能是非常明智的。主要观点是,这是一般性的。如果您试图访问的文件可通过浏览器(或允许它的任何其他协议,在本例中为http/https)检索,则可以使用名为AJAX的方法检索。同意上面的dbf,您首先需要了解AJAX是什么,还可以尝试使用附加的标题或请求传递的信息。我不明白为什么DV和VC会这样做。OP有一个问题肯定困扰了很多人,包括我。即使对于一个经验丰富的开发人员来说,这看起来很愚蠢或者几乎不可能,但他至少应该知道为什么这在技术上是不可行的。