ASP.NET SQL注入防止方法の例

1824 ワード

この例ではASPについて述べる.NETはSQL注入を防止する方法です.皆さんの参考にしてください.具体的には以下の通りです.
最近他の人のプロジェクトを引き継いで、SQL注入の抜け穴があることを発見して、あまりコードを変えたくないので、そのパラメータ法は注入を防ぐために私は使いません.伝統的な愚かな方法しか使えない.
1、新規Global.asaxファイル.
2、次のコードを追加します.

void Application_BeginRequest(object sender, EventArgs e)
{
    bool result = false;
    if (Request.RequestType.ToUpper() == "POST")
    {
       //post        。
    }
    else
    {
      result = ValidUrlGetData();
    }
    if (result)
    {
      Response.Write("           !");
      Response.End();
    }
}
/// 
///   QueryString    
/// 
public static bool ValidUrlGetData()
{
    bool result = false;
    for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
    {
      result = Validate(HttpContext.Current.Request.QueryString[i].ToString());
      if (result)
      {
        break;
      }//        
    }
    return result;
}
public static string []strs = new string[] {"select","drop","exists","exec","insert","delete","update","and","or","user" };//         ,        。
public static bool Validate(string str)
{
    for (int i = 0; i < strs.Length; i++)
    {
      if (str.IndexOf(strs[i]) != -1)
      {
        return true;
        break;
      }
    }
    return false;
}


もっとaspについてNet関連内容に興味のある読者は、「asp.net最適化テクニックまとめ」、「asp.net文字列操作テクニックまとめ」、「asp.net操作XMLテクニックまとめ」、「asp.netファイル操作テクニックまとめ」、「asp.net ajaxテクニックまとめ」、「asp.netキャッシュ操作テクニックまとめ」を参照してください.
本文で述べたように皆さんにasp.Netプログラミングが役立ちます.