• ベストアンサー

Webメールにおける受信メールの表示について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.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はどうやって処理しているのでしょかねえ.. 以上、アドバイスでも解答でもなくてすみません。

cyanberry
質問者

お礼

度々ありがとうございます。 OutlookExpressだとjavascript実行されるのですね・・・。恐ろしいです。 私もYahooメールでいろいろ試してみましたが、悪意のあるコードがうまいことブロックされてました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

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

cyanberry
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

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

cyanberry
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A