2017-10-30 7 views
0

タグについてのドキュメントでは、<head>の内側にあり、<base>タグが1つのみである必要があると記載されています。HTML <base>タグからの保護方法を教えてください。

ただし、このタグは、<body>のどこかに置かれたとしても、相対リンクのベースURLを正常に置き換えます。

多くの相対リンクを持つサポートチケットシステムで動作が検出されました。システムは電子メールをレンダリングし、電子メールのHTMLコードに<base>タグが含まれている場合、電子メールがレンダリングされた後、すべての相対リンクがタグで指定されたベースURLに変更されます。

Firefox、ChromiumベースのブラウザEdgeの動作が確認されました。 IE11はそれを無視します。あなたは簡単なサンプルhereをチェックすることができます。

ウェブサイトのHTMLマークアップを変更せずにこのような動作から保護することはできますか?

+0

あなたは何を変更できますか?そのベースタグはどこから来ていますか? – Salketer

+0

@Salketer ''は受信メールから届きます。このアプリはJavaベースのウェブサイトです。これと以下の提案に基づいて、アプリの置き換え/アップグレード以外は何もできないようです。 –

+0

あなたは何をすることができると思いましたか?あなたは遊ぶことができないものが入ってきます。変更できないものによって表示されます...問題が非常に単純であっても、あなたは何もできません。 – Salketer

答えて

1

@Quentinが示唆しているように、不要なHTMLからHTMLを保護する最良の方法は、表示する前に単純に取り除くことです。残念ながら、時にはこれは物事を壊すでしょう!この特定の例のように、ユーザが<base>と相対リンクを含む意志を送信した場合、タグを削除するとすべてのリンクが切断されます。

これを回避するには、iframeを使用できます。彼らは外国のコードをサンドボックスするのにとても便利なツールです。これは盲目的に厳しく使われるべきではありません...

電子メールを読むために使用されたアプリケーションを制御できない場合は、唯一の希望は電子メール自体で修正することです。受信ボックスにフックを作成して、不要なHTMLを(@ Quentinの提案を使用して)モニタリングする受信トレイに入れる前に取り除くことができます。

2

盲目的に電子メールをHTML文書に挿入しないでください。他の潜在的なXSS攻撃の原因と同様に扱います。

HTMLを許可する場合は、DOM対応のホワイトリストベースのフィルタ(PHPを使用している場合はHTML Purifierなど)を使用してHTMLを実行します。

<base>は、ホワイトリストでは許可しないでください。

関連する問題