質問編集履歴

1

追記

2017/11/06 14:51

投稿

gsuisk
gsuisk

スコア72

test CHANGED
File without changes
test CHANGED
@@ -129,3 +129,79 @@
129
129
  修正すべき点や他に便利なユーザー定義関数があれば教えてください。
130
130
 
131
131
  よろしくお願いします。
132
+
133
+
134
+
135
+
136
+
137
+ _____________________________________
138
+
139
+
140
+
141
+ 以下追記。
142
+
143
+
144
+
145
+ ```HTML
146
+
147
+ <input type="hidden" name="token"
148
+
149
+ value="<?php echo htmlspecialchars($_SESSION['token'], ENT_QUOTES, 'UTF-8'); ?>">
150
+
151
+ ```
152
+
153
+
154
+
155
+ トークン生成
156
+
157
+
158
+
159
+ ```
160
+
161
+ function setToken(){
162
+
163
+
164
+
165
+ if(session_status() === PHP_SESSION_ACTIVE){
166
+
167
+ return;
168
+
169
+ }
170
+
171
+
172
+
173
+ $bytes=openssl_random_pseudo_bytes(16);
174
+
175
+ $token=bin2hex($bytes);
176
+
177
+ $_SESSION['token']=$token;
178
+
179
+
180
+
181
+ }
182
+
183
+ ```
184
+
185
+ トークンチェック
186
+
187
+
188
+
189
+ ```
190
+
191
+ function checkToken(){
192
+
193
+
194
+
195
+ if(empty($_SESSION['token']) || empty($_POST['token']) ||
196
+
197
+ !(hash_equals($_SESSION['token'],$_POST['token']))) {
198
+
199
+ exit();
200
+
201
+ }
202
+
203
+
204
+
205
+ }
206
+
207
+ ```