在 PHP 中安全检测 AJAX 请求
检查传入请求是否是 AJAX 请求对于服务器端处理至关重要。虽然 GET 参数或标头等方法很容易被利用,但还有更安全的方法。
解决方案:HTTP_X_REQUESTED_WITH 标头检查
HTTP_X_REQUESTED_WITH 标头是发送的标准标头通过 AJAX 请求。此标头通常设置为“XMLHttpRequest”或“xmlhttprequest”。通过检查此标头,您可以可靠地识别 AJAX 请求:
<code class="php">if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'xmlhttprequest') { // We can assume that the request was made with AJAX }</code>
示例用法
考虑 PHP 脚本 mypage.php:
<code class="php"><?php if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'xmlhttprequest') { // Process AJAX request } else { // Not an AJAX request } ?></code>
此脚本检查 HTTP_X_REQUESTED_WITH 标头是否存在并设置为“XMLHttpRequest”。如果是,则假定该请求是 AJAX 请求并继续进行相应的处理。否则,它将将该请求作为非 AJAX 请求处理。
优点
此方法是安全的,因为 HTTP_X_REQUESTED_WITH 标头是由浏览器针对 AJAX 请求自动发送的。攻击者无法轻易伪造它。此外,大多数现代浏览器和服务器平台都支持它。
以上是如何安全识别 PHP 中的 AJAX 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!