目前的状况。 我必须设置 606为我的foobaa.txt。
我写了一个php代码, 读写 foobaa.txt,我想做 foobaa.txt的许可为 600。
但是当我测试600时, PHP代码无法读写 foobaa.txt。
所以我改为606 foobaa.txt, 然后我的PHP代码可以读写 foobaa.txt。
这是问题,因为
当有人提出
TTP://blabla.foobaa.com/foobaa.txt
直接,然后他可以看到的内容 foobaa.txt。这是安全漏洞。
所以我想为600制作 foobaa.txt的许可, 但如果我这样做的话 php代码无法读写 foobaa.txt。
我认为管理员可以修改一些 apatch设置我们可以设置 txt文件的权限为600。
还是我还要做其他事情?
像.htaccess之类的东西。答案 0 :(得分:8)
您的PHP代码作为Web服务器运行,而不是SSH进入帐户并更改权限的用户。因此,如果脚本可以读取文本文件,则服务器可以读取它。您需要通过以下几种方法之一来控制外部用户对文件的访问。
将文件放在DocumentRoot
之外,以便脚本可以访问它,但是无法通过HTTP请求。
将文件放在一个.htaccess
文件的目录中,该文件只读取Deny From All
。您也可以单独保护文件,但是您可能会有其他相关文件应该保密。您可以将它们放在同一目录中。
答案 1 :(得分:2)
您可以通过.htaccess限制访问:
<Files foobaa.txt>
Deny from all
</Files>
或类似的东西。但这并不完美...更好的方法是将文件移到public_html(或等效的)文件夹之外。