Web サイトでユーザーが送信したカスタム CSS を許可したいと考えています。
スタイルの組み合わせによっては安全ではない場合があることはわかっていますposition:absolute
。
それでも、そのコンテンツを div でラップしても、上記は問題ありませんposition:relative
。
また、css を介してスクリプトを実行する可能性がいくつかあると聞きましたが、思い出すことも考えることもできませんでした。
だから私の質問があります:
- 安全と考えられるのはどれか。
- そして、ブラックリストには何が入るでしょうか?
理想的には、style="*" タグのコンテンツを受け入れる関数を作成し、それに応じてサニタイズします。
また、どのアプローチがより良いかについて、いくつかのアドバイスを検討します。
- ブラックリストから安全でない属性を照合して除外する
- または、ホワイト リストに含まれているものだけをバイパスすることを許可します (ただし、リストは巨大になる可能性があります)。
大砲に大規模な機能がある場合は、これを吐き出すのに適した場所です。:-)