安全地在日志文件中追加用户输入

本文关键字:追加 用户 输入 文件 日志 安全 | 更新日期: 2023-09-27 18:19:20

在很多情况下,开发人员希望在日志文件中包含一个基于用户输入的值,以便以后调查问题(例如,是什么输入导致了错误情况)。

这可能导致日志注入攻击(见此),允许用户在日志文件中放入任意内容,伪造日志条目,甚至试图攻击监视用户/系统。

是否有一个标准的方法来清理/编码/转义用户输入追加到日志文件?

注意:我使用log4net和c#,但我认为这个主题并不局限于特定的环境和平台。

安全地在日志文件中追加用户输入

我想我们可以说没有一种 r-消毒方法可以满足每个人的需求。

来自OWASP链接:

阻止这种攻击的最有效方法是确保记录的任何外部输入都遵守严格的规则,即什么字符是可接受的。一如既往,白名单风格检查远比黑名单风格检查更可取。

但是从OWASP中寻找推荐的清理过程主要返回来自数据验证页面的信息。这听起来很合理,因为输入消毒将取决于用户授权的内容,记录的内容,查看的位置等。

在给定的示例中,删除换行符是明智的,但可能不足以记录多行输入。白名单取决于您的功能需求。