メンバーページシステムを更新しましたが、特定のフィールドに太字、下線、斜体、フォントの色、リンクを許可するのが、ですが、フォントサイズやスタイルはではなく、WYSIWYGエディタで行います。これはもともとtextareaといくつかの最小限のHTMLフィルタリングで行われました。すなわち、preg_replace()
で<script>
を削除します。クレイジーで間違いなく安全ではないことは分かっています。ユーザーがWBCのコードをWYSIWYGで投稿できるようにしますか?
TinyMCEを使用してTinyMCE内の特定のタグを許可しないようにしたのは唯一の問題で、明らかにTinyMCEに依存してXSSに対するHTML入力を確実にすることはできません。 私は過去1時間ほどで特定のプラクティスを読んできましたが、現在のプロファイルを台無しにすることなく特定のHTMLタグ/属性を許可し、フォントサイズなどの他のカスタマイズを許可することは不可能に近いようですインラインスタイルのもの。たとえば、spanタグでフォントの色を許可する必要がありますが、style属性を許可するとCSSの任意の部分も許可されます。
これで、出力にhtmlspecialchars()
を安全に適用してから、[b]のBBCodeパーサーで生成されるHTMLを完全に制御できるようになりましたので、BBCodeをWYSIWYGエディターで使用するというアイデアが出ました。 、[u]、[i]、および[color]タグを改行に使用すると、nl2br()
となります。
唯一の問題は、現在のHTML設定をBBCodeに変換するために何かをコードする必要があることです。
私の主な質問は、BBCodeが前述のXSS攻撃から保護するのに十分なのでしょうか?あるいは、私が使うことができる、より優雅で明白なHTMLセキュリティの方法がありますか?
これは私の興味に関係していますが、これを行う方法の例はどこにありますか? – Dunhamzzz