私はAzureを読んでいます パターンとプラクティスのマルチテナントガイダンス そしてそこには
カスケードスタイルシート動作は、Surveysサイトがサポートしない機能の1つです。
マルチテナントWebサイトでサポートする必要があるCSS機能は何ですか?
2つの問題があります。
CSSにはJavascriptを含めることができます。古いブラウザはJavascriptを実行します。 Javascriptは、Webサイトに与えられたすべての特権を受け取るため、各テナントは、受け取るべきではない特権(たとえば、他のテナントを混乱させる特権、または周囲のサイトを混乱させる特権)を取得できます。たとえば、 Samyワーム と 最近のFacebookの脆弱性 はどちらも悪意のあるCSSに関係していました。
新しいブラウザはJavascriptを実行しませんが、古いブラウザはまだたくさんあります。 JavaScriptまたはその他のアクティブコンテンツをCSSに含める方法には、url(javascript:alert())
、url("http://evil.com/evil.js")
、expression(alert())
、-moz-binding:
、behavior:
、おそらく他の人。
あるテナントのCSSは、他のテナントまたは周囲のサイトのHTMLにスタイルを設定しようとする可能性があります。これにより、悪影響が生じる可能性があります。
原則として、これらの攻撃から防御するためにCSSサニタイザーを作成し、テナントが独自のCSSを指定できるようにすることができます。しかし、それを正しく行うのは非常に難しいし、間違いを犯しやすいので、軽く取り組むことはできません。
記事はあいまいですが、JavaScriptのようなコンテンツのブロックについて言及していると推測するのは危険です。