
パスワードの認証について質問です。正常に動いているのは確認しました。
フォームから受け取ったパスワードをサタニサイズ等をし、データベースで認証する前に認証のテストをしてみようかと思い、下記のように書いてみたのですが、これって意味ありますか?
if($_POST['password']=='et って直接書いてあるしバレバレなのかな~と思ったのですが、どうでしょうか?
ほかにもっとよいコードの書き方があれば教えてください。
if($_POST['password']=='et')
{
if(password_verify($password,$pass) ){
echo "一致しました。";
}}else {
{echo "一致してません";}
}
No.2ベストアンサー
- 回答日時:
補足のページのコードはスタンダードに有効なものです。
必要であればオプションでcost指定することです。
http://phpspot.net/php/man/php/function.password …
コストのデフォルトは10ですが、上げることによって
より複雑なハッシュを生成しますが、ハードウェアパフォーマンスが
必要になります。
ひとまずはコストはいじらず、デフォルトのまま学習してみては。
No.1
- 回答日時:
最初のif()は意味ありません。
DBで管理していることを前提に考えた時、
最初のif()は、DBに管理されているプレーンなパスワード、もしくは
可逆性のあるパスワードを復号化したものを突合することになります。
それはどちらもセキュリティ上ヨシとされるものではありません。
password_verify()によってDBに管理されている不可逆なパスワードと
突合して認証を行うことだけで事が済みます。
勿論、そのパスワードはpassword_hash()によって生成されたもの
であることが前提です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
PHPSpreadsheetによる書き出し...
-
EC-CUBEをeclipseからコンパイ...
-
php エラー
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
php エラー
-
phpinfo で MySQL のバージョン...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheのBasic認証のログの取り方
-
ユーザごとに異なるページ
-
特定の方のみ特別価格で利用で...
-
ユーザー管理プログラム
-
BASIC認証について
-
会員専用ページの作成
-
basic認証を何度も行うには
-
検索エンジン等のような高度な...
-
VB
-
外部の別ホストからのPOST送信...
-
Tomcatの基本認証が8080ポート...
-
Basic認証のパスワードをユーザ...
-
SQLConfigDataSourceについて。
-
jQueryのFullCalendarについて...
-
ユーザー認証ダイアログをパス...
-
ユーザー認証について
-
Basic認証のログオフはやはり無...
-
.htaccessでBasic認証
-
電話の自動発信 返信記録プロ...
-
LinuxOSのユーザ・パスワードを...
おすすめ情報
ありがとうございます。
https://segateway.com/archives/529
こちらのぺーじの下記のコードは有効だと思いますか?
<?php
$passwd = "password";
$passwd_hash = password_hash($passwd,PASSWORD_DEFAULT);
echo $passwd_hash;
if(password_verify($passwd,$passwd_hash) ){
echo "<div>一致しました。</div>";
}else{
echo "<div>一致してません。</div>";
}
?>