質問編集履歴
2
体裁変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -142,11 +142,11 @@
|
|
142
142
|
|
143
143
|
```
|
144
144
|
|
145
|
+
■touroku.php 確認用
|
146
|
+
|
145
147
|
```PHP
|
146
148
|
|
147
149
|
|
148
|
-
|
149
|
-
■touroku.php 確認用
|
150
150
|
|
151
151
|
<?php
|
152
152
|
|
1
セッションを使用し2重登録の対策を試みましたがうまく動きません。
test
CHANGED
File without changes
|
test
CHANGED
@@ -11,6 +11,18 @@
|
|
11
11
|
原因と対策方法を教えていただけないでしょうか。
|
12
12
|
|
13
13
|
※今のところPCは2重登録ができない。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
2重登録の対策でセッションを使用してみようと思ってコードを変更してみたところ、
|
18
|
+
|
19
|
+
「不正なリクエストです」となってしまいます。
|
20
|
+
|
21
|
+
echoで確認しても両方空のようでうまく動きません・・・
|
22
|
+
|
23
|
+
ほぼ参考サイトのコピペなのですがなぜでしょうか。
|
24
|
+
|
25
|
+
※index側では値が入っているのは確認できました。
|
14
26
|
|
15
27
|
|
16
28
|
|
@@ -44,6 +56,14 @@
|
|
44
56
|
|
45
57
|
```PHP
|
46
58
|
|
59
|
+
session_start();
|
60
|
+
|
61
|
+
$toke_byte = openssl_random_pseudo_bytes(16);
|
62
|
+
|
63
|
+
$csrf_token = bin2hex($toke_byte);
|
64
|
+
|
65
|
+
$_SESSION['csrf_token'] = $csrf_token;
|
66
|
+
|
47
67
|
|
48
68
|
|
49
69
|
$ip = $_SERVER['REMOTE_ADDR'];
|
@@ -68,7 +88,7 @@
|
|
68
88
|
|
69
89
|
echo '<form action="./touroku.php" method="POST">';
|
70
90
|
|
71
|
-
|
91
|
+
echo ' <input type="hidden" name="csrf_token" value="<?=$csrf_token?>">';
|
72
92
|
|
73
93
|
echo ' <label><input type="radio" name="text" value="A"> A</label><br>';
|
74
94
|
|
@@ -121,3 +141,33 @@
|
|
121
141
|
header('Location: ./index.php?member='.$member);
|
122
142
|
|
123
143
|
```
|
144
|
+
|
145
|
+
```PHP
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
■touroku.php 確認用
|
150
|
+
|
151
|
+
<?php
|
152
|
+
|
153
|
+
session_start();
|
154
|
+
|
155
|
+
echo $_POST["csrf_token"];
|
156
|
+
|
157
|
+
echo $_SESSION['csrf_token'];
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
if ( $_POST['csrf_token'] === $_SESSION['csrf_token']) {
|
162
|
+
|
163
|
+
echo "aaa";
|
164
|
+
|
165
|
+
} else {
|
166
|
+
|
167
|
+
echo "不正なリクエストです";
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
?>
|
172
|
+
|
173
|
+
```
|