Castle Project充满了各种功能,包括一些非常棒的子项目,并且开发它是一种乐趣。

我的团队已准备好提供定制的 EAM ,我们正在完善我们的系统。我们尝试了一些基本的XSS攻击并猜测:它们都有效。

即使它将在Intranet环境中运行,我们也不希望用户意外破坏整个系统,我们正在研究处理XSS问题的解决方案。

默认情况下,NVelocity不会转义任何内容,因此此代码:

${entity.Field}

使用包含以下内容的字段:

<script>alert('xss!')</script>

会给我们一个很好的xss警报。

Microsoft的AntiXSS库看起来很好:处理几种可能的XSS向量,等等。我们遇到了AndyPike的帮助者,但这个解决方案会让我们重构几千行。是的,不好。在编辑现有实体时,这不会处理ActiveRecord / NVelocity自动绑定。

问题是:使用输出编码技术,是否可以/建议修补Castle Project的NVelocity引擎?就像他们对Brail一样?任何人都有更好的主意吗?

谢谢!

使用Castle Project的PS: Stackoverflowers 会使用这样的补丁吗?

有帮助吗?

解决方案

  

NVelocity默认情况下不会转义任何内容

亲爱的,亲爱的。然后你需要做很多代码修复。

无法将文本放入HTML中并不是失败的,您可以在事后纠正。是的,有些库可以过滤出明显的错误输入,但它们只是隐藏了这个问题,而且不是很好。鉴于浏览器会接受各种奇怪的构造,总会有方法通过它们偷偷摸摸坏HTML,同时它们会给你误报<!>#8201; <!>#8211; <!> #8201;例如,此帖子将被阻止讨论标签<script>

它们充其量只是一种临时粘贴膏药,直到你能解决真正的问题。

其他提示

NVelocity 可以自动转义输出而无需更改模板,也无需更改NVelocity的代码。

请参阅自动HTML编码NVelocity输出(EventCartridge <!> amp; ReferenceInsert)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top