dポイントプレゼントキャンペーン実施中!

現在あるシステムにおいてWebメールの部分を開発しております。
Webメールといっても単純な送信、受信さえできればいいくらいのもので、複雑な機能は必要ありません。
Webメールは大抵が「企業対企業」で使われ、稀に「企業対個人」になります。

現在悩んでいるのが、受信したメールがHTMLメールだった場合の表示方法です。
受信したHTMLメールをそのままブラウザで表示するのは危険と思われるので、最初は「imgタグのブロック」、「scriptタグのブロック」など危険なところを一つ一つ潰して表示しようと考えていたのですが、調べてみると悪さをするための様々な方法があり、一つ一つやっていたらキリがないというのと、自分が知らない脆弱性を突かれる可能性もあるので、いっそ「HTMLタグはすべて削除して表示」してしまおうかと考えています。
要件としてはHTMLメールをそのまま表示できる必要はありません(送信はテキストのみです)。
ただ、もしいい方法があればHTMLメールの表示に対応したいと考えています。

皆様どう思われますか?
何か良い方法ご存知ないでしょうか?

A 回答 (3件)

No.1です。


Webメーラーサイトがどのように対処しているのか試してみました。
Google GmailサイトとInfosheek楽天メールの自分のアドレスに
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Language"
content="ja">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-2022-jp">
<title>test</title>
</head>
<body>
<h1 onclick='javascript:alert("xxxxx");'>go</h1>
<script>
alert("yyyy");
</script>
</body>
</html>
なるHTMLメールを送ってみました。
結果Gmailでは、scriptのみ除去され
太大文字でgo
が表示されました。
一方Infosheekでは、タグがストリップされたテキスト
test alert("yyyy");
go alert("yyyy");
と表示されました。ここはHTMLメール未対応という事かも
同じメールをOutlookExpressで受信しかつセキュリティレベルを
下げていると、プレビューで即JAVASCRIPTが実行されてしまいました。
確かに、危険ですね。
Gmailはどうやって処理しているのでしょかねえ..

以上、アドバイスでも解答でもなくてすみません。
    • good
    • 0
この回答へのお礼

度々ありがとうございます。
OutlookExpressだとjavascript実行されるのですね・・・。恐ろしいです。

私もYahooメールでいろいろ試してみましたが、悪意のあるコードがうまいことブロックされてました。

お礼日時:2009/05/19 18:45

htmlspecialcharsを使うではダメでしょうかー

    • good
    • 0
この回答へのお礼

回答ありがとうございます。

それはもう「HTMLタグはすべて削除して表示」と同じことですよね。
それは最終手段と考えています。

お礼日時:2009/05/19 15:21

素人考えですが、


危険なところを一つ一つ潰して表示しようと考えるから見落としの危険性があるなら逆に、<BODY>とか<H>とか<P>とか安全と思われるタグだけ残せばよいのでは

string strip_tags ( string str [, string allowable_tags] )
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

HタグやPタグでもonclickでjavascriptのイベントを実行できるので、やるとしたらそれを行った上で、イベントプロパティの削除も行わないといけないんですよね・・・。

お礼日時:2009/05/19 15:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!