![如何防止从其父文件直接访问 php 文件?](https://linux22.com/image/1456983/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E4%BB%8E%E5%85%B6%E7%88%B6%E6%96%87%E4%BB%B6%E7%9B%B4%E6%8E%A5%E8%AE%BF%E9%97%AE%20php%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我在 www.example.com/somefile.php 中有一个 php 文件,该文件包含另一个目录 www.example.com/directory/someotherfile.php 中的一个文件。如何防止他人直接访问 someotherfile.php?
答案1
使用.htaccess 文件。
更多信息:http://htaccess-guide.com/
使用 .htaccess 文件,你可以拒绝任何人的访问除了来自特定的 IP 范围(例如,对于 Intranet)或需要密码。
例如,除内部 IP 范围外,还需要密码:
AuthName "Staff only, please enter password"
AuthType Basic
AuthUserFile /path/outside/of/var/www/.htpasswd
Require valid-user
Order allow,deny
Allow from 192.168.0.
satisfy any
确保您的 Apache2 版本支持 .htaccess 文件并检查配置。
答案2
只需将文件放在托管空间之外,这样 www.example.com/somefile.php(例如 /home/usr/public_html/somefile.php)就会包含例如 /home/usr/includes/someotherfile.php。如果这不可能,可以使用上述 .htaccess 解决方案的变体,将包含文件放在无人可以访问的目录中。您的 php 文件仍然可以包含它。您不需要设置密码,只需阻止对该目录的所有请求即可。