我想知道我在 fwrite 下面是否有代码注入漏洞?
foreach($_POST as $key=>$val) {
fwrite($fh, "\nPOST variable named " . $key . " has the value " . $val);
}
我应该在将它们写入日志文件之前以某种方式清理这些值吗?
更新。fh 是一个日志文件处理程序
我想知道我在 fwrite 下面是否有代码注入漏洞?
foreach($_POST as $key=>$val) {
fwrite($fh, "\nPOST variable named " . $key . " has the value " . $val);
}
我应该在将它们写入日志文件之前以某种方式清理这些值吗?
更新。fh 是一个日志文件处理程序
只要日志文件被其消费者视为纯文本(应该始终如此),就不存在漏洞。
如果您决定将日志文件的未处理内容作为某些 HTML 的一部分输出,那么这将是一个真正的漏洞(可能不会产生非常严重的实际影响,但仍然如此)。但问题在于“其他”代码在 HTML 中显示文本而不调用htmlspecialchars
,而不是这里的代码只是写日志。
那将取决于是什么$fh
。如果$fh
是 HTML 文件,您可能会遇到麻烦。如果它是一些文本文件或者外部的任何浏览器都无法访问,则不是真的。
htmlspecialchars(..)
在 HTML 输出的情况下使用它总是一个好主意。
更新:
只要:
text/html
标头并将其视为普通文本文件(如果可访问)这可能是反射 XSS(跨站点脚本)攻击的来源(如果您正在写入提供给用户的 HTML 文件)。您不会受到攻击的伤害,但一些天真的用户会受到伤害。