我们网站的多个区域都实施了InfoPath表单来提交请求。一个示例是一个请求表单,用户可以向可以回复该邮件的工作人员提问。
有人可能会在其中一个InfoPath控件(主题或邮件正文)中输入JavaScript,并通过InfoPath表单提交数据。然后,JavaScript代码在工作人员侧触发,该页面获取警报消息。我已经研究了很多,但还没有找到明确的答案。
是否有任何直接的方法来限制/阻止XSS进行此类验证?任何建议都会有所帮助。
提前致谢!
答案 0 :(得分:0)
您可以对文字进行编码,例如
var titleValue = '<'+'script type="text/javascript">alert(123);<'+'script>',
encodedValue = [],
c;
for (var i = 0;i < titleValue.length;i ++) {
c = titleValue.charAt(i);
if (c == '<')
encodedValue.push('<');
else if (c == '>')
encodedValue.push('>');
else if (c == '&')
encodedValue.push('&');
else if (c == '"')
encodedValue.push('"');
else
encodedValue.push(c);
}
alert('encoded value is: ' + encodedValue.join(''));
此致
贲
答案 1 :(得分:0)
如果您的员工的HTML是通过Javascript生成的,那么您可以使用innerText来避免任何HTML标记解释:
document.getElementById('text').innerText = untrustedOutput;
如果它是服务器端,你可以查看benban123的答案并将其改编为你的langague。在php中,我使用:
htmlentities( $text );
(见:http://www.php.net/manual/en/function.htmlentities.php)。 但我不确定它的有效性,XSS很多。
编辑:如果您的文本只是通过javascript函数alert(msg)
显示,我认为您是安全的,因为不会被解释(可能除了换行符转义字符/ n)。< / p>