ユーザーログイン機能について、取得した全てのDBユーザーテーブル情報を、セッション変数$_SESSION['★★']に格納しているサンプルコードがありました(2つ程見かけました)
■質問
・セッション変数にパスワードを保持しても良いのでしょうか?
・生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので、そういう意味ではセッション変数には何を保存しても良いのでしょうか? 単に保存先が、セッション変数かDBかの違いでしかない?
・あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの、のみ保存して、その都度DBに問い合わせた方が良いのでしょうか? でも、これって非効率的?
No.1ベストアンサー
- 回答日時:
あまりよいやり方とは思えません。
>生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので、そういう意味ではセッション変数には何を保存しても良いのでしょうか? 単に保存先が、セッション変数かDBかの違いでしかない?
いいえ。PHPを利用するサーバーでは、セッション変数を外部から操作しようとする変数汚染攻撃と呼ばれるものが存在します。コーディングに注意していないと、この種の攻撃によりセッション変数へのアクセスを許す危険があります。ですから、
>あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの、のみ保存して、その都度DBに問い合わせた方が良いのでしょうか?
↑
これが正しい考え方だと思います。
No.2
- 回答日時:
>セッション変数にパスワードを保持しても良いのでしょうか?あのーーーーーー。
もしかしてDBの方にもパスワードそのまま保存しているのか?それセキュリティーを考えるなら絶対にやっちゃ駄目な手法だぞ。
DBの方にはパスワード文字列から生成したハッシュを保存するんだよ。
でもちろんセッション側もパスワードのまま保持なんてしない。ハッシュを保持する。
>生成した予測不能な文字列(セッションキー?)が破られたらどうしようもないので
それの心配するならワンタイムセッションくらい使えよ。
>あるいは、セッション変数には必要最低限なもの、もしくはセキュテリティに関係ないもの
じゃあパスワードのハッシュも一応セキュリティーに関係するけどそうすると今度は
ログインユーザに対してどうやって確認処理をする?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- その他(セキュリティ) アカウントの乗っ取りで質問です。長いです。 先月ツイッターの乗っ取りにあい、アカウントを全て新しくし 2 2022/03/25 20:47
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- PHP ログインした掲示板ですが、直接開かないような設計するには? 2 2022/10/29 16:30
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Google Drive 会社への勤怠届出にGoogleフォームを使用しています。 しかし、最近何故か『このサービスはビジター 2 2022/12/05 00:21
- その他(ゲーム) ファイナルファンタジー7リメイクのnormalクリア後のセッションセレクトについて。 セッションを自 2 2023/04/11 16:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのセッション有効期限について
-
複数のサーバで運営する場合の...
-
ログインしたら他からログイン...
-
リアルタイムカウンター
-
プログラミングPHP内でのSQL文...
-
ブラウザを閉じた後もセッショ...
-
session_set_save_handler と ...
-
別ブラウザ間でセッションの値...
-
負荷分散におけるセッションID...
-
DMMの動画を全件取得したのです...
-
Yahoo! JAPAN IDを新規取得でき...
-
Dosブロンプトでtabを出力したい
-
フォームを使わずにPOST送信す...
-
アクセスの度にIPアドレスを変...
-
【C#】DataGridViewの最大列数...
-
ローカルのコンピュータ名を取...
-
【C#】FindWindowExの使い方を...
-
先日NISAの投資信託で、初めて...
-
初歩的な質問だと思います。IF...
-
Parse error というエラーの対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
PHPのセッション有効期限について
-
PHPのセッションについて
-
ブラウザを閉じた後もセッショ...
-
Sessionの上限について
-
$_SESSIONと、POSTやGETの違い
-
ログインしたら他からログイン...
-
複数のサーバで運営する場合の...
-
301リダイレクトはセッション引...
-
「戻る」ボタンで値の保持
-
セッションのスコープ(有効範...
-
セッション ID とセッション名...
-
ログイン画面をはさんだ後、自...
-
session_start()で生成されるセ...
-
管理者としてログイン
-
セッション変数にパスワードを...
-
セッションを維持したまま、サ...
-
PHP cookieの値が更新されない...
-
セッションが正しく更新されな...
-
POSTで情報を他のサーバーに渡...
おすすめ情報