質問するログイン新規登録

質問編集履歴

1

追記

2017/11/06 14:51

投稿

gsuisk
gsuisk

スコア72

title CHANGED
File without changes
body CHANGED
@@ -63,4 +63,42 @@
63
63
  ```
64
64
 
65
65
  修正すべき点や他に便利なユーザー定義関数があれば教えてください。
66
- よろしくお願いします。
66
+ よろしくお願いします。
67
+
68
+
69
+ _____________________________________
70
+
71
+ 以下追記。
72
+
73
+ ```HTML
74
+ <input type="hidden" name="token"
75
+ value="<?php echo htmlspecialchars($_SESSION['token'], ENT_QUOTES, 'UTF-8'); ?>">
76
+ ```
77
+
78
+ トークン生成
79
+
80
+ ```
81
+ function setToken(){
82
+
83
+ if(session_status() === PHP_SESSION_ACTIVE){
84
+ return;
85
+ }
86
+
87
+ $bytes=openssl_random_pseudo_bytes(16);
88
+ $token=bin2hex($bytes);
89
+ $_SESSION['token']=$token;
90
+
91
+ }
92
+ ```
93
+ トークンチェック
94
+
95
+ ```
96
+ function checkToken(){
97
+
98
+ if(empty($_SESSION['token']) || empty($_POST['token']) ||
99
+ !(hash_equals($_SESSION['token'],$_POST['token']))) {
100
+ exit();
101
+ }
102
+
103
+ }
104
+ ```