2

ユーザーが PHP アプリの CSS をカスタマイズできるようにする必要があります。通常、そのユーザーのみがカスタム CSS を表示できますが、グループ内の他のユーザーも CSS を表示できる場合があるため、そのサニタイズを確実にする必要があります。

HTMLPurifier と CSSTidy を PHP に使用できることは承知していますが、CSSTidy は非常に時代遅れであり、必要なすべてを処理できないようです。

これを実行できる他の PHP ライブラリは見つかりませんでした。

私が検討している代替手段の 1 つは、Ruby ライブラリ (http://apidock.com/rails/HTML/WhiteListSanitizer/sanitize_css またはhttps://github.com/courtenay/css_file_sanitize/blob/master/lib/css_sanitize.rb )を使用することです。そしてそれをphpに変換します。

そのルートをたどる前に、上記の代替手段はありますか? また、Ruby ライブラリの 1 つを使用する前に知っておくべき落とし穴はありますか?

4

1 に答える 1

0

更新: ほぼ 8 年後、私の回答が反対票を獲得し始めたので、2 番目のメモを残したいと思いました。

私はキャリア初期の頃ほど JS/CSS を扱っていません。ここ数年は、主にバックエンド サービスとツールの構築に注力していました。したがって、このテーマに関する私の知識は、たとえそれを鋭く保つように努めたとしても、時代遅れである可能性があり、それには規律と努力が必要です.

それでも、HtmlPrufier や TidyCSS 以外に、より優れたツールが今日存在する可能性があります。これらのツールが悪いと言っているのではありません。しかし、コミュニティのサポートと積極的なメンテナンスは重要です。経験則として、私は自分のアプリケーションで死んでいるか、メンテナンスされていない依存関係を避けています。

サニタイズするためにここで PHP が必須である場合、 ウィキメディアの CSS サニタイザーが機能するかどうかを最初に調べます。多かれ少なかれ、それは仕事をしています。特定の CSS の縮小版をファイルシステムに保持し、アプリケーション側で変更されたように更新することも、私にとって二次的な目標です。事前に生成されたバージョンを使用すると、ブラウザに送信するときに作業が楽になる可能性があります。そこではどんなツールも機能しますが、PHP は専用のイベントを起動するだけかもしれません。サニタイズされた CSS のバージョンを作成することも、オンデマンドで生成するのではなく、バックグラウンド プロセスの候補になる可能性があります。おそらく、PHP以外の他のプラットフォームから利用可能なツールを介して. そのため、今日ではより多くのオプションと可能性があります。

私の説明が、同様のことを達成しようとしている人々に光を当てることを願っています.

元の答えは:

HTMLPurifier と CSSTidy は適切なツールです。CSSTidy は、GithubでCedric Morinと他の数人の開発者によって維持されています。また、CSSTidy のデフォルトの CSS レベルは 2012 年 4 月から CSS3.0です

あなたはそれを使うかもしれません。

于 2012-11-14T01:54:55.363 に答える