XSS - SQL 注入(inject) - Owasp、AntiXss 与 Microsoft 反跨站脚本库

标签 xss sql-injection antixsslibrary owasp

  • 我们正在考虑使用一个库来帮助我们检测 SQL 注入(inject)。

    • 我们正在使用存储过程和参数化语句,但为了这篇文章,我们仅使用一些检测/验证用户输入的库。

最好的是什么?最容易实现?最容易更新/管理? 为什么更喜欢其中之一?

附注:

我刚刚开始使用 Owasp 。用C#。 我希望验证时会有更多默认规则。 使用 isValid 函数时,只有 5 个默认规则。

CREDIT_CARD——信用卡验证规则的规则名称键。 DATE——日期验证规则的规则名称键。 DOUBLE -- 双重验证规则的规则名称键。 INTEGER——整数验证规则的规则名称键。 PRINTABLE——可打印验证规则的规则名称键。

我希望字符串 SQL 注入(inject)检测有更多默认规则。

谢谢

最佳答案

使用存储过程是朝着正确方向迈出的一大步。我要添加的是输入验证,看起来您正在尝试使用 OWASP ESAPI 库来执行此操作,但在大多数情况下通过正则表达式实现非常简单。对于大多数不受信任的数据,您应该找到大量公开可用的模式。

您可能想做的另一件事是在数据层应用最小权限原则。考虑使用多个 SQL 帐户,并将面向公众的用户使用的帐户的访问权限限制为绝对最低限度的功能。您正在使用存储过程;如果您还没有这样做,请尝试避免任何数据读取器或数据读取器权限。

更多信息请参见 OWASP Top 10 for .NET developers part 1: Injection

关于XSS - SQL 注入(inject) - Owasp、AntiXss 与 Microsoft 反跨站脚本库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837750/

相关文章:

mysql - 为什么 "admin' #"work as a sql injection attack on MySql but "admin' - -"doesn' t?

正在编码的 ASP.NET 4 元关键字和元描述

asp.net-mvc-2 - ASP.NET MVC 2 - AntiXSS 与内置 MVC 编码

php - 防止 XSS 攻击并正确编码字符

asp.net-mvc - 修复 ASP.Net MVC 中的跨站点脚本(反射(reflect))

java - XSS 检查 Angular js - 基于 REST 的 Web 应用程序

php - 防止在 PHP 中的高级 MySQL 存储过程语句中注入(inject)

php - 为什么 mysql_real_escape_string() 不应该避免任何 SQL 注入(inject)?

asp.net - System.Web.Security.AntiXss.AntiXssEncoder 与 Microsoft.Security.Application.AntiXssEncoder

xss - Markdown 和 XSS