JAVAクラシック面接問題(一)--SQL注入の判断と防止


SQL注入は現在ハッカーが最もよく使う攻撃手段であり、その原理はデータベースによる特殊な識別子の解析を利用してページからバックグラウンドに強引に伝達することである.SQL文の構造を変更し、拡張権限を達成したり、高レベルのユーザーを作成したり、ユーザーの資料を強制的に変更したりします.では、SQLに注入されたかどうかをどう判断しますか?SQL注入の原理を通じて私达は知っていて、SQL注入がページを通じて伝わることができるデータを判断して、バックグラウンドはバックグラウンドから伝わるいかなるデータを信じるべきでなくて特に特殊な整数型のパラメータと特殊な文字のパラメータ!SQL注入を防ぐのも簡単です.変数データ型とフォーマットをチェック固定フォーマットの変数であれば、SQL文を実行する前に、厳格に固定フォーマットに従ってチェックし、変数が予想通りのフォーマットであることを確認しなければならない.2.特殊記号をフィルタリング固定形式を確定できない変数に対しては、必ず特殊記号の来たり移転処理を行い、一面の星SQLでは曖昧である.画像をアップロードすると
enctype=\”multipart/form-data\”
enctype=”multipart/form-data

「/」、フォーム内のenctype="multipart/form-data"という意味ではなく、フォームのMIME符号化を設定します.デフォルトでは、この符号化フォーマットはアプリケーション/x-www-form-urlencodedであり、ファイルアップロードには使用できません.multipart/form-dataを使用するのみ、ファイルデータを完全に転送し、次の操作を行うことができる.3.変数をバインドし、プリコンパイル文を使用する実際、バインド変数はプリコンパイル文を使用することがSQL注入を予防する最良の方法であり、プリコンパイルされたSQL文の意味は変更されません.SQL文では、変数は疑問符を使用しますか?ハッカーはいくら能力があってもSQL文のフォーマットを変えることができず、SQL注入攻撃の発生を根本的に根絶したという.4.データベース情報の暗号化セキュリティデータベース情報が漏洩した場合、データベースのパスワードなどの情報を暗号化(MD 5など)しなければならない.このように情報が漏洩し、損失も一定の範囲内に抑えることができる.
JSPを使うときは注意しましょう.生産環境要約Webserverのエラー表示を勝手に開かないでください.2.ユーザー側からの変数入力を永遠に信じないでください.固定フォーマットのある変数は必ず対応するフォーマットを厳格にチェックしなければなりません.固定フォーマットのない変数は引用符などの特殊な文字に必要なフィルタ変換を行う必要があります.3.バインド変数をプリコンパイルするSQL文4を使用する.データベースアカウントの権限管理をしっかりと行う.ユーザ機密情報の厳格な暗号化処理
良いプログラムは必ず安全性に注意しなければなりません.そうしないと、手を練習するのに適しています.