加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

清理ASP.NET MVC应用程序中的输入

发布时间:2020-12-16 03:29:07 所属栏目:asp.Net 来源:网络整理
导读:我有一个带有服务层的MVC应用程序,我正在试图弄清楚如何消毒所有输入而不会疯狂. 我在控制下进行验证 – 在客户端和模型(EF5)上处理字段长度,数据类型和其他验证. 我现在要处理的是阻止SQL注入和XSS – 我能够通过将一些标记粘贴到我的输入中来破坏我的应用
我有一个带有服务层的MVC应用程序,我正在试图弄清楚如何消毒所有输入而不会疯狂.

我在控制下进行验证 – 在客户端和模型(EF5)上处理字段长度,数据类型和其他验证.

我现在要处理的是阻止SQL注入和XSS – 我能够通过将一些标记粘贴到我的输入中来破坏我的应用程序.

例如:

<textarea data-bind="value: aboutMe">@Model.AboutMe </textarea>

如果我在AboutMe中保存一些脚本标记:

<script type="text/javascript">alert("hey")</script>

由于非法字符导致页面中断:

Uncaught SyntaxError: Unexpected token ILLEGAL

我想我可以挑选每一个输入并将其包装在某种SanitizeText()函数中,该函数从已提交的任何内容中删除所有括号,但这感觉便宜又乏味,并且不能解决SQL注入问题.

什么是正确的方法来解决这个问题?

解决方法

要解决XSS等问题,您应该使用例如正确编码输出. Html编码 – 与您的输入相反.您可能还想查看反xss库 http://wpl.codeplex.com/releases/view/80289,其中包含一些优秀的类来提供帮助.

要解决SQL注入问题,您应该使用SQL参数(参数化查询)http://msdn.microsoft.com/en-us/library/vstudio/bb738521(v=vs.100).aspx以及SQL服务器本身配置的适当权限.正如您使用的是EF5,我相信这也可以防止SQL注入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读