拦截对 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中文网其他相关文章!