[XSS]の検索結果


PHPの開発環境でプログラムからメールを送信できるかチェックするために作成した、ごく簡単なメールフォームのサンプルスクリプト(プログラム)です。

mailmform.phpを実行すると入力フォームが表示され。送信ボタンを押す(クリック)すると入力した内容がメール送信されます。

<?php
//------------------------------------------------------------------------------
//    mailform.php - sample mailform php script
//------------------------------------------------------------------------------

mb_language("Japanese");
mb_internal_encoding("UTF-8");

define("MAILTO", "support@59bbs.org");

$proc = isset($_POST['proc']) ? $_POST['proc'] : '';
//echo $proc; // for debug
if ($proc == 'send') {
    _send();
}
else {
    _input();
}

// 初期表示
function _input() {
    $formdata = array();
    $formdata['subject'] = '';
    $formdata['name'] = '';
    $formdata['from'] = '';
    $formdata['body'] = '';
    _input_form($formdata, '');
}

// 入力フォーム表示
function _input_form($formdata, $message) {

    // XSS対策
    $formdata['subject'] = htmlspecialchars($formdata['subject'], ENT_QUOTES);
    $formdata['name'] = htmlspecialchars($formdata['name'], ENT_QUOTES);
    $formdata['from'] = htmlspecialchars($formdata['from'], ENT_QUOTES);
    $formdata['body'] = htmlspecialchars($formdata['body'], ENT_QUOTES);

echo <<<EOF
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>サンプルメールフォーム</title>
</head>
<body>
<h2>サンプルメールフォーム</h2>
<p>$message</p>
<form action="mailform.php" method="post">
<input type="hidden" name="proc" value="send">
件名:<br />
<input type="text" name="subject" size="50" value="${formdata['subject']}" /><br />
名前:<br />
<input type="text" name="name" size="50" value="${formdata['name']}" /><br />
メールアドレス:<br />
<input type="text" name="from" size="50" value="${formdata['from']}" /><br />
本文:<br />
<textarea name="body" cols="50" rows="10">${formdata['body']}</textarea><br />
<br />
<input type="submit" value="送信" />
</form>
</body>
</html>
EOF;

    exit();
}

// メール送信
function _send() {

    // パラメータ取得
    $formdata = array();
    $formdata['subject'] = isset($_POST['subject']) ? $_POST['subject'] : '';
    $formdata['name'] = isset($_POST['name']) ? $_POST['name'] : '';
    $formdata['from'] = isset($_POST['from']) ? $_POST['from'] : '';
    $formdata['body'] = isset($_POST['body']) ? $_POST['body'] : '';

    // 入力チェック
    if ($formdata['subject'] == '') {
        _input_form($formdata, '件名を入力してください');
    }
    if ($formdata['name'] == '') {
        _input_form($formdata, '名前を入力してください');
    }
    if ($formdata['from'] == '') {
        _input_form($formdata, 'メールアドレスを入力してください');
    }
    else {
        if (!preg_match('/^[-+\\w]+(\\.[-+\\w]+)*@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]{2,6}$/i', $formdata['from'])) {
            _input_form($formdata, '正しいメールアドレスを入力してください');
        }
    }
    if ($formdata['body'] == '') {
        _input_form($formdata, '本文を入力してください');
    }

    // 送信
    $header = "From: " . mb_encode_mimeheader($formdata['name']) . ' <' . $formdata['from'. '>';
    $result = mb_send_mail(MAILTO$formdata['subject'], $formdata['body'], $header);
    if ($result{
        _input_form($formdata'メールを送信しました');
    }
    else {
        _input_form($formdata'メール送信に失敗しました');
    }
}

?>
[3147] Posted by kagahiro at 2012/06/13 16:38:29
1 point | Link (7) | Trackback (0) | Comment (1)


自分では対応したつもりのXSS脆弱性でしたが、まだまだ残っているという指摘を受けたので再度見直して修正しました。使用する場合は最新版での使用をお願いします。

メールフォームCGI
Q&A CGI
ブックマークCGI
59Tracker
59bbs

なお、SourceForge.JPに置いてある「59Tracker」「59bbs」のパッケージはまだ最新版になっていない(明日までには更新する予定)ので、上記のページからダウンロードしてください。
[1877] Posted by kagahiro at 2010/05/25 13:11:29
0 point | Link (1) | Trackback (0) | Comment (0)


先日公開したQ&A CGI、ブックマークCGIにXSS(クロスサイトスクリプティング)の脆弱性があることが判明しました。

Q&A CGI、ブックマークCGIの書庫ファイルを修正版に差し替えましたので、利用する場合は最新版をダウンロードして下さい。
[1868] Posted by kagahiro at 2010/05/21 00:43:34
0 point | Link (2) | Trackback (0) | Comment (0)

[249] Posted by aaa at 2008/03/13 19:12:33
0 point | Link (1) | Trackback (0) | Comment (0)

  1  


アクセスランキング

今日のアクセスランキング(上位10件)

  1. PHP、MySQLで動くオープンソース掲示板ソフト (3 PV)
  2. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (2 PV)
  3. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (2 PV)
  4. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (1 PV)
  5. ホッシュジエンの国内ニュース解説 (1 PV)
  6. さくらのレンタルサーバ非公式FAQ (1 PV)
  7. 「真実を探すブログ」と「カレイドスコープ」が互いに誹謗・中傷と非難の応酬 (1 PV)
  8. ピーアーク三田は許せない 東京都港区 (1 PV)
  9. 元TBSのフリーアナウンサー「川田亜子」さん他殺の疑い (1 PV)
  10. 伝説の男、瓜田純士さんが新宿駅構内で2週間前に割腹自殺を図る (1 PV)

今月のアクセスランキング(上位10件)

  1. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (93 PV)
  2. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (49 PV)
  3. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (44 PV)
  4. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (34 PV)
  5. 佐野研二郎氏の妻「実際にデザインを担当しているのは数人の部下。佐野は監修しただけ」パクリ疑惑を完全否定 (33 PV)
  6. 自称「紀州のドンファン」和歌山の資産家「野崎幸助」氏が覚せい剤で不審死、警察は殺人容疑で捜査 (28 PV)
  7. ホッシュジエンの国内ニュース解説 (27 PV)
  8. [B-CAS]平成の龍馬(多田光宏)逮捕 (27 PV)
  9. [Twitter]ツイッター検索のまとめ (26 PV)
  10. 2chまとめサイト(ブログ)検索 (26 PV)

アクセス統計

ディレクトリ

関連サイト