一个 HTML 表单、一个 php 文件和一个文本文件。
该表单有一个输入框,它使用 GET 或 POST 将输入的字符串发送到 PHP 文件。PHP 文件使用 , 将字符串写入文本文件fopen 'a'
,fwrite
并且fclose
根本不进行任何清理。
文本文件设置为权限 777,并且与其他文件位于同一文件夹中。
这里有任何安全问题吗?有人可以使用表格发送会造成任何损害的东西吗?如果是,是什么?
如果txt文件设置为666呢?
一个 HTML 表单、一个 php 文件和一个文本文件。
该表单有一个输入框,它使用 GET 或 POST 将输入的字符串发送到 PHP 文件。PHP 文件使用 , 将字符串写入文本文件fopen 'a'
,fwrite
并且fclose
根本不进行任何清理。
文本文件设置为权限 777,并且与其他文件位于同一文件夹中。
这里有任何安全问题吗?有人可以使用表格发送会造成任何损害的东西吗?如果是,是什么?
如果txt文件设置为666呢?
根据这个文件的用途,应该不会有太大的风险。只要确保文件永远不会被执行。
这意味着,永远不要eval()
将此文件的内容,或将其更改为一个.php
或任何其他可执行文件。
但是,如果要在页面上写入内容或供用户查看,则这样做会有安全风险。
我通常使用 3 种方法来提高写入文件的安全性。1) 将文件从 webroot 中移出并移到一些访问受限的文件夹中,例如 cgi-bin。文件的路径和任何密码也应该保存在 webroot 之外。2)然后您通过将敏感数据包含在您的页面上来包含它。因此,如果 PHP 解析器失败,人们只会看到变量名而看不到详细信息。3) 如果您正在发帖或访问正在编写的文件,您还可以仔细检查值并删除可能导致问题的字符、脚本等。
从网络安全的角度来看,只要文本文件的路径被硬编码或以任何其他方式保护,我看不到任何问题。尽管文件丢失或只读(是的,它可能发生,例如,如果文件系统被管理员以只读方式挂载),您还没有说任何关于会发生什么的事情。
话虽如此,这个用例也完全没用,因为文本文件仅用作数据接收器。从不读取的数据接收器是无用的。当您想从文件中读取时,可能会出现问题。