二箇所の<input>内に数値を入力して、同一ページの下部にて与えられた数値を出力したいです。
フォームは最大で3文字しか入力できません。
行った対策
0. CSRF対策(秘密トークンの発行)
//トークン発行 $_SESSION['ticket'] = sha1(uniqid(mt_rand(), TRUE)); //post受け取り時にトークンの一致を確認 if (isset($_POST['under'], $_SESSION['ticket']) && hash_equals($_POST["ticket"], $_SESSION["ticket"])) { //trueの場合進める
- セッションハイジャック
- エスケープ処理
- クリックジャッキング
- 数値のみ入力可能なバリデーション
if (!preg_match('/^([0-9]{1,3})$/', $under)) { $error['under'] = '3桁以内の数字で入力してください'; }
※セキュリティの関係からコードは割愛してる場合あります。
・秘密トークンの発行により外部ページのpostは受け取らない
・フォームへの入力は3文字が最大であり、エスケープ処理もしている。
上記の点からphp初心者の私からすると脆弱性はないようにも思えるのですが、どうなんでしょうか?
これ以外にも考えられる脆弱性はありますか?
ECサイト内のプログラムなのでセキュリティには気を遣ってます。
よろしくお願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/22 05:23
2020/09/23 02:11
2020/09/23 07:43