我尝试使用clean = message.replace('\ n','')。replace('\ r','')。 但是它仍然无法通过veracode扫描。 有什么更好的方法吗? 另外,我还阅读了有关ESAPI Python的文章,但没有获得任何好的文档来解决此问题。
答案 0 :(得分:0)
不幸的是,ESAPI Python是一个死活很长的项目。我没有任何Python替代品,但是自August 9, 2010.
起,该库就没有提交过我对Python Web框架不熟悉,但是我做定期教授安全编程。
每次调用函数时,都需要问自己一个问题:
“我要把这个传给口译员吗?”
如果答案是“是”,那么您需要进行编码以确保THAT函数将把输入纯粹视为数据而不是可执行代码。
在这种特殊情况下,如果您的日志记录有可能被浏览器解释(这是常见的),则您还希望对HTML进行编码。但是,如果您的环境从不使用基于html的日志记录并且始终是原始文本,则根据您的公司如何同意这些条款,可以将其视为“缓解”或“误报”。
此外,我喜欢用唯一的定界符包装任何用户输入的做法。您可以使用方括号,但是我喜欢原木中强烈的视觉提示。
图片:[USERACTION] + userId +'►'+ encode(userInput)+'◀'
甚至:
[USERACTION] + userId +'(͡ʘ)'+ encode(userInput)+'<::::: [] =¤(▀̿̿Ĺ̯̿̿▀̿)'
任何有助于使人发现有人篡改了您的日志的记录都是好的。大声越好!