https://qiita.com/Naughty1029/items/08b0ddeb8054 …
で紹介されている。register.phpで$_POST['token']と$_SESSION['token']が一致しなくて、エラーになるのですが、そもそもpostとsessionのtokenがどうすれば一致し、なぜ一致していないのかよく分かりません。サイトのコーディングは他の方は機能していますか?新規登録なので、一致しなくていいものなのでは?とも思えるのですが、アドバイスやコーディングの間違え等があるならば、教えていただきたいです。よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
スマホからの都合上、Postはポスト、Sessionはセッションとします。
セッション変数は、ユーザーがあなたのWebサーバーにアクセスした時に作成され、ブラウザを閉じるなどの何らかの操作をするまで変数の値が保持される特別な変数です。
ポスト変数はユーザーがPostでsubmitした情報がPHPの処理により代入される変数です。
どちらもある操作によって変数の値が決まります。
session_startをした時から入っているように見えたのなら、あなたがそのウェブサイトにアクセスし、別の処理により、セッション変数への代入が行われたので、その内容をセッション変数が保持しているに過ぎません。
非技術者にとって学習難易度が高いかもしれませんが、Laravelのようなフレームワークを使えばここら辺のセキュリティ機能を簡単に実装出来ます(でも、環境構築とか、やり方分からないか。。。)
No.4
- 回答日時:
ご質問の処理は、安全なウェブサイトを作るうえで必要な
CSRF 脆弱性の対策です。
安全なウェブサイトの作り方 - 1.6 CSRF
https://www.ipa.go.jp/security/vuln/websecurity/ …
根本的解決 6-(i)-a 処理を実行するページをPOSTメソッドでアクセスするようにし、その「hiddenパラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する。
一致するとは、
「入力画面を表示して、フォーム内容を記載し、投稿ボタンを押す」
という想定どおりの流れを経た POST 送信である、ということです。
一致しないとは、
想定通りの流れでない不正な POST 送信ということです。
具体的な例を二つほど上げます。
例1) ブラウザ操作ミス
ブラウザ履歴をたどり、登録後画面を再表示してしまった
→ 表示するために再度 POST 送信を送った
→ POST 内に含まれる token が古いままなので SESSION と一致しない
→ エラー発生し登録失敗
例2) 悪意ある攻撃
攻撃者の用意した罠サイト or メールで、ボタンを押してしまった
→ 異常な登録を行う POST 送信がウェブサイトに送られた
→ POST 内に含まれる token が無い or 適当な値なので SESSION と一致しない
→ エラー発生し登録失敗
No.2
- 回答日時:
htmlspecialcharsでエンコードしているのでデコードをするか、セッションの方と同じくエンコードしてから比較する必要があるかもしれません。
いつも回答ありがとうございます。
本職の技術者でないため、詳しく教えて欲しいです。いずれの自身の会社のホームページの作成で奮闘しています。セキュリティもある程度あるログイン機能が欲しいのです。
何とかvscodeを使用してデバッグは行うのですが、
このプログラムをブラウザで開き、入力画面にデータを入れてsubmitしてデバッグを開始すると、プログラムの頭でも、既に$_POSTのtokenにデータが入っているのですが、自動生成されたものなのでしょうか?$_SESSIONはsession_start()でからデータが入っており、値は自動生成のように思えるので、値は違って当然なのでは?という疑問が拭えません。
No.1
- 回答日時:
URLを全て見ているとキリがないですが、
文章から察するに、作成したトークンをセッションに保持し、画面表示時に隠しデータとしてユーザーに送ります。この時サーバーはセッションを保持しますから、ユーザーがsubmitボタンを押した際に、この一致をチェックすることで、悪意のあるなりすまし攻撃を防ぐという、バリデーションと思います。
ただのセキュリティの都合ですから、学習用途で入れる必要はありません。
一致しないと端的に言っても例えば、セッションとポストデ渡ってくる値を出力して見比べるとか、どの段階でその変数にその値が入るのかをチェックするなど、
技術者なのであれば、そのデバッグ行為はご自身で行ってください。
以下蛇足
うちの職場にもデバッグ行為をせずにブラックボックステストの手順と結果だけを報告してくる無能の先輩が居ます。
こういう奴は生産性を落とす害悪でしかありません。技術者なら自分で調査できるはずですし、自分と同じか、それ以上の給料を貰ってるなら、それ分の働きはして欲しいものでふ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ネットショッピング・通販・ECサイト) JRE POINTサイトがスイカ登録するとエラー500が連発して登録出来ません。 1 2022/09/11 19:22
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- PHP htmlのエラーについて(デバッグ) 1 2023/11/13 20:54
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- その他(IT・Webサービス) この教えてgoo!のプロフィール画像とプロフィールがエラーになって登録できません。 1 2024/06/28 16:09
- ハッキング・フィッシング詐欺 この手のものは初めてなのでどうすればいいのか分かりません 4 2024/01/16 02:24
- その他(Microsoft Office) 同じ番号に並び替え 1 2022/10/21 22:37
- 知的財産権 商標登録について ある物を販売するとします。その商品に付けた名前が、他の誰かが商標登録されたものとし 7 2022/10/09 15:34
- iPhone(アイフォーン) iPhone/iPadの標準メールアプリでのアカウント新規登録について pop/imap選択 1 2023/06/22 08:00
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
phpに関わる所での、form action=パス"について"
PHP
-
PHPについて。
PHP
-
プログラミング言語で、使えるクラス沢山ありますが、以下のようなクラスってなんて名前ですか? 例えば1
PHP
-
-
4
アップロードファイルを表示するためにはどうすればよいでしょうか?
PHP
-
5
index.phpって何ですか? 具体的に教えてください
PHP
-
6
AIの登場でプログラマーたちが解雇されていますが
その他(プログラミング・Web制作)
-
7
プログラマーは誘惑にさらされる人生?
その他(プログラミング・Web制作)
-
8
PHPとHTML+Xamppの掲示板で画像も投稿できるように
PHP
-
9
プログラミングについて プログラミングの練習(勉強)ができるようなサイトなどありませんか? あれば教
その他(プログラミング・Web制作)
-
10
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
11
C#でログファイルにファイルパスが出ないようにしたい
C言語・C++・C#
-
12
情報の表現。()内がどうしてもわかりません。
Ruby
-
13
Pythonのコードエラーについてです。
その他(プログラミング・Web制作)
-
14
Web初心者です。 簡易的なWebページを作成し
その他(プログラミング・Web制作)
-
15
php配列のキーの二重定義 $a['zero'],$a['iti']と$a[0],$a[1]とが同等
PHP
-
16
プログラミング
その他(プログラミング・Web制作)
-
17
PHPでこのコード自体に意味は無いんですけど、上のifと下のifの違いってなんですか?個人的には下の
PHP
-
18
phpでPEAR::DBを使っているのですがPEAR::DB関連の処理を関数化して使い易くしようと思
PHP
-
19
正規表現 URL抽出「 [\\/\\b]{0} 」 の意味教えてください。
その他(プログラミング・Web制作)
-
20
CPUが16bitでも32bitOSでコンパイルしたコード(例えばintが4バイトと定義されている)
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
require_once で読み込まれたか?
-
phpでget_headers()が使えない?
-
最小公倍数をPHPで求めるには
-
PHPで、エラーがない場合のみ画...
-
「@$変数」の「@の意味は?」
-
フォントの色を変えるには?
-
正規表現での最後尾のバックス...
-
phpのrenameでエラーが出ます
-
PHPのif文でその処理を途中で抜...
-
imageCreateFromJpeg でのファ...
-
ftpでアップロードが出来ない
-
imagejpegで表示されない。
-
HPを開くとダウンロードページ...
-
バッチファイルで『inotifywait...
-
お名前comのPHPとmysqlの接...
-
ファイルダウンロードについて
-
youtubeに音声のみのmp4ファイ...
-
.phpと.incファイルの違いはな...
-
リンク先を隠す方法はないでし...
-
cakephpのサブタイトルはどこで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
トランザクションが原因?DBに...
-
PHPでネットワークドライブのop...
-
PHP8を使うと、大量のWarningが...
-
パースエラーとは?
-
ワードプレスサイト PHP8.0.25...
-
「@$変数」の「@の意味は?」
-
PHPで、エラーがない場合のみ画...
-
PHPにて外部サイト内容が取得不...
-
PHPでfatal errorが出ても無視...
-
iframeからのアクセスか、ブラ...
-
phpのrenameでエラーが出ます
-
正規表現での最後尾のバックス...
-
fsockopenの例外について
-
これは例外処理でしょうか?
-
PHPで特定のURLにジャンプす...
-
bindValueエラー
-
awsにApacheとPHPを入れて、何...
-
Localeクラスについて
-
PEARのライブラリを使うと文法...
おすすめ情報