SQLインジェクション-危険が貯手話(ータを取り込み)?
-
12-09-2019 - |
質問
私も探りながっているSQLインジェクションのいまを入力していると思うのですが、間違った末、スティックな分野のデータsanitising等-
私はjavaプログラムを呼び出す保存の手順にータを取り込み.の保存手順はCL/RPGコードす。この保存された手続きして呼び出されるパラメータのデータからのウェブページです。例えば、コールは、次のようになります:-
call library.prog('field1Value', 'field2Value')
私の心配をする必要が文字の入力のウェブサイト'field1Value"などなど、なので収納の方は、危険のsqlインジェクションが存在しない?いるかどうかによってRPGプログラムの裏を使用してfield1Value"の独自のSQL文の一環としてるんです。
分野長に渡されたproecdureは固定長でできませんので、例えば、変換'危'文字をhtmlに相当する
を担当するん先が愚かなこの問題です!) フィードバック(必ずしもータを取り込みに特定)。
解決
を使用していない限りそのパラメータの構築の動的sqlを集そのものでは
もできないクリーンでチェックによるパラメータ
こちらをご参照: SQLお誘いしてみて下さいを保護すること
以下のsqlサーバー構文
っきりと説明でき,このような
prDropDeadFred ' declare @d varchar(100) select @d = reverse(''elbaTdaB,elbatecin elbat pord'') exec (@d)'
またはこのような
prDropDeadFred ' declare @d varchar(100) select @d = convert(varchar(100),0x64726F70207461626C65204E6963655461626C652C4261645461626C65) exec (@d)'
または5000その他の方法でこのプログラムについて知らな
他のヒント
あなたは、安全でない可能性がありますます。
あなたはJDBCのCallableStatementを使用している場合は、安全です。 CallableStatementのは、ただのPreparedStatementのサブタイプである、とSQLインジェクション攻撃が可能にすべきではありません。あなたのストアドプロシージャは、動的SQLを実行していた場合、私は真実ではないことが、このために考えることができる唯一の方法は次のようになります。