ログインフォームを作成しようとしていますが、DBにパスワードをMD5 $ password = md5($ _ POST ['password'])として保存しています。しかし、私はパスワードを使用しようとしています。SELECT * FROM *******
ここでusername = '$ username'とpassword = '$ password'ですが、これは動作しません。私が考えることができるのは、それをmd5として保存し、プランテキストを選択することだけです。あなたのコードが表示されていないから、あなたはそのためのコードは、SQL-インジェクションに対して脆弱と思われる、いくつかの適切な変数にエスケープを行う場合MySQLはmd5を選択します
答えて
あなたは、しかし、
"SELECT * FROM ******* WHERE username='$username' AND password='".md5($password)."'"
を使用することができます。変数にクエリを投げる前に、変数を正しくエスケープする必要があります。
クエリが完全に有効である、と彼はパスワードを知らなくても、そのユーザでログインできるようになります
SELECT * FROM ******* WHERE username='admin' -- $username' AND password='".md5($password)."'"
のように終わるように、あまり詳細に入るがなければ、誰かは、ユーザー名を入力することができます。
私はこれを初めて知りました。どこから始めたらいいのか分からず、他の人がそれをやっているのを見たことがあるので、どうやってそれをやっていくのですか? –
@RyanJ Google for "SQL-Injection"は、どのように動作し、どのように回避できるか、多くの例がわかります。 – dognose
私はpassword = '"。md5($ password)を試しました。"それは今ページを誤って動作していない。それは引用符、何か考えて何かを持っていると思う? –
- 1. Mysqlは選択から行を選択します
- 2. MySQLはグループ化を選択します。
- 3. mysqlはSETセパレータを選択します
- 4. MySQLはデフォルト値を選択します
- 5. mysqlはサブクエリーで選択します。クロージャー
- 6. PHP md5()はMySQL md5とは異なる出力を返します
- 7. PHP MD5とMySQLのmd5
- 8. 選択テーブルは、MySQL
- 9. MySQLは:副選択
- 10. mysqlの選択クエリは任意の深さを選択します
- 11. MYSQLを選択し、各カテゴリー
- 12. MySQL MD5 SELECT
- 13. mysqlから条件を選択してフィールドを選択する
- 14. MySQL - ビューまたは直接選択から選択
- 15. 選択mysqlの
- 16. MYSQL選択クエリ
- 17. MYSQLクエリを選択&
- 18. MySQL - クエリを選択
- 19. mysqlは今日から今日までを選択します
- 20. MysqlはnumnameとしてMOnth名を選択します
- 21. Mysqlは選択した行の割合を計算します
- 22. Mysqlは2つの列を選択して表示します
- 23. MySQLは上位グループnレコードをネストして選択します
- 24. MYSQL +は2列を選択します - 1は、ユニーク
- 25. 選択しCURDATE MySQLの
- 26. MySQLはすべて範囲内の行を選択します
- 27. mysqlはすべてのテーブル名を選択します。
- 28. mysqlは一致する結果を選択します
- 29. mysqlはすべてオーダーIDでグループを選択します
- 30. MYSQL選択テーブルの行は
パスワードハッシュにMD5を使用しないでください。それは大いに不安です。 – ceejayoz