Hajime Yamamoto
yamam****@ytw*****
2005年 11月 8日 (火) 10:38:33 JST
山本と申します。 [PHPの現行リリースに重大な脆弱性(PHP4.4.0以下、PHP5.0.5以下)] で PHP を 4.4.1 にアップデートされるサイトが多くなってくると思います。 メール送信時のヘッダー情報の文字化け(mb_encode_mimeheaderの挙動) 対策として[ISO-2022-JPに変換してからmb_encode_mimeheaderを使用]を 紹介されていましたが、上記対策を、当方で確認したところ使用する文字に よっては、文字化けは発生します。 (PHP 4.4.1 環境です) で、Web をいろいろ探したところ、XOOPS Cube公式サイトに 以下のトピックを発見しました。 http://xoopscube.jp/modules/xhnewbb/viewtopic.php?topic_id=758&forum=5 | mb_convert_encoding で変換する文字列の先頭に改行をいれると文字化け しないようです。(|PHP 4.4.1 環境で検証中) ただ、[なぜ化けなくなったのか、また他の問題が発生する可能性なども不明で す。] らしいのでさらに検証は必要ですが… catalog/includes/classes/email.php の以下の3箇所を修正。 if ($subject != '') { // PHP 4.4.x 対応 : BOF // $subject = mb_encode_mimeheader(mb_convert_kana($subject, "KV"), "ISO-2022-JP", "B", $this->lf); $subject = mb_encode_mimeheader(mb_convert_kana("\n".$subject, "KV"), "ISO-2022-JP", "B", $this->lf); // PHP 4.4.x 対応 : EOF } //$to = ($to_name != '') // ? ('"' . mb_encode_mimeheader(mb_convert_kana($to_name, "KV"), "ISO-2022-JP", "B", $this->lf) . '" <' . $to_addr . '>') // : $to_addr; $to = ($to_name != '') ? ('"' . mb_encode_mimeheader(mb_convert_kana("\n".$to_name, "KV"), "ISO-2022-JP", "B", $this->lf) . '" <' . $to_addr . '>') : $to_addr; //$from = ($from_name != '') // ? ('"' . mb_encode_mimeheader(mb_convert_kana($from_name, "KV"), "ISO-2022-JP", "B", $this->lf) . '" <' . $from_addr. '>') // : $from_addr; $from = ($from_name != '') ? ('"' . mb_encode_mimeheader(mb_convert_kana("\n".$from_name, "KV"), "ISO-2022-JP", "B", $this->lf) . '" <' . $from_addr. '>') : $from_addr; admin/includes/classes/email.php も同様。 -- ---------------------------------------------- Yamamoto Tool Works Corp. Hajime Yamamoto E-mail: yamam****@ytw***** yamam****@ytw***** Web: http://ytw.jp http://ytw.co.jp Tel: 81-3-5377-1910 Fax: 81-3-5936-2230 ----------------------------------------------