首先我的术语可能是错误的,但是当我听到“直接访问”时,我认为有人意味着任何人都已经从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,浏览器打印“嗨”。 当有人去www.mysite.com/indirect_access/indirect.php他们被提示input用户名和密码。
但是当我改变/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,提示input用户名/密码。
是否有可能阻止htpasswd提示通过ajax间接访问文件的身份validation?