理想的には、ブラウザーでテーマの HTML を編集できる tumblr のように、ユーザーが HTML を編集できるようにしたいと考えています。完全なコントロールも与えられます。html-purifier などのツールについて聞いたことがあります。
HTML を「浄化」する以外に、他にどのような手順を実行する必要がありますか。
理想的には、ブラウザーでテーマの HTML を編集できる tumblr のように、ユーザーが HTML を編集できるようにしたいと考えています。完全なコントロールも与えられます。html-purifier などのツールについて聞いたことがあります。
HTML を「浄化」する以外に、他にどのような手順を実行する必要がありますか。
数日前、私はあなたに役立つかもしれない同様の質問をしました.
ユーザーが生成したすべての HTML を別のドメイン/サブドメインに保存して、Cookie の盗用を回避し、Cookie を HttpOnly にして、JavaScript でアクセスできないようにします。サブドメインなしでメインドメインのみにCookieを(認証などのために)設定できます。さらに、CSRF トークンを使用して、自動化された悪用を回避できます。
有害なコード/JavaScript を禁止したい場合は、HTML をフィルタリングする必要があります。そうする場合は、禁止されているタグをブラックリストに登録するのではなく、許可されているすべてのタグをホワイトリストに登録する必要があります (新しいタグは HTML5 に付属しており、ブラウザー固有のものもあるため)。 .
もう 1 つの課題は、属性 (JavaScript の実行を可能にする onclick などのイベント属性) のフィルタリングです。
別のユーザーから、ヘッダーであるContent Security Policyに注意を促されました(ただし、残念ながら一部のブラウザーでしかサポートされていません)。
ただし、ユーザーにどの程度の自由を与えたいかによって異なります。