`
karrykai
  • 浏览: 9863 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ASP.NET中如何防SQL注入

阅读更多

防SQL 注入是一个系统工程,在项目开发中就要系统的考虑SQL 注入的问题。一般做到以下4点,能比较好的控制SQL 注入:

  1. 严格验证用户的一切输入,包括URL参数。
  2. 将用户登录名称、密码等数据加密保存
  3. 不要用拼接字符串的方式来生成SQL语句,而是用SQL Parameters 传参数或者用存储过程来查询
  4. 严格验证上传文件的后缀,exe、aspx、asp等可执行程序禁止上传。

这里介绍一个简单通用的方法,用来验证字符串中是否有敏感字符,参数可以是一个字符串,也可以是一个字符串集合,敏感字符可以在Lawlesses数组中定义:

  1.         public static string[] Lawlesses = { "=", "'" };
  2.         /// <summary>
  3.         /// 敏感字符检测
  4.         /// </summary>
  5.         /// <param name="args"></param>
  6.         /// <returns></returns>
  7.         public static bool CheckParams(params object[] args)
  8.         {
  9.             if (Lawlesses == null || Lawlesses.Length <= 0) return true;
  10.             //构造正则表达式,例:Lawlesses是=号和'号,则正则表达式为 .*[=}'].*
  11.             //另外,由于我是想做通用而且容易修改的函数,所以多了一步由字符数组到正则表达式,实际使用中,直接写正则表达式亦可;
  12.             string str_Regex = ".*[";
  13.             for (int i = 0; i < Lawlesses.Length - 1; i++)
  14.             {
  15.                 str_Regex += Lawlesses[i] + "|";
  16.             }
  17.             str_Regex += Lawlesses[Lawlesses.Length - 1] + "].*";
  18.             //
  19.             foreach (object arg in args)
  20.             {
  21.                 if (arg is string)//如果是字符串,直接检查
  22.                 {
  23.                     if (Regex.Matches(arg.ToString(), str_Regex).Count > 0)
  24.                         return false;
  25.                 }
  26.                 else if (arg is ICollection)//如果是一个集合,则检查集合内元素是否字符串,是字符串,就进行检查
  27.                 {
  28.                     foreach (object obj in (ICollection)arg)
  29.                     {
  30.                         if (obj is string)
  31.                         {
  32.                             if (Regex.Matches(obj.ToString(), str_Regex).Count > 0)
  33.                                 return false;
  34.                         }
  35.                     }
  36.                 }
  37.             }
  38.             return true;
  39.         }

 

参考文档:http://msdn.microsoft.com/zh-cn/library/ms998271(en-us).aspx

Copyright playgoogle.com© 2008

继续阅读《ASP.NET中如何防SQL注入》的全文内容...

相关文章:


最新评论:

分享到:
评论

相关推荐

    Asp.Net通用Sql防注入源码

    在Asp.Net开发中,SQL注入是一个非常重要的安全问题,它允许恶意用户通过输入特定的SQL语句来操控后台数据库,可能导致数据泄露、系统瘫痪甚至整个网站的安全性受到威胁。"Asp.Net通用Sql防注入源码"是针对这个问题...

    asp.net简单防范sql注入漏洞

    asp.net简单防范sql注入漏洞 防止 sql注入攻击 1 限制 文本框的最大长度 2 删除用户的单引号 3 处理sql注入的另外一个方法是 使用ado.net command对象的参数集合。 而不是评接多个字符串

    ASP.NET防SQL注入DEMO

    在本文中,我们将深入探讨如何在ASP.NET中防止SQL注入攻击,这是一个重要的安全问题,对任何处理数据库交互的应用来说都是至关重要的。 SQL注入是黑客利用不安全的代码向数据库发送恶意SQL语句,从而获取、修改、...

    ASP.NET(VB.NET)防SQL注入脚本程序.rar

    这个压缩包中的"ASP.NET(VB.NET)防SQL注入脚本2.0"是一个源码实例,提供了防止SQL注入的解决方案。它包含了VB.NET编写的类和方法,用于检查和清理用户输入,确保其不会对数据库执行恶意操作。以下是一些关键的安全...

    ASPXSQL凌讯ASP.NET通用防SQL注入脚本系统 v3.0

    【ASPXSQL凌讯ASP.NET通用防SQL注入脚本系统 v3.0】是一个专为ASP.NET开发的软件,旨在帮助开发者防止SQL注入攻击。SQL注入是网络安全领域中常见的攻击手段,通过输入恶意的SQL代码,攻击者可以篡改、泄露或者破坏...

    asp.net的SQL防注入过滤函数大集合

    ### ASP.NET 的 SQL 防注入过滤函数大集合 #### 概述 在 Web 开发中,SQL 注入是一种常见的安全攻击方式,它利用应用程序对用户输入数据处理不当的漏洞,将恶意 SQL 代码插入到查询语句中,进而执行非法操作。为了...

    【ASP.NET编程知识】ASP.NET过滤类SqlFilter,防止SQL注入 .docx

    在现代网络技术迅速发展的今天,网络安全问题愈发受到重视,其中SQL注入攻击是一种非常严重的安全威胁,尤其对于使用ASP.NET技术构建的应用程序。SQL注入允许攻击者通过输入恶意构造的SQL代码片段,使得应用程序执行...

    asp.net 防SQL注入(非常简洁)

    protected void Application_BeginRequest(object sender, EventArgs e) { //遍历Post参数,隐藏域除外 foreach (string i in this.Request.Form) { if (i == "__VIEWSTATE") continue; this.goErr(this....

    ASP.NET中如何防范SQL注入式攻击

    ASP.NET 是一种强大的 web 应用程序开发框架,然而,如同其他基于数据库的应用程序,它也可能面临 SQL 注入式攻击的威胁。SQL 注入是一种利用恶意 SQL 代码篡改正常查询,以获取未授权访问、数据泄露或破坏数据库的...

    ASP.NET源码——通用防SQL注入漏洞程序(Global.asax方式).zip

    这个压缩包提供的源码是针对ASP.NET应用的通用防SQL注入漏洞程序,通过Global.asax文件来实现。 SQL注入是一种常见的网络安全攻击手段,攻击者通过输入恶意的SQL代码,试图获取、修改或删除数据库中的敏感信息。在...

    ASP.NET网站防SQL注入的方法研究.pdf

    ASP.NET网站防SQL注入的方法研究.pdf

    ASP.NET网站中防SQL注入攻击技术的研究

    本文主要针对目前ASP.NET 网站安全面临的SQL注入攻击来进行分析研究,并从客户端和服务器端两个方面来研究如何防范SQL注入攻击。

    asp.net和vb.net 防止sql注入源码

    详细的介绍了防止sql注入攻击,内附asp.net 源码和vb.net源码。是初学者不错的选择。希望能够帮助到你。

    【ASP.NET编程知识】ASP.NET防止SQL注入的方法示例.docx

    ASP.NET 防止 SQL 注入攻击的方法有很多,这些方法包括参数法防注入、传统的笨一点的办法、HttpModule 实现防sql注入、SqlFilter 防止 SQL 注入、validation 防止 SQL 注入等。只有通过使用这些方法,才能有效地防止...

    ASP.NET防SQL注入脚本程序

    在ASP.NET中,SQL注入是一个严重的安全问题,可能导致数据泄露、非法数据修改甚至整个系统的瘫痪。这个"ASP.NET防SQL注入脚本程序"显然是为了帮助开发者防止这种攻击而设计的。 SQL注入是黑客利用输入字段向应用...

    简单的asp.net登陆有一定的sql防注入功能

    标题提到的"简单的asp.net登陆有一定的sql防注入功能",意味着这个示例将展示一种基础的方法来防止SQL注入攻击。在ASP.NET中,通常我们会使用参数化查询或存储过程来避免这种情况,但在这个例子中,它可能通过一个...

    asp.net防sql注入

    在ASP.NET中,防止SQL注入是确保应用程序安全性的重要环节。SQL注入是一种常见的网络安全威胁,攻击者通过输入恶意的SQL代码,试图获取未经授权的数据访问或控制数据库服务器。 **SQL注入的原理** SQL注入攻击主要...

    史上最全的.net 防止sql注入攻击的替换文本

    在IT领域,尤其是在Web开发与数据库交互的过程中,SQL注入攻击是一种常见的安全威胁,它通过将恶意SQL代码插入到查询语句中,以达到控制或篡改数据库的目的。针对这一问题,《史上最全的.NET防止SQL注入攻击的替换...

    ASP.NET下如何防范SQL注入式攻击

    在ASP.NET开发环境中,防范SQL注入式攻击是确保应用程序安全的关键步骤之一。SQL注入是一种常见的攻击方式,通过将恶意SQL代码插入到查询语句中,攻击者可以绕过身份验证,篡改数据,甚至完全控制数据库。为了保护...

Global site tag (gtag.js) - Google Analytics