是否可以?
尝试将我的脚本安全性转移到服务器级别。
使用 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-With
HTTP 标头设置为以下内容的目录请求,将返回 403 Forbidden 错误XMLHttpRequest
:
RewriteEngine On
RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest
RewriteRule ^/?scripts/ - [F]