ASP.NET SQL注入防止方法の例
1824 ワード
この例ではASPについて述べる.NETはSQL注入を防止する方法です.皆さんの参考にしてください.具体的には以下の通りです.
最近他の人のプロジェクトを引き継いで、SQL注入の抜け穴があることを発見して、あまりコードを変えたくないので、そのパラメータ法は注入を防ぐために私は使いません.伝統的な愚かな方法しか使えない.
1、新規Global.asaxファイル.
2、次のコードを追加します.
もっとaspについてNet関連内容に興味のある読者は、「asp.net最適化テクニックまとめ」、「asp.net文字列操作テクニックまとめ」、「asp.net操作XMLテクニックまとめ」、「asp.netファイル操作テクニックまとめ」、「asp.net ajaxテクニックまとめ」、「asp.netキャッシュ操作テクニックまとめ」を参照してください.
本文で述べたように皆さんにasp.Netプログラミングが役立ちます.
最近他の人のプロジェクトを引き継いで、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プログラミングが役立ちます.