服务器端输出编码来自html页面(不是jsp)以防止XSS

时间:2012-02-11 07:43:12

标签: javascript encoding xss server-side

我的应用程序反映了由未经验证的网址引起的XSS漏洞。我想在客户端提供至少输出编码。我有权修改只有html和js的前端页面。我无法访问后端应用程序代码,因此我无法在服务器端使用UrlEncoder.encode。 我的问题是如何从客户端表单调用服务器端编码。 我知道在jsp中我可以写 < @page import = org.owaps.esapi。* var url =<%= Esapi.Encoderr.encodetoUrl(vulnerabilityUrl)=%>

但由于我的网页不是jsp,而是html + js,我如何调用服务器端编码功能?

1 个答案:

答案 0 :(得分:2)

鉴于您提供的信息,我会说不,这可能是不可能的。

假设您添加: document.forms [0] .redirect.value = encodeURI(malcious url)

现在攻击者出现并发送:

"); alert("xss")

问题是客户端脚本运行时恶意数据已经在页面中,并且已经改变了页面的布局和上下文。

我认为通过使用像mod_security这样的WAF来限制可以进入应用程序的可能值,然后尝试修复客户端,可以更好地解决这个问题。虽然实际修复问题服务器端是最好的选择。