SSLで動作しているASP.NETページがあり、コードビハインドでチェックが行われます。不要な/危険な文字をフィルタリングするために正規表現を含まSQLインジェクションのための他の方法はありますか?
は(基本的に、それは今だけ0-9を可能にする、-Z、および-Z):
私は、SQLインジェクションを防ぐために、次のやりました。
「SELECT * FROM table WHERE username = @Username ...」のようなクエリを使用します。
アカウントロックアウトも追加されているため、制限付きの試用が可能です。
IBM AppScanが脆弱性をテストした後、私はBlind SQL Injectionを修正しただけで、Authenticated Bypassは修正していないようです。
私が脆弱性テストに失敗する原因になっているものがありますか?
UPDATE:
...
bool bUser = FilterInput(txtUsername.Text);
bool bPass = FilterInput(txtPassword.Text);
// check for restricted characters
if (bUser && bPass)
Response.Redirect("Login.aspx");
...
public static bool FilterInput(string text)
{
// check if string contains only letters and numbers
return (Regex.IsMatch(text, @"^[a-zA-Z0-9]+$"));
}
ない-ZA-Z0-9文字内のものは「偽」をスローする必要があり、ページがログインページを更新/リダイレクトさせるような。
DBクエリはすべてパラメータ化クエリを使用しており、ログインは正しく機能します。その部分については問題ありません。
あなたの質問の件名はあなたが結んだ実際の質問に関連していないようです。 #2でSQLインジェクションを修正しました。パラメータ化されたクエリ –
正しく処理すると、危険な文字はありません。オプション1は意味がないので、オプション2で完全に緩和する必要があります。 – spender
"Authenticated bypass"に関する情報を少し提供することが考えられます。 「ibm appscan」認証バイパス「」(http://www.google.com/search?q=ibm+appscan+%22authenticated+bypass%22&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla: en-GB:official&client = firefox-a)は、この質問のみを返します。 – spender