質問編集履歴
2
体裁変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -70,9 +70,9 @@
|
|
70
70
|
}
|
71
71
|
header('Location: ./index.php?member='.$member);
|
72
72
|
```
|
73
|
+
■touroku.php 確認用
|
73
74
|
```PHP
|
74
75
|
|
75
|
-
■touroku.php 確認用
|
76
76
|
<?php
|
77
77
|
session_start();
|
78
78
|
echo $_POST["csrf_token"];
|
1
セッションを使用し2重登録の対策を試みましたがうまく動きません。
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,6 +6,12 @@
|
|
6
6
|
原因と対策方法を教えていただけないでしょうか。
|
7
7
|
※今のところPCは2重登録ができない。
|
8
8
|
|
9
|
+
2重登録の対策でセッションを使用してみようと思ってコードを変更してみたところ、
|
10
|
+
「不正なリクエストです」となってしまいます。
|
11
|
+
echoで確認しても両方空のようでうまく動きません・・・
|
12
|
+
ほぼ参考サイトのコピペなのですがなぜでしょうか。
|
13
|
+
※index側では値が入っているのは確認できました。
|
14
|
+
|
9
15
|
ついでに質問:
|
10
16
|
■下のような書き方をしたいのですが、取得できなかった時どうなるのか分からずうまく動きません。
|
11
17
|
書き方を教えていただけたらと思います。
|
@@ -21,6 +27,10 @@
|
|
21
27
|
|
22
28
|
■index.php
|
23
29
|
```PHP
|
30
|
+
session_start();
|
31
|
+
$toke_byte = openssl_random_pseudo_bytes(16);
|
32
|
+
$csrf_token = bin2hex($toke_byte);
|
33
|
+
$_SESSION['csrf_token'] = $csrf_token;
|
24
34
|
|
25
35
|
$ip = $_SERVER['REMOTE_ADDR'];
|
26
36
|
$point = 0;
|
@@ -33,7 +43,7 @@
|
|
33
43
|
|
34
44
|
if( $point < 1 ) {
|
35
45
|
echo '<form action="./touroku.php" method="POST">';
|
36
|
-
|
46
|
+
echo ' <input type="hidden" name="csrf_token" value="<?=$csrf_token?>">';
|
37
47
|
echo ' <label><input type="radio" name="text" value="A"> A</label><br>';
|
38
48
|
echo ' <label><input type="radio" name="text" value="B"> B</label><br>';
|
39
49
|
echo ' <input type="submit">;
|
@@ -59,4 +69,19 @@
|
|
59
69
|
$member = $text;
|
60
70
|
}
|
61
71
|
header('Location: ./index.php?member='.$member);
|
72
|
+
```
|
73
|
+
```PHP
|
74
|
+
|
75
|
+
■touroku.php 確認用
|
76
|
+
<?php
|
77
|
+
session_start();
|
78
|
+
echo $_POST["csrf_token"];
|
79
|
+
echo $_SESSION['csrf_token'];
|
80
|
+
|
81
|
+
if ( $_POST['csrf_token'] === $_SESSION['csrf_token']) {
|
82
|
+
echo "aaa";
|
83
|
+
} else {
|
84
|
+
echo "不正なリクエストです";
|
85
|
+
}
|
86
|
+
?>
|
62
87
|
```
|