私はプロジェクト用のログイン画面で基本的なWebサイトを作成しています。基本的なSQLインジェクションの脆弱性をテストしたいと思います。私は自分のデータベース内の情報を検索し、彼らにそれを印刷するには、ユーザー名とユーザーからパスワードやPHPのコード行を読み取るために、フォームを使用しています:あなたの助けを事前に基本的なSQLインジェクションの脆弱性について私のウェブサイトをテストするには?
if(isset($_POST['username'])&&$_POST['username']!=""&&isset($_POST['pass'] )&&$_POST['pass']!=""){ $sql="SELECT username,pass,email,name,surname,ADT,tel,address,bdate,gender FROM myusers WHERE username='".$_POST['username']."' AND pass='".$_POST['pass']."'";}
感謝を。私のコードに関する追加情報が必要な場合は、質問してください。
あなたのコードは、テストなしですぐに脆弱であることがわかります。 –
簡単に、ちょうど1つの質問をしてください: "*完全にパラメータ化されていない*すべてのステートメントはありますか?" - 答えがイエスならば、あなたのコードは**非常に脆弱です**。あなたの例では明らかです。誰かがユーザー名を投稿したと想像してください。 DROP TABLE myusers; - '..ところで:**決してこれまで!プレーンテキストのパスワードを保存する!** 'password_hash()'と 'password_verify()'を使う! *(普通のパスワードを保存するたびにrootが/ dev/nullに子猫を移動させる)* –