有没有办法可以通过Javascript自动格式化输入框,在用户尝试点击提交按钮之前阻止XSS?
例如,在用户在文本框上键入脚本攻击后,javascript会自动将文本框中的值格式化为安全格式。 不过,我不仅仅依靠这个程序来阻止XSS,它只是我们的客户群有短语触发ASP.Net将其视为XSS。这是确切的例子:短语: OMY G<W TUBE/OVARY
会触发页面将其视为XSS,而 OMY G< W TUBE/OVARY
不会被视为潜在风险。< / p>
答案 0 :(得分:3)
不,没有。
只能在服务器时阻止XSS,方法是格式化将要显示的给定上下文的不受信任数据。
答案 1 :(得分:2)
并不难,假设您可以确切地知道是什么触发了ASP.Net XSS过滤器。例如,这将修复您显示的案例:
<form id="form" onsubmit="fix()">
<input id="textbox" />
<input type="submit" />
</form>
<script>
function fix() {
var t = document.getElementById('textbox');
t.value = t.value.replace(/<(\w)/, '< $1');
}
</script>
请理解,此“解决方案”不会以任何方式阻止XSS攻击,或以任何方式验证输入。只能在服务器端阻止XSS攻击。