お世話なってます。php初心者です。
今、あるフォームからsumitボタンを押したら
CRSFの可能性の有無をチェックするような
メッセージを出したいのですが、エラーが出ます。
どのようにすれば、修正できますか?
ご存知の方居られましたら、ご教示下さい。
・エラー名
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
・やりたいこと
sumitボタンを押したら、CRSFの有無が表示されるようにしたい。
・フォルダの状況
welcome.blade.phpと同じ場所に、以下のファイルをセット。
div_nitta.blade.php
<?php @session_start(); /* POST以外でアクセスされたとき(普通にページに入ってきたときも含まれる) */ if ($_SERVER['REQUEST_METHOD'] != 'POST') { setToken(); checkDump(); /* POSTでアクセスされたとき */ } else { checkToken(); checkDump(); } /* トークンをセッションにセット */ function setToken() { $token = rtrim(base64_encode(openssl_random_pseudo_bytes(32)),'='); $_SESSION['token'] = $token; } /* トークンをセッションから取得 */ function checkToken() { if(empty($_SESSION['token']) || ($_SESSION['token'] != $_POST['token'])) { echo 'CSRFの可能性アリ'; } } /* チェック用関数 */ function checkDump() { if (isset($_POST['token'])) { var_dump($_SESSION['token']); var_dump($_POST['token']); } } ?> <!DOCTYPE html> <html lang="ja"> <head> <title>PHPでCSRF対策</title> <meta charset="utf-8"> </head> <body> <form method="post" action=""> <input type="hidden" name="token" value="<?=htmlspecialchars($_SESSION['token'], ENT_QUOTES, 'UTF-8')?>"> <input type="submit" value="Nitta!!"> </form> </body> </html>
回答1件
あなたの回答
tips
プレビュー