【发布时间】:2019-01-05 03:04:24
【问题描述】:
我有用户输入的 HTML 内容存储在没有扩展名的文件、系统命名的文件夹而不是用户命名的文件中。
> file_put_contents($DBStoredFolder.'/'.$DBStoredFilename, $UserInputHtml);
检索内容并打印它有多安全?
> $content = file_get_contents($DBStoredFolder.'/'.$DBStoredFilename);
> echo '<html><body>'.$content.'</body></html>';
没有扩展名的文件是否只能通过固定路径上的 file_get_contents 访问,然后回显,运行 PHP 代码?
我知道返回的 html 在浏览器上运行时需要受到保护,但那是另一回事。
【问题讨论】:
-
谢谢,我做了研究,也看到了很多关于 SO 的问题,但总是引用路径和文件名,而不是内容。由于 PHP 文档说它只将结果作为字符串返回,并且它的路径是服务器确定的,我认为它是一种安全的方式。您对如何改进有什么建议吗?
-
问题是您正在显示用户输入的 HTML。
-
@PaulCrovella 这也是我需要的,但我想确保 file_get_contents 只返回字符串上的文件并且不执行任何代码(例如:eval();) 并且可能 htmlentities() 不是够了
标签: php file security file-io file-get-contents