首页 >后端开发 >php教程 >如何防止直接访问AJAX调用的PHP文件?

如何防止直接访问AJAX调用的PHP文件?

DDD
DDD原创
2024-11-11 07:52:02702浏览

How to Prevent Direct Access to AJAX-Called PHP Files?

拦截对 AJAX 调用的文件的直接访问

在 AJAX 驱动的应用程序中,从服务器端 PHP 脚本获取数据需要仔细考虑安全。通过 GET 请求调用脚本时,任何检查 HTTP 标头的人都可以看到其内容和参数。

防止直接文件访问

防止未经授权的用户直接访问 PHP 文件,我们可以利用 AJAX 请求发送的 HTTP_X_REQUESTED_WITH 标头。此标头指示请求源自 XMLHttpRequest,使我们能够将其与直接访问尝试区分开来。

实现

在您的 PHP 脚本中,添加以下代码块在任何敏感操作之前:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access to AJAX requests
} else {
    // Block direct file access and display an error message
    header("HTTP/1.0 403 Forbidden");
    echo "Direct access not permitted.";
}

AJAX 请求标头

您的 JavaScript 代码应包含以下行以将 X-Requested-With 标头添加到 AJAX 请求:

var xhrobj = new XMLHttpRequest();
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");

这可确保服务器接收标头并将请求正确识别为 AJAX 调用。通过实施这些措施,您可以有效防止对 AJAX 函数调用的 PHP 脚本的直接文件访问,同时保持合法 AJAX 请求的可访问性。

以上是如何防止直接访问AJAX调用的PHP文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn