0

私たちのソフトウェアは sql-injection に対して脆弱であることがわかりました。

私たちのソフトウェアは、C# と Gizmox フレームワークの一種で書かれています。私たちのフレームワークはパラメーター化されたクエリを処理できず、文字列連結を使用して SQL クエリを作成します。

これはすべて非常に悪いように聞こえますが、長期的にはこれをリファクタリングします。短期的には、迅速な (そしておそらく汚い) ホットフィックスが必要です。

私たちの考えは、正規表現を使用して次のブラックリストに対してユーザー入力を検証することです。

" --" , " ;--" , " ;" , " /*" , " */" , " " @@, " " @, " " char, " " nchar, " " , varchar" " , nvarchar" alter" , " begin" , " cast" , " create" , " cursor" , " declare" , " delete" , " drop" , " end" , " exec" , " execute" , " " fetch, " " insert, " kill" , " open" , " select" , " sys" , " sysobjects" , " syscolumns" , " table" , " update"

ブラックリストは最も弱い SQL 保護であるという事実のため、より良い解決策を求めたいと思います。

4

0 に答える 0