[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. 緑資源機構の官製談合事件 (1 PV)
  2. プレスリリースとは (1 PV)
  3. 2NN (2ch News Navigator) (1 PV)
  4. アフィリエイトとは (1 PV)
  5. 59bbs.org 利用規約 (1 PV)
  6. 小室哲哉詐欺事件の真相? (1 PV)
  7. [バンクーバー五輪]カーリング女子、「チーム青森」予選敗退 (1 PV)
  8. 飲みやすい日本酒は何といっても「上善如水(じょうぜんみずのごとし)」 (1 PV)

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

  1. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (229 PV)
  2. [Twitter]ツイッター検索のまとめ (128 PV)
  3. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (126 PV)
  4. 岡沢高宏の相棒でヤクザの金村剛弘(金剛弘)が西新宿の路上で襲撃され死亡 (104 PV)
  5. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (92 PV)
  6. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (88 PV)
  7. 伝説の男、瓜田純士さんが新宿駅構内で2週間前に割腹自殺を図る (69 PV)
  8. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (63 PV)
  9. 2NN (2ch News Navigator) (60 PV)
  10. 掲示板フリーソフト - 無料で利用できる掲示板CGI (59 PV)

アクセス統計

ディレクトリ

関連サイト