2016-04-11 33 views
0

を防ぐために使用することができます私は^201[0-9]Q[0-9]$の正規表現をSQLに渡されたパラメータに対して実行します。は、正規表現は、SQLインジェクションに

これで保護すれば十分ですか、とにかく正規表現を悪用できますか?いくつかの擬似コード:

if NOT validateToken(quarter) then 
    sql = "EXEC dbo.spTest '"&quarter&"'" 
end if 

おかげで、あなたのケースで

+1

どのように/どこでチェックし、それ以降にデータベースを呼び出すかによって異なります。 –

+0

データを挿入する前に、データを常に検証しています。次に、すべての条件が満たされた場合にのみ、配列としてのデータを配列のDB層に渡し、配列上でループスルーして、それをエスケープ/消去します。 – vaso123

答えて

0

、はい、チェックがSQLインジェクションを防ぐのに十分です。 入力したチェックの種類は、ユーザーの入力を処理する際に必要なチェックの種類です。

大まかには、ユーザーが提供するデータとSQLコードを連結することはできません。つまり、パラメータの内容について包括的なチェックをしない限りはありません。

WAIT! .NetまたはSQLのパラメータをチェックしていますか? .Netの場合、あなたは安全です。 安全でないコードがSQLに到達すると、あなたは嫌になります。

+0

サーバー側のコード - SQLではない – pee2pee