当前位置: 首页 > 面试题库 >

使用htaccess拒绝Ajax文件访问

谢清野
2023-03-14
问题内容

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

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

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

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


问题答案:

坏:Apache :-(

X-Requested- With不是标准的HTTP标头。

您根本无法在apache中读取它(无论是通过 ReWriteCond %{HTTP_X_REQUESTED_WITH} 还是通过
%{HTTP:X-Requested-With}),因此无法在.htaccess或同一位置对其进行检查。:-(

丑陋的脚本:-(

它只能在脚本中访问(例如php),但是您说由于文件数量的原因,您不想在所有脚本中都包含php文件。

好的:auto_prepend_file :-)

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

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

因此,.htaccess在ajax文件夹中创建一个

php_value auto_prepend_file check.php

check.php根据需要创建:

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

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



 类似资料:
  • 问题内容: 这是场景: 根文件夹中有一个文件 一些文件包含在其中是在文件夹中。 根文件夹中还有1个其他文件()用于表单提交操作。 我想通过htaccess 限制直接用户访问文件夹中的文件。也为。但是include将适用于文件。就像,如果用户键入,它将对其进行限制(可以重定向到错误页面)。 问题答案: 我只是将文件夹移出了Web根目录,但是如果您想阻止直接访问整个文件夹,则可以在该文件夹中放置一个文

  • 我试图通过操纵URL来拒绝用户访问文件夹。 我不知道我是否必须拒绝一切,并手动允许个别异常,如果我可以拒绝这一个文件夹,或者是否有一个可以使用的重写函数。 具体示例:我不想通过在URL中键入来查看目录文件。

  • 问题内容: 我在FoxPro 6.0命令窗口中使用SQL命令,并遇到“文件访问被拒绝”。 我的SQL命令是: 情况: Windows 7专业版 FoxPro 6.0 main.dbf被共享给许多用户。 main.dbf不是 隐藏的 ,也不是 只写 任何意见将不胜感激! 问题答案: 此DBF文件位于共享驱动器上吗?如果是这样,则另一个用户可能使文件打开了“排他”,或者您正试图打开文件“排他”。默认状

  • 问题内容: 我得到以下IOException: 尝试运行以下代码时: 在我看来,由于某种原因,JVM无法创建新文件。如果文件已经存在,则代码可以很好地运行。是否存在某种访问文件来指示JVM是否可以创建新文件还是我只是在做错什么? 任何帮助深表感谢 :-) 我正在运行Java 1.4,并且已经在Windows XP中的JDeveloper中进行了测试。 问题答案: 问题在于这些调用彼此接替: 创建操

  • 问题内容: 我在使它工作时遇到问题。它接收一个字符串,其中包含几条信息。但是,当我尝试将String写入文件以跟踪程序随时间的变化时,我收到拒绝访问错误: 叠层纱 完整的堆栈跟踪: 58行: 问题答案: 您必须先创建文件夹。但是您不能调用file.mkdirs()-您需要调用file.getParentFile()。mkdirs()-否则,您将使用文件名创建一个文件夹(这将阻止您使用以下命令创建文

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?