我的应用程序反映了由未经验证的网址引起的XSS漏洞。我想在客户端提供至少输出编码。我有权修改只有html和js的前端页面。我无法访问后端应用程序代码,因此我无法在服务器端使用UrlEncoder.encode。 我的问题是如何从客户端表单调用服务器端编码。 我知道在jsp中我可以写 < @page import = org.owaps.esapi。* var url =<%= Esapi.Encoderr.encodetoUrl(vulnerabilityUrl)=%>
但由于我的网页不是jsp,而是html + js,我如何调用服务器端编码功能?
答案 0 :(得分:2)
鉴于您提供的信息,我会说不,这可能是不可能的。
假设您添加: document.forms [0] .redirect.value = encodeURI(malcious url)
现在攻击者出现并发送:
"); alert("xss")
问题是客户端脚本运行时恶意数据已经在页面中,并且已经改变了页面的布局和上下文。
我认为通过使用像mod_security这样的WAF来限制可以进入应用程序的可能值,然后尝试修复客户端,可以更好地解决这个问题。虽然实际修复问题服务器端是最好的选择。