Python-如何修复CWE-117:日志的不正确输出中和

时间:2019-10-02 20:46:26

标签: python esapi veracode

我尝试使用clean = message.replace('\ n','')。replace('\ r','')。 但是它仍然无法通过veracode扫描。 有什么更好的方法吗? 另外,我还阅读了有关ESAPI Python的文章,但没有获得任何好的文档来解决此问题。

1 个答案:

答案 0 :(得分:0)

不幸的是,ESAPI Python是一个死活很长的项目。我没有任何Python替代品,但是自August 9, 2010.

起,该库就没有提交过

我对Python Web框架不熟悉,但是我定期教授安全编程。

每次调用函数时,都需要问自己一个问题:

“我要把这个传给口译员吗?”

如果答案是“是”,那么您需要进行编码以确保THAT函数将把输入纯粹视为数据而不是可执行代码。

在这种特殊情况下,如果您的日志记录有可能被浏览器解释(这是常见的),则您还希望对HTML进行编码。但是,如果您的环境从不使用基于html的日志记录并且始终是原始文本,则根据您的公司如何同意这些条款,可以将其视为“缓解”或“误报”。

此外,我喜欢用唯一的定界符包装任何用户输入的做法。您可以使用方括号,但是我喜欢原木中强烈的视觉提示。

图片:[USERACTION] + userId +'►'+ encode(userInput)+'◀'

甚至:

[USERACTION] + userId +'(͡ʘ)'+ encode(userInput)+'<::::: [] =¤(▀̿̿Ĺ̯̿̿▀̿)'

任何有助于使人发现有人篡改了您的日志的记录都是好的。大声越好!