我们有一个长期运行的网站, XSS 潜伏着。问题来自于一些开发人员直接 - 而不使用HtmlEncode / Decode() - 检索Request [“sth”]来完成流程,放在网上。
我想知道是否有像HTTPModule这样的机制来帮助我们HtmlEncode()Http请求中的所有项目在某种程度上避免使用XSS。
感谢任何建议。
RGDS, 瑞奇
答案 0 :(得分:1)
问题不是检索请求数据而不进行HTML编码。事实上,这是完全正确的。在将其吐入HTML页面时,不应对任何文本进行编码,直到最终输出阶段。
尝试对传入参数进行全面编码,无论是HTML编码还是SQL编码,都是错误的。它可能会隐藏您应用中的XSS漏洞,但不会修复它们。如果您输出的内容不是来自参数,或者从那时起已被处理,您仍然会有一个漏洞。同时,自动编码将使用乘法转义的&
crud填充您的数据库。
您需要修复输出阶段,这就是问题所在。
答案 1 :(得分:0)
像bobince所说,这是一个输出问题,而不是输入问题。如果您可以隔离在页面上输出此数据的位置,则可以创建过滤器并将其添加到Response对象。此过滤器将隔离常见输出的区域,然后对其进行HtmlEncode。