お問い合わせフォーラム作成

お問い合わせフォーラム作成
#05 お問合せフォームを作ろう
http://dotinstall.com/lessons/contacts_php_v2/9805

を参考に
投稿フォームを作成
編集するのは index.php
method=”POST” action=””
というように
自ふぁいるに飛ばす
<form method=”POST” action=””>
<p>お名前; <input type=”text” name=”name” value=””></p>
<p>メールアドレス * :<input type=”text” name=”email” value=””></p>
<p>内容 * :
<textarea name=”memo” cols=”40″ row=”5″></textarea></p>
<p><input type=”submit” value=”送信”></p>
</form>
とする
そして、
#06 CSRF対策を施そう
http://dotinstall.com/lessons/contacts_php_v2/9806
を参考に
CSRF対策を施す
これはトークンチェック
PHP部分にソースを追加
if($_SERVER[‘REQUEST_METHOD’] !=’POST’){
//投稿前の処理
//CSRF対策
setToken();
}else {
//投稿後の処理
checkToken();
}
という分岐になる
リクエストメソッドがPOSTか、そうでないかで分岐している
CSRF対策は
setToken()という function.php で作成するユーザ関数を使う
function setToken(){
//セッショントークンがセットされていないのならセット
if(!isset($_SESSION[‘token’])){
$_SESSION[‘token’] = sha1(uniqid(mt_rand(),true));
}
}
tokenが空、もしくはtoken の値が違うなら
エラーをだして終了
function checkToken(){
if(empty($_POST[‘token’]) || $_POST[‘token’] != $_SESSION[‘token’]){
echo “不正処理です”;
exit;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です