昨日私はここで質問しました。なぜ、password_hash()が作成されていないというコードが作成されていないのですが、最終的にはいくつかのユーザーの助けを借りて作業しています(大いに賛成しました!!) ()。以下は私のコードです、私が何を間違ってやっているか教えてください。私はmd5の代わりにそれを使用するように言われているので、私はpassword_verifyに新しいです。あなたが私に助け(その他のファイル)を与えるために何かを必要とする場合、私は喜んでいるでしょうPHP_verify関数と私のコードで検証する方法は?
<?php
/*
*
* Copyright 2017 by Jarrod Estepp
* This script is private software and is illegal to
* use without consent from Jarrod Estepp - [email protected]
*
* login_process.php
*/
include('../includes/settings.php');
include('../includes/mysql.php');
//Grab Login Info
$email = $_POST['email'];
$password = $_POST['password'];
//verify password
$stored_pass = $conn->query("SELECT password FROM admins WHERE email = '$email'");
$password_verify = password_verify($password, $stored_pass);
$sql = "SELECT * FROM admins WHERE email = '$email' AND password = '$password_verify'";
$result = $conn->query($sql);
if (!$row=mysqli_fetch_assoc($result)) {
header("location: {$website_domain}/admin/login?s=1");
} else {
session_start();
$_SESSION['id'] = $row['id'];
$_SESSION['loggedIn'] = true;
header("location: {$website_domain}/admin/dashboard");
}
?>
(私は友人がITを防ぐ方法MEを表示するためにTONIGHTを支援している、私のコードは、SQLインジェクションを持つことができます知っています)それらにコメントする。誰かの助けに感謝します。なぜなら、私はコードを覚えるだけで、これは5時間以上かけて私を修正しようとしましたが、まだ何もありません。
すべての回答が高く評価されています。
** WARNING **:自分のアクセス制御層を書くことは容易ではない、それはひどく間違って取得するための多くの機会があります。 [適切に値をエスケープしていない](http://bobby-tables.com/php)のため、これには多くの危険な[SQLインジェクションの脆弱性](http://bobby-tables.com/)があります。このコードでは、誰でもあなたのサイトから何かを得ることができます。 **あなた自身の認証システムを書いてはいけません**。 [Laravel](http://laravel.com/)のような[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)には、[認証システム](https: /laravel.com/docs/5.4/authentication)ビルトイン。 – tadman
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman
投稿に記載されているように私は安全ではないことを知っています。私は現時点で勉強しています。私はSQLインジェクションを防ぐために今夜私を助けているメンターがいます。これはちょうど私がパネルの上で私が何をする方法を知っていることを作るために始められることができたのでした! –