私は私の学校のプロジェクトをやっています。私はHPE Fortifyを使って見つかった問題をすべてデバッグする作業をしています。アプリケーションによって生成されたレポートは、SQLインジェクションになりやすい以下のコードを示します。この種のコードはSQLインジェクションを受けやすいのですか?
String sql = " select Distinct p1.desc1,p2.desc2 from parameter p1"
+" inner join parameter p2"
+" on p1.ParaCode1='CR_DERIVE' and p1.ParaCode2=p2.Desc2"
+" inner join parameter p3"
+ " on p2.ParaCode3=p3.ParaCode1 and p3.ParaCode3=p2.Desc2"
+" where p2.paracode1='ATTRIBUTE'"
+ " and p2.ParaCode2='" + ddl_attribute.SelectedValue + "'";
ではなく、以下のコード:私はSQLについて不明確だとして理由を知りたいのです
strSQL = "SELECT Paracode2 FROM Parameter WHERE Paracode1 = 'PROGMGR' AND Desc1 = '" + login + "' AND Status = 'A' ";
注射と私はこれに新しいです。応答をありがとう
マイルール:あなたはSQLインジェクションを理解するための詳細については
、あなたが私のプレゼンテーションSQL Injection Myths and Fallacies、またはその話を提供する私のビデオを好むかもしれないあなたは文字列操作を使用している場合と、クエリパラメータではなく、おそらく脆弱です。クエリパラメータを使用するだけです。 –
どちらも同じように脆弱です。アプリケーションが間違っています。ただ1つのルールに従ってください。* SQLを連結しないでください。**特にユーザーの入力と連動しないでください***あなたは大丈夫でしょう。 –