c# - 过滤用户输入的实践

标签 c# javascript asp.net security sharepoint

我想请教有经验的人一些建议。 我必须过滤用户的输入,他们可能会尝试输入类似

的值
<script type="text/javascript">alert(12);</script>

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

最近我们在我们的一个共享点项目中遇到了一个问题。我们试图在文本框上输入一个脚本,然后页面崩溃了……我的意思是,我认为捕获它很容易,因为我们知道它是用户可能的输入之一,但是我们不知道的事情呢知道?除了捕获脚本之外,可能还有一些我们没有考虑过的其他情况。有人可以就此事提出好的做法吗?

提前致谢! :)

最佳答案

Microsoft 实际上制作了一个反跨站点脚本库,但当我查看它时,它只不过是 .NET 框架中各种编码函数的包装器。 AntiXSS library

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

  • 脚本注入(inject)
  • HTML 标签注入(inject)

在将用户输入重新呈现在页面上之前,可以通过对用户输入进行 HTML 编码来(在一定程度上)缓解这两种情况。

OWASP 项目中还有一个名为 AntiSamy 的库,旨在阻止网络应用程序中的恶意输入。

关于c# - 过滤用户输入的实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4814914/

相关文章:

c# - 当文本更改以适合控件时调整文本大小

c# - 必应语音识别服务 - SpeechClient 问题 "Audio format could not be parsed."

javascript - 滚动条未出现在弹出窗口中

asp.net 尝试在 vs 2012 中创建发布设置会出现奇怪的错误

asp.net - OnClientClick 中的服务器标记

asp.net - 是否可以在asp.menu动态子菜单中删除白色背景并使其透明

javascript - 无法从 Asp.NET 中的 C# 调用 javascript 函数

c# - 显示嵌套的 SortedDictionary 中的元素

javascript - AngularJS 无法注入(inject)服务

javascript - 如何禁用 AngularJS 的闪烁 ng-repeat?