file_get_contents() 在检索本地文件路径时有多安全,而不是用户输入

菲利普·贝森古

我有用户输入的 HTML 内容存储在没有扩展名的文件、系统命名的文件夹而不是用户命名的文件中。

>    file_put_contents($DBStoredFolder.'/'.$DBStoredFilename, $UserInputHtml);

检索内容并打印它的安全性如何?

>    $content = file_get_contents($DBStoredFolder.'/'.$DBStoredFilename);
>    echo '<html><body>'.$content.'</body></html>';

没有扩展名的文件只能通过固定路径上的 file_get_contents 访问然后回显,运行 PHP 代码吗?

我知道返回的 html 在浏览器上运行时需要保护,但这是另一回事。

投票门徒

一般没有办法回答这个问题。

如果您完全控制文件名(即,用户输入不可能干扰文件名),那么在该路径打开文件是安全的。

如果您完全控制文件的内容(即,它不可能是用户上传或用户编辑的文件),那么显示它是安全的。

如果您完全控制文件中的格式,并且可以确定它已经是 HTML,那么在显示之前无需对内容进行转义或清理。

然而,几乎总是,这些假设中的一个或多个并不是真正有效的。您如何应对不确定性完全取决于具体情况。一般来说,清理文件名,清理文件内容,清理显示,清理所有内容。

就我个人而言,我宁愿对我控制的文件名过于谨慎,也不愿冒着在没有意识到的情况下引入用户输入的风险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

file_get_contents找不到文件

来自分类Dev

如何`file_get_contents()`多个文件?

来自分类Dev

带有file_get_contents的附件?

来自分类Dev

file_get_contents没有缓存?

来自分类Dev

file_get_contents没有缓存?

来自分类Dev

带有file_get_contents的附件?

来自分类Dev

具有相对路径的file_get_contents

来自分类Dev

错误,包括带有file_get_contents()的文件

来自分类Dev

root拥有的文件的file_get_contents

来自分类Dev

php使用file_get_contents检索数据

来自分类Dev

file_get_contents在本地主机上返回false

来自分类Dev

file_get_contents在本地主机上返回false

来自分类Dev

相对路径INSIDE file_get_contents结果

来自分类Dev

file_get_contents 没有获取所有内容

来自分类Dev

file_get_contents不适用于php文件

来自分类Dev

从加载了file_get_contents的文件中访问特定值

来自分类Dev

HTML文件中file_get_contents之后出现空格

来自分类Dev

在file_get_contents之前预处理文件

来自分类Dev

GAE:file_get_contents()和静态文件

来自分类Dev

file_get_contents没有得到json

来自分类Dev

(file_get_contents)立即获取所有变量

来自分类Dev

file_get_contents()没有响应-php

来自分类Dev

具有file_get_contents的json_decode

来自分类Dev

路线的laravel file_get_contents没有响应

来自分类Dev

file_get_contents没有返回整个网页

来自分类Dev

(file_get_contents)立即获取所有变量

来自分类Dev

file_get_contents没有返回正确的内容

来自分类Dev

路线的laravel file_get_contents没有响应

来自分类Dev

带有空异常的file_get_contents失败