首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤用户输入的实践

过滤用户输入的实践
EN

Stack Overflow用户
提问于 2011-01-27 17:59:38
回答 3查看 262关注 0票数 2

我想向更有经验的人请教一些建议。我必须过滤用户的输入,在这些输入中,他们可能尝试输入值,例如

代码语言:javascript
复制
<script type="text/javascript">alert(12);</script>

在文本框中。我想问一下,关于这个问题,您有什么好的做法建议吗?

最近我们在我们的一个sharepoint项目中遇到了一个问题。我们试图在文本框中输入一个脚本,然后页面就崩溃了……我的意思是,捕获它可能很容易,因为我们知道它是用户可能的输入之一,但是对于我们不知道的东西呢?除了捕获脚本之外,我们可能还没有考虑到其他一些情况。关于这件事,有人能建议一个好的做法吗?

提前感谢!:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-27 18:14:16

微软实际上生产了一个反跨站脚本库,尽管当我查看它时,它不仅仅是.NET框架中各种编码函数的包装器。AntiXSS library

您应该考虑的两个主要威胁是:

  • 脚本注入
  • HTML

这两种情况都可以(在一定程度上)通过在页面上对用户输入进行re=rendering之前对其进行编码来缓解。

OWASP项目还提供了一个名为AntiSamy的库,旨在消除web应用程序中的恶意输入。

票数 2
EN

Stack Overflow用户

发布于 2011-01-30 15:58:28

Jimmy answer是管理“输入验证和表示”问题的好技术。

但您可以在将文本框输入传递给第三方API (如AntiSamy等)之前,自己过滤它。

我通常使用这些控件:

1)最小化文本框值的长度:不仅在客户端,在服务器端也是如此(你可能不会相信我,但在脚本中也没有缓冲区溢出攻击)

2)将白名单控件应用于用户写入文本框的字符(客户端和服务器端)

3)尽可能使用白名单。黑名单不如白名单安全

将这些控件放入服务器端部分是非常重要的。

当然,我们很容易忘记一些控件,所以AntiSamy和类似的产品非常有用。但我建议您实现您个人的“输入验证”API。

保护软件不是为了获得一些第三方产品,而是以一种不同的方式编程。

票数 0
EN

Stack Overflow用户

发布于 2011-01-27 18:45:01

我在sharepoint上用单行文本和多行文本尝试了这一点,在这两种情况下,sharepoint都对值进行了编码。(我没有收到警报)

您使用的是什么SharePoint?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4814914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档