![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在あるシステムにおいてWebメールの部分を開発しております。
Webメールといっても単純な送信、受信さえできればいいくらいのもので、複雑な機能は必要ありません。
Webメールは大抵が「企業対企業」で使われ、稀に「企業対個人」になります。
現在悩んでいるのが、受信したメールがHTMLメールだった場合の表示方法です。
受信したHTMLメールをそのままブラウザで表示するのは危険と思われるので、最初は「imgタグのブロック」、「scriptタグのブロック」など危険なところを一つ一つ潰して表示しようと考えていたのですが、調べてみると悪さをするための様々な方法があり、一つ一つやっていたらキリがないというのと、自分が知らない脆弱性を突かれる可能性もあるので、いっそ「HTMLタグはすべて削除して表示」してしまおうかと考えています。
要件としてはHTMLメールをそのまま表示できる必要はありません(送信はテキストのみです)。
ただ、もしいい方法があればHTMLメールの表示に対応したいと考えています。
皆様どう思われますか?
何か良い方法ご存知ないでしょうか?
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はどうやって処理しているのでしょかねえ..
以上、アドバイスでも解答でもなくてすみません。
度々ありがとうございます。
OutlookExpressだとjavascript実行されるのですね・・・。恐ろしいです。
私もYahooメールでいろいろ試してみましたが、悪意のあるコードがうまいことブロックされてました。
No.2
- 回答日時:
htmlspecialcharsを使うではダメでしょうかー
No.1
- 回答日時:
素人考えですが、
危険なところを一つ一つ潰して表示しようと考えるから見落としの危険性があるなら逆に、<BODY>とか<H>とか<P>とか安全と思われるタグだけ残せばよいのでは
string strip_tags ( string str [, string allowable_tags] )
回答ありがとうございます。
HタグやPタグでもonclickでjavascriptのイベントを実行できるので、やるとしたらそれを行った上で、イベントプロパティの削除も行わないといけないんですよね・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 所得税 電子税?のメールについて教えてください 8 2022/09/04 21:38
- Gmail Gmailの使い方について、詳しい方教えてください。 1 2022/04/24 13:04
- Outlook(アウトルック) Outlookメールを立ち上げた(開いた)ときに常に『受信メール』一覧が表示される、という設定の方法 1 2023/04/30 17:37
- Gmail Gメールの受信トレイの表示が変わって、戸惑っています 1 2023/04/04 17:52
- Yahoo!メール yahooメールの検索結果を全て表示するには? 1 2023/05/16 14:34
- Gmail Gメールの転送先でメールが開封された場合の転送元のメールの挙動について 1 2022/12/21 15:23
- Yahoo!メール PCのyahooメールで docomoメール宛に送るとタイトルの後にフォント情報等が表示されてしまう 1 2022/04/15 08:02
- Outlook(アウトルック) infoseekメールの受信トレイでメール一覧が表示されない 1 2023/04/05 11:12
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- その他(メールソフト・メールサービス) サンダーバードでメールが受信されない 10 2022/03/24 17:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iframe内の表示を常に最新にしたい
-
FFFTPでの文字化け
-
3日に1回リロードさせたい
-
safariだけcssが反映されない
-
css ,videotタグ。ホームページ...
-
textareaの一行の文字数制御
-
根号の書き方について
-
文字化けを故意に表示したい
-
Tomcat-ApacheでHTMLを表示させ...
-
firefoxでスクロールバーが二重...
-
ホームページがトルコ語表示に...
-
<title></title>はどこに書くべ...
-
borderでa:hover下線表示させる...
-
POSTしたデータの文字コードがu...
-
短縮URL作成
-
スタイルシートについて(背景...
-
文字コードについて
-
メタタグ編集して文字化けしま...
-
自分で<head>内をかけない場合...
-
jQueryのloadで外部HTMLを読みたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<!DOCTYPE html>あってますか?...
-
<!DOCTYPE html>あってますか?↑
-
<!DOCTYPE html>あってますか?...
-
先日ウェブデザイン技能検定三...
-
css ,videotタグ。ホームページ...
-
指定した演算を実施の結果を表...
-
POSTしたデータの文字コードがu...
-
body内にmetaタグを記述は問題...
-
Duolingo のソースコードの名前...
-
HTMLファイルのインクルードで...
-
文字化けを故意に表示したい
-
iframe内の表示を常に最新にしたい
-
根号の書き方について
-
HTMLソースにない文字がブラウ...
-
safariだけcssが反映されない
-
WEBページがIEだけ文字化けして...
-
FFFTPでの文字化け
-
ページ全体を中央に配置したい...
-
Aタグのmailtoでメッセージ作成...
-
HTML上に貼り付けたPDFが表示さ...
おすすめ情報