先日、あるホームページのお問い合わせフォームが以下のように組まれていることに気が付きまして。。。
メールの文章や項目は最低限にしまして、そのコードの概要が以下の通りです。
ちなみに「入力フォーム」「入力内容の確認」「送信」は、それぞれ個々のファイルとなっており、下記の「送信」に該当するファイルでは、リファラーチェックやトークンはなし。URLを直接入力した場合、当該ファイルに直接アクセスすることが可能。当ホームページの公開は2年前。PHP のバージョンは 5.3。
if( $_REQUEST['send'] ){ $name = $_POST["name"]; $email = $_POST["email"]; $subject = $_POST["subject"]; $message = $_POST["message"]; $date = date( 'Y-m-d H:i:s' ); $msg = <<<EOD {$data} [お名前]{$name} [E-Mail]{$email} [件名]{$subject} [内容] {$message} EOD; mb_language( 'ja' ); mb_internal_encoding( 'UTF-8' ); $ret = @mb_send_mail( $email, 'お問い合わせ', $msg, 'From: ***@***.***' ); $ret = @mb_send_mail( '***@***.***', 'お問い合わせ', $msg, 'From: '.$email ); }
恐らく、入門書やそれに類するホームページから拾ってきたのではないかと思われるのですが、メールヘッダインジェクション対策をはじめとしたセキュリティを全く考慮していません。ついでに 2038年問題も。更新(F5)連打、各項目が空のケース、その他ツッコミどころ満載のコードです。
これで制作会社を名乗りお金を貰ったのかと考えると真面目に制作している者としてはホントに憤慨です。
当事務所では、上記のような「入門者を教えるためのコードで構築したシステム」を納品することは決してございません。
この記事をお読みで、ご自分のホームページのお問合わせやご予約などのフォームがご心配の場合は当事務所までお気軽にご相談ください。
[mokurenCB]