【问题标题】:How to deny ajax PHP files from browser如何拒绝来自浏览器的 ajax PHP 文件
【发布时间】:2010-06-07 15:25:46
【问题描述】:

我的 WS 上有 AJAX 脚本。 有没有一种方法可以拒绝直接访问 ajax php 后端? 并且只有在我的 ajax 代码运行时才能访问它

【问题讨论】:

    标签: php ajax .htaccess


    【解决方案1】:

    您可以尝试启发式方法(例如检查 X-Requested-With HTTP 标头),但不能作为任何安全措施。任何真正想要的人都可以轻松复制请求外观的任何此类差异。

    【讨论】:

    • +1,因为这会阻止用户在地址栏中简单地输入 URL/命令。
    【解决方案2】:

    答案是否定的。

    您的 ajax 调用访问 php 脚本的方式与任何其他方法一样直接。

    也就是说,您可以通过不同方式限制对脚本的访问,例如要求仅在登录后创建的有效会话。但是,一旦用户登录,通过 ajax 脚本或“直接”访问后端都是公平的游戏。换句话说,您不能指望能够将 ajax 调用与服务器端的其他调用区分开来。

    后端的安全性需要依赖于其他地方。

    【讨论】:

      【解决方案3】:

      在服务器端,您可以将其添加到后端文件的顶部:

      if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
        die("You need to use an AJAX request");
      }
      

      编辑:正如其他人所说,这作为一种安全措施并不可靠。

      【讨论】:

      • 很容易注入 .. 但可以肯定。
      猜你喜欢
      • 2018-01-27
      • 2019-12-21
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 2023-02-09
      相关资源
      最近更新 更多