2009-07-15 10 views

答えて

0

は常に、SQLクエリを検証し、不要な文字を削除し、SQLインジェクションを回避するために、SQLパラメータを使用して参照してください。ここ

5

は簡単な例です:

スクリーン入力:

enter your name: Bill'); delete from users -- 

ビルドクエリ

insert into users (name) values ('''[email protected]+''')' 

実際のクエリ:

insert into users (name) values ('Bill'); delete from users --') 

何が起こるか:すべてのユーザーが取得します削除されたFYI、ないあなたが使用しているデータベースの確認が、変数は@Nameで、

「 - 」SQLインジェクションを回避するために、ストアドプロシージャをコメント

+0

+1いいえ擬似コード –

0

使用され、またServer.HtmlEncode(文字列を使用します入力)

0

SQLインジェクション攻撃は、ユーザーインターフェイス要素にSQLをインジェクトするプロセスであり、後でバックエンドSQLサーバー上で実行され、望ましくない動作を引き起こします。 Click here for an article, that explains SQL Injection Attack with an example.ストアドプロシージャまたはパラメータ化クエリを使用してSQLインジェクション攻撃を解決します。

+2

詳細を説明するだけでなく、リンクを明示する – vinculis

0

攻撃者は、フォームからSQLクエリをクラッキングするだけでなく、クエリ文字列または過去の方法をASPで使用すると、ソフトウェアはクエリ文字列の値を使用するページを見つけることができます。攻撃者はそのURLにスクリプトを追加し、ウェブサイトのサイトのページコードがクエリ文字列から値を取得し、その値を検証するチェックがないときにスクリプトを追加します。すべてのスクリプトは、実行のためにデータベースに渡されます。 urlで使用されるスクリプトは16進形式であり、クエリアナライザでこのステートメントを実行すると実行形式になります。 LIVE DATABASEでこのスクリプトを実行しないでください。これを行うには、ダミーのデータベースを作成してから実行してください。さもなければデータベースが感染します。

これらのステートメントは、データベースのすべてのテーブルを取得し、次にテーブルのすべてのカラムを取得してインジェクションを広げるカスルを作成します。 +宣言する+%の40代+ VARCHAR%28.8万%29 +設定+%40代%280x73657420616e73695f7761726e696e6773206f6666204445434c415245204054205641524348415228323535292c404320564152434841522832353529204445434c415245205461626c655f437572736f7220435552534f5220464f522073656c65637420632e5441424c455f4e414d452c632e434f4c554d4e5f4e414d452066726f6d20494e464f524d4154494f4e5f5343484 detail link

+0

回答を投稿していただきありがとうございます! [自己プロモーションに関するよくある質問](http://stackoverflow.com/faq#promotion)をよく読んでください。また、自分のサイト/製品にリンクするたびに免責条項を掲示することが必須*であることにも注意してください。 –

関連する問題