我在周围搜索了但是找不到所有我想知道的是我有一个名为temp的文件夹
- >的public_html
- >温度
现在我如何限制用户从外部服务器访问它,就像有人在他们的php脚本中包含它一样会出错?我想通过PHP而不是通过.htaccess或apache我尝试chmod,但它只限制整个网站从本地服务器。我也做了不变的事情,但如果有人知道常量名称,那么他仍然可以提取数据。
答案 0 :(得分:1)
您不能包含远程PHP文件。如果他们将allow_furl_open
和allow_url_include
设置为true并使用include('http://yoursite/temp/yourfile.php')
,则包含的内容是该PHP文件的输出。不是PHP源本身。
所以当你有一个包含以下内容的php文件时:
<?php
$password = "secret";
echo "Test";
?>
有人远程包含该文件,他们只会返回“Test”,这不是有效的PHP语法。他们将无法看到文件的内容,只能看到输出的内容。该文件在远程(或在本例中为您的)服务器上运行。包含它的任何人在该服务器上执行后输出。
所以你不必须做if (!isset(some_magical_constant)) die("Go away!")
这样的事情,这只是愚蠢的,但遗憾的是我已经在网上看到了它。
答案 1 :(得分:1)
htaccess,只有我知道的方式...不认为用PHP可以实现
<Directory /public_html/temp>
order allow,deny
deny from all
</Directory>
答案 2 :(得分:0)
在“temp”文件夹中放入一个空的“index.html”文件。这可以防止用户看到该文件夹的内容。这基本上使得用户无法解决它。
至于将其包含在脚本中,人们必须知道其中包含哪些文件才能在脚本中使用它。