gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:21:42 25 4
gpt4 key购买 nike

我有一个带有服务层的 MVC 应用程序,我正在尝试找出如何在不发疯的情况下清理所有输入。

我可以控制验证 - 字段长度、数据类型和其他验证正在客户端和模型 (EF5) 上处理。

我现在正在尝试处理的是防止 SQL 注入(inject)和 XSS - 我能够通过将一些标记粘贴到我的输入之一来破坏我的应用程序。

例如:

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

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

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

由于非法字符导致分页:

  Uncaught SyntaxError: Unexpected token ILLEGAL 

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

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

最佳答案

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

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

关于asp.net - 清理 ASP.NET MVC 应用程序中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com