gpt4 book ai didi

php - 使用 htaccess 拒绝 ajax 文件访问

转载 作者:IT王子 更新时间:2023-10-29 00:20:16 25 4
gpt4 key购买 nike

有些脚本我只通过 ajax 使用,我不希望用户直接从浏览器运行这些脚本。我使用 jQuery 进行所有 ajax 调用,并将所有 ajax 文件保存在名为 ajax 的文件夹中。

因此,我希望创建一个 htaccess 文件来检查 ajax 请求 (HTTP_X_REQUESTED_WITH) 并拒绝该文件夹中的所有其他请求。 (我知道可以伪造 http header ,但我想不出更好的解决方案)。我试过这个:

ReWriteCond %{HTTP_X_REQUESTED_WITH} ^$
ReWriteCond %{SERVER_URL} ^/ajax/.php$
ReWriteRule ^.*$ - [F]

但是,它不起作用。我做错了什么?有没有其他方法可以达到类似的效果。 (我不想检查每个脚本中的 header )。

最佳答案

坏处:Apache :-(

X-Requested-With 不是标准 HTTP Header .

你根本无法在 apache 中读取它(也不是通过ReWriteCond %{HTTP_X_REQUESTED_WITH}也不通过%{HTTP:X-Requested-With}),所以不可能在 .htaccess 或同一个地方检查它。 :-(

丑陋的:脚本:-(

它只能在脚本中访问(例如 php),但您说由于文件数量太多,您不想在所有脚本中包含一个 php 文件。

优点:auto_prepend_file :-)

  • 但是...有一个简单的技巧可以解决它:-)

auto_prepend_file 指定在主文件之前自动解析的文件名。您可以使用它来自动包含“检查器”脚本。

所以在ajax文件夹中创建一个.htaccess

php_value auto_prepend_file check.php

并根据需要创建 check.php:

<?
if( !@$_SERVER["HTTP_X_REQUESTED_WITH"] ){
header('HTTP/1.1 403 Forbidden');
exit;
}
?>

您可以根据需要自定义它。

关于php - 使用 htaccess 拒绝 ajax 文件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3466802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com