[英]How to protect subfolder which contain php page
我为我的网站制作了一个子域名,我将用它来存储所有重要的脚本,包括php和javascript。 我想保护那里的evertyhing,以便无法通过网络浏览访问它。
我试过.htpasswd。 但是当调用页面来执行该功能时,每次都需要密码。
您可以说该文件夹可以受到保护,但它会使脚本无效,因为访问需要密码。
还有更好的选择吗?
将PHP文件放在Web根目录之外,让服务器通过文件路径访问/包含/要求它们。 我自己的私有脚本驻留在'private'文件夹中,该文件夹与/var/www/
目录位于同一目录中,可通过以下方式访问: include '../private/script.php'
private /var/www/
include '../private/script.php'
但这不适用于JavaScript(可能是server0side JavaSCript除外),因为在使用它之前需要由用户/客户端访问。 如果无法访问它,则无法使用,这使得它有点无意义。 为了确保JS的安全性, 不要将任何私有内容放入JavaScript中 ,这是唯一的方法; 然后清理从该JavaScript获取的任何输入。
你可以随时使用.htaccess
的deny from all
。
有关详细信息,请参阅.htaccess上的这篇文章
我喜欢使用包含IP地址范围来限制访问。 问题不清楚,所以我不确定这是不是你的意思,但这是一个例子:
RewriteEngine on
RewriteCond %{REMOTE_HOST} !^XXX\.XXX\.XXX\.XXX
RewriteRule ^(.*) / [R=302,L]
将其添加到您要保护的文件夹中的.htaccess文件中,将XXX.XXX.XXX.XXX替换为您的IP地址,除了您之外的任何人都将被重定向。
对于非常受限制的区域,您可能也需要密码。
编辑:
代替长篇评论。
在发出'AJAX'请求时,客户端脚本不应该具有比对公共可访问文件做出的任何标准请求更大的访问权限。 没有关于“为什么”你想要的更多信息,帮助并不容易。 将PHP内容存储在文档根目录之外可能是要走的路,但那些东西只能从服务器端访问(例如PHP)。
您可以将XMLHttpRequest创建到可访问页面,该页面又可以访问存储在非公共位置的文件。 例如,使用绝对路径/ var / private /,适合于适应,或者通过遍历目录结构,例如../private,意味着一个目录更高,你的根可能是/ var / www。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.