是否可以使用 Apache 2.4 的 mod_rewrite 规则检测 ajax 请求?

是否可以使用 Apache 2.4 的 mod_rewrite 规则检测 ajax 请求?

是否可以?

尝试将我的脚本安全性转移到服务器级别。

使用 PHP,只需检查是否$_SERVER['HTTP_X_REQUESTED_WITH']设置为XMLHttpRequest(添加了 jQuery)。

我想也许更好的问题是,如何将X-Requested-With请求标头添加到可以使用 mod_rewrite 检查的变量中RewriteCond

答案1

如果您将 HTTP 请求标头设置X-Requested-With为“AJAX 请求”的一部分(如$_SERVER['HTTP_X_REQUESTED_WITH']在 PHP 中看到的那样),那么您可以直接使用 mod_rewrite 检查此标头。

例如,对于任何/scripts/没有将X-Forwarded-WithHTTP 标头设置为以下内容的目录请求,将返回 403 Forbidden 错误XMLHttpRequest

RewriteEngine On

RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest
RewriteRule ^/?scripts/ - [F]

相关内容