-1

データベース テーブルにテキスト型の列があります。この列には、SQL ステートメントを含めることができます。このテキストを sql サーバーに挿入しようとすると、マシンにインストールされているウイルス対策ソフトウェアから sql インジェクション攻撃を受けます。

ウイルス対策がテキストをキャッチしないようにテキストをエスケープするにはどうすればよいですか。

1 つのサンプル テキストは次のとおりです。

"*By supplying a malformed @scriptfile parameter an attacker can run arbitrary
commands:
use master
declare @cmd nvarchar(4000)
exec sp_MScopyscriptfile N'c:\autoexec.bat" c:\cp.txt&echo hello >
c:\ccc.bbb & echo "hello',@cmd OUTPUT
print @cmd
The above query will copy the autoexec.bat file to cp.txt but also echo hello to a file called ccc.bbb.* "
4

2 に答える 2

0

パラメータを使用します。

主な RDBMS はすべて C# で利用できます。

于 2012-07-18T14:59:32.263 に答える
0

データベースに保存する前に、何らかの方法でテキストをエンコードしてみます。Rot13 のような単純なものでうまくいくはずです。

于 2012-07-18T14:58:33.623 に答える