1

lxml.html.clean を使用してhtmlをサニタイズしています。すべてのタグから「スタイル」属性を削除しているようですが、私の目的では、スタイル属性を削除しないようにする必要があります。

許可を開始する前に、html のサニタイズ時にスタイル属性を削除しないことに関してセキュリティ上の影響があるかどうかを理解したいと思っています。

この問題に関する専門家からの洞察は高く評価されます。

(私のアプリケーションでは、バックエンド データベースに保存され、ページにレンダリングされる html をエンド ユーザーが作成できることに注意してください。上記の「クリーン」は、悪意のある html (javascript など) を html から削除してから保存するのに適しています。その後のレンダリング)。

feedparser ごとの HTML サニタイズ Web サイト- 「style」が「safe_attrs」のリストに存在しない

(また、これが歩行者の質問である場合は申し訳ありません。私はhtml /サニタイズおよび関連するセキュリティ面に不慣れです)

4

1 に答える 1

2

通常の状態では、スタイル自体はセキュリティ リスクではありません。ただし、悪意のあるスタイルが問題になる可能性がある状況がいくつかあります。

  • form一部のブラウザーでは、input要素にstyle="display:none"データが自動入力され、ユーザーが無意識のうちに余分なデータを送信する可能性があります。
  • style="display:block"または別のdisplayスタイルは、または別のスタイルを期待してレイアウトを壊す可能性がありますinline
  • レイアウト エンジンが特定の視覚的スタイルを維持したい場合、属性でスタイル情報を許可するstyleと、インデントよりもスタイルを選択する自由度が作成者/ポスターに与えられます。(2000pt のフォントが必要だと判断した場合はどうなりますか?)
  • スタイル属性は、@importメカニックを介して他のスタイルをロードしbackgroundたり、類似の属性を介して URL をロードしたりすることがあります。サニタイザーが CSS コードもサニタイズすることを約束しない限り、これはインジェクションの潜在的なベクトルになります。

サナタイズが必要な唯一の理由は、ソースが信頼できないか安全でない可能性があるということであるため、ソースに独自のスタイルを設定させることは望ましくないと想定されます。

于 2014-03-31T00:05:38.177 に答える