首先,我的术语可能不对,但当我听到“直接访问”时,我认为有人的意思是任何人都有从 URL 读取文件的权限。我对“直接访问”的理解正确吗?
我正在使用 htaccess 来防止直接访问以下目录(http 目录是DocumentRoot /var/www/public_html
)
<Directory /var/www/public_html/indirect_access/>
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /passwords/me
Require user me
</Directory>
我有两个文件
/var/www/public_html/indirect_access/indirect.php
<?php echo 'hi'; ?>
/var/www/public_html/direct.php
<?php include('indirect_access/indirect.php'); ?>
当有人访问 www.mysite.com/direct.php 时,浏览器会打印“hi”。当有人访问 www.mysite.com/indirect_access/indirect.php 时,系统会提示他们输入用户名和密码。
但是当我改变内容时/var/www/public_html/direct.php包括 AJAX 请求,例如
$.ajax({
url: "indirect_access/indirect.php",
type: "GET",
dataType: 'html',
success: function(data){
$("body").prepend(data);
},
});
然后我尝试访问 www.mysite.com/direct.php,系统提示我输入用户名/密码。
是否可以阻止 htpasswd 提示通过 ajax 间接访问文件的身份验证?