我想问一下那些经验丰富的人的一些建议。 我必须过滤用户输入,他们可能会尝试输入值
<script type="text/javascript">alert(12);</script>
文本框上的。我想问一下你对这个问题的良好做法是否有任何建议?
最近我们在其中一个sharepoint项目上遇到了一个问题。我们试图在文本框上输入一个脚本并繁荣页面崩溃...我的意思是陷阱它可以很容易我认为因为我们知道它是用户可能的输入之一但是我们不做的事情怎么样知道?除了捕获脚本之外,我们还没有考虑过其他一些情况。有人可以提出一个关于此事的良好做法吗?
提前致谢! :)
答案 0 :(得分:2)
Microsoft实际上生成了一个反交叉站点脚本库,但是当我查看它时,它比.NET框架中的各种编码函数包装更多。 AntiXSS library
您应该考虑的两个主要威胁是:
在重新在页面上呈现用户输入之前,可以通过HTML编码用户输入来缓解这些问题(在某种程度上)。
OWASP项目还提供了一个名为AntiSamy的库,旨在用于Web应用程序中的中性恶意输入。
答案 1 :(得分:0)
Jimmy回答是管理“输入验证和表示”问题的好方法。
但您可以自行过滤文本框输入,然后再将其传递给第三方API,例如AntiSamy等。
我通常使用这些控件:
1)最小化文本框值的长度:不仅在客户端,而且在服务器端(你不能相信我,但脚本中也没有缓冲区溢出攻击)
2)将白名单控件应用于用户在文本框中写入的字符(clientside和Serverside)
3)如果可能,请使用白名单。黑名单不如白名单
安全在服务器端部分执行这些控制非常重要。
当然,很容易忘记一些控件,所以AntiSamy和这样的产品非常有用。但我建议您实施个人“输入验证”API。
保护软件不是为了获得某些第三方产品,而是以不同的方式进行编程。
答案 2 :(得分:-1)
我在sharepoint上尝试使用单行文本和多行文本,在这两种情况下,sharepoint都会对值进行编码。 (我没有得到警报)
您使用的是什么SharePoint?