我想向更有经验的人请教一些建议。我必须过滤用户的输入,在这些输入中,他们可能尝试输入值,例如
<script type="text/javascript">alert(12);</script>在文本框中。我想问一下,关于这个问题,您有什么好的做法建议吗?
最近我们在我们的一个sharepoint项目中遇到了一个问题。我们试图在文本框中输入一个脚本,然后页面就崩溃了……我的意思是,捕获它可能很容易,因为我们知道它是用户可能的输入之一,但是对于我们不知道的东西呢?除了捕获脚本之外,我们可能还没有考虑到其他一些情况。关于这件事,有人能建议一个好的做法吗?
提前感谢!:)
发布于 2011-01-27 18:14:16
微软实际上生产了一个反跨站脚本库,尽管当我查看它时,它不仅仅是.NET框架中各种编码函数的包装器。AntiXSS library
您应该考虑的两个主要威胁是:
这两种情况都可以(在一定程度上)通过在页面上对用户输入进行re=rendering之前对其进行编码来缓解。
OWASP项目还提供了一个名为AntiSamy的库,旨在消除web应用程序中的恶意输入。
发布于 2011-01-30 15:58:28
Jimmy answer是管理“输入验证和表示”问题的好技术。
但您可以在将文本框输入传递给第三方API (如AntiSamy等)之前,自己过滤它。
我通常使用这些控件:
1)最小化文本框值的长度:不仅在客户端,在服务器端也是如此(你可能不会相信我,但在脚本中也没有缓冲区溢出攻击)
2)将白名单控件应用于用户写入文本框的字符(客户端和服务器端)
3)尽可能使用白名单。黑名单不如白名单安全
将这些控件放入服务器端部分是非常重要的。
当然,我们很容易忘记一些控件,所以AntiSamy和类似的产品非常有用。但我建议您实现您个人的“输入验证”API。
保护软件不是为了获得一些第三方产品,而是以一种不同的方式编程。
发布于 2011-01-27 18:45:01
我在sharepoint上用单行文本和多行文本尝试了这一点,在这两种情况下,sharepoint都对值进行了编码。(我没有收到警报)
您使用的是什么SharePoint?
https://stackoverflow.com/questions/4814914
复制相似问题