我的coldfusion应用程序中有一个WYsIWYG编辑器,需要防止XSS攻击。是否有任何Coldfusion方法可以消除所有脚本类型的攻击?
答案 0 :(得分:4)
答案 1 :(得分:3)
我要问的主要问题是这个WYSIWYG是什么?许多WYSIWYG允许您定义要从代码中删除的特定标记。
例如,您可以使用TinyMCE去掉脚本标签 http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/invalid_elements
遗憾的是,这并不能解决您的问题,因为提交的所有客户端数据表都是可以绕过的。如果你必须使用WYSIWYG,那么你真正需要做的就是覆盖表格验证和显示的所有基础。您可以删除所有脚本标记,并确保删除链接href属性中的任何事件属性和javascript代码。
如果只允许特定的标签子集是可以接受的,我建议使用BBML,BBCode或Markdown。
http://www.depressedpress.com/Content/Development/ColdFusion/Extensions/DP_ParseBBML/Index.cfm
http://en.wikipedia.org/wiki/BBCode
http://sebduggan.com/projects/cfxmarkdown
您可以将TinyMCE用作BBCode http://tinymce.moxiecode.com/examples/example_09.php的WYSIWYG,StackOverflow使用优秀的降价编辑器http://github.com/cky/wmd
如果你想在Coldfusion中渲染BBCode,这里有一些很好的信息 http://www.sitepoint.com/forums/showthread.php?t=248040
答案 2 :(得分:0)
需要考虑的是,虽然使用TinyMCE在浏览器中剥离标签是一个好主意,但它会假设用户将通过浏览器提交内容。您在浏览器中执行的任何操作都需要在服务器上复制,因为攻击者可以绕过浏览器中发生的任何验证。
说了这篇文章:http://www.fusionauthority.com/techniques/3908-how-to-strip-tags-in-three-easy-lessons.htm比我在这里更详细地解释了这一点。基本上它讨论了使用正则表达式和UDF轻松地去掉标签。最后一个例子特别重要......检查一下。
答案 3 :(得分:-2)
转换这些标签<>或使用HTMLEditformat函数。