問題タブ [htmlpurifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xss - XSS 防止、Tidy vs Purifier?
ご挨拶、
CKEditor (javascript WYSIWYG エディター) を使用して、入力フィールドから XSS と不適切な html を防止しようとしています。
サーバー側でこのデータをどのようにフィルタリングする必要がありますか? 私が比較している 2 つのオプションは、PHP Tidy と HTML Purifier です。速度、セキュリティ、および有効なネスティングに興味があります。
編集:
HTML Purifier によると、Tidy は XSS を防止しません。したがって、最初にユーザー入力を渡すことを指定しましょう
strip_tags($input,'<img><a><li><ol><ul><b><br>');
Tidyに渡す前に
php - HTMLPurifier構成のフォームをホワイトリストに登録
HTML Purifierを使用して、CMSの入力をクリーンアップしています。私のクライアントの多くは、サイトにPayPalの寄付ボタンを配置したいと思っていますが、HTMLPurifierはフォームを削除します。
HTML Purifierにクラスがあることに気づきましたがHTMLPurifier_HTMLModule_Forms
、それが私が望むことを実行するかどうかはわかりません。含まれている場合、どうすれば有効にできますか?
php - リクエストの null バイトをフィルタリングする
着信パラメーターをサニタイズするために htmlpurifier ライブラリを使用しています。ただし、null バイトをフィルタリングしていません (%00 など)。何か不足していますか、それともライブラリがサポートしていませんか? 正規表現を使用する必要がありますか? 回答ありがとうございます。
編集:
構成オプションでhtmlpurifierを使用しています
テスト文字列の場合
出力を取得します
php - HTMLPurifier - 無視リストへの追加
htmlpurifier を介していくつかの XML タグ (abcdef>) を渡そうとしています。タグ自体はサポートされていないため、最初に要素を追加してから、それを allowedElements に追加しようとしています。ただし、これは機能していません。空白のページが表示されます。私が間違っていること、または私が探しているものを達成するためのより簡単な方法があるかどうかについてのアイデアをお願いします。
他の詳細が必要な場合はお知らせください。
注:ライブラリは要素を追加しなくても正常に動作しています。
php - HTMLPurifier は、次のコードを実行すると停止します
デフォルトの構成で HTMLPurifier の最新リリースを使用します。
次のコードは、PHP でとても素敵な空白の白いページを表示します。何か不足していますか?HTML.TidyLevel を設定しても、light
またはnone
それでも壊れます。以下のコードを浄化しようとしたときにスローされたエラーの部分的なログを次に示します。
参考までに、これを行うために使用している関連コードを次に示します。
そして最後に、問題のあるコード:
php - HTML purifier によって拒否された一重引用符
これはHTMLPurifier に関連しています - 無視リストに追加します。ホワイトリストにいくつかのタグを追加しました。私は今このコードを持っています -
問題は、単一引用符で囲まれた属性値を持つ html タグを送信すると、htmlpurifier がそれを二重引用符に変更することです。例えば
<columnseq path='test' label='tlabel' />
デモ サイト ( http://htmlpurifier.org/demo.php ) でも、テスト文字列を使用して発生します。
この動作は上書きできますか?
php - すべてのページに HTMLPurifier を含める方法は?
さて、私はすべてのページに以下のコードを含めており、新しい Web ページに配置するたびに次のコードを変更しすぎています。このコードをすべて一度に含めて、すべての Web ページに影響を与え、コードを正常に動作させる方法はありますか?
これは、常に変更する必要があるコードです。
これがコードです。
php - 「+」文字がCKEditor/PHP / MySQL/HTMLPurifierを介して保存されない
UTF-8エンコーディングをCKEditor/PHP / MySQL/HTMLPurifierで動作させようとしています。
データベースのテーブル/フィールドの文字セットをutf8-unicode-ciに変換しました。
ckeditorの設定で次のように設定しました。
そして、PHPはデフォルト設定のHTMLPurifierでHTMLを浄化しています。
UTF-8を受け入れようとして正しいことをしているのかどうかはわかりませんが、αなどの文字は機能しています...しかし、何らかの理由で、テキスト内の「+」は単に消えてしまいます。
何か案は?
php - 正規表現フィルタリングの代わりにhtmlpurifierの利点
最近、Webベースのアプリケーションにhtmlpurifierを実装しました。以前は、一般的に知られているXSSインジェクション(スクリプト、imgなど)に一致する正規表現がありました。これでは不十分であることがわかったため、htmlpurifierに移行しました。htmlpurifierの動作が遅い(以前の正規表現メソッドと比較して非常に遅い)ことを考えると、htmlpurifierを使用する価値は本当にありますか?または、満足のいくレベルに達するまで正規表現フィルタリングを増やし続けることは意味がありますか(その時点で速度の利点が無効になると主張される可能性があります)。Webアプリケーションのセキュリティに関して同様の問題に直面した他の人はいますか?最終的には何をしましたか?
何か曖昧に思われる場合はお知らせください。詳細をお知らせします。
php - PHPで「空白のマークアップ」を削除する方法-つまり、テキストノードのない複数のネストされた要素
クライアントのサイトにCKeditorをインストールして、WYSIYGエディターを使用してテキストを入力できるようにしました。ほとんどの部分がロックされており、太字、斜体、順序なしのリストなどのみが許可されます。
また、ユーザーが送信したHTMLをHTMLピューリファイアで実行して、ユーザーが賢くならないようにし、たとえばテーブルの追加を試みます。たとえば、XSSの懸念事項に対して入力できる内容を制限することもお勧めします。
CKeditor / HTML Purifierコンボによって生成された出力の一部を見て、この残虐行為を見ました...
とにかく、HTML Purifierを構成したり、他の何かを使用してテキストノードのない要素を削除したりできますか?明らかに、最新の子孫から開始してからDOMツリーを実行し、テキストノードを持つ要素を持たない最も親を削除する必要があります。
そのマークアップにプレゼンテーションのみの要素がないことを前提として、このアプローチのエッジケースはありますか?私が考えることができる自己閉鎖要素はありません(たとえば、画像、入力要素など)。