問題タブ [html-sanitizing]
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.
c# - C#を使用してHTMLページの入力をサニタイズするにはどうすればよいですか?
HTMLページへの入力をサニタイズするためのライブラリまたは許容可能な方法はありますか?
この場合、名前、電話番号、および電子メールアドレスだけのフォームがあります。
コードはC#である必要があります。
例えば:
"<script src='bobs.js'>John Doe</script>"
になる必要があります"John Doe"
security - セキュリティを処理し、ユーザーが入力したURLでXSSを回避するための最良の方法
セキュリティの高いアプリケーションがあり、他のユーザーに表示されるURLをユーザーが入力できるようにしたいと考えています。
これにより、XSSハッキングのリスクが高くなります。ユーザーがJavaScriptを入力して、別のユーザーが実行する可能性があります。私たちは機密データを保持しているので、これが決して起こらないことが不可欠です。
これに対処するためのベストプラクティスは何ですか?セキュリティホワイトリストまたはエスケープパターンだけで十分ですか?
リダイレクトの処理に関するアドバイス(たとえば、リンクをたどる前に警告ページに「このリンクはサイト外に出ます」というメッセージが表示されます)
ユーザーが入力したリンクをまったくサポートしないという議論はありますか?
明確化:
基本的に、ユーザーは次のように入力します。
stackoverflow.com
そして、それを別のユーザーに出力させます。
私が本当に心配しているのは、XSSハックでこれを使用していることです。つまり、彼らは入力します:
alert('ハッキング!');
したがって、他のユーザーはこのリンクを取得します。
私の例は、リスクを説明するためだけのものです。JavaScriptとURLは異なるものであることはよく知っていますが、後者を入力させることで、前者を実行できる可能性があります。
このトリックで壊すことができるサイトの数に驚かれることでしょう-HTMLはさらに悪いです。彼らがリンクを扱うことを知っているなら、彼らはまた、サニタイズ<iframe>
し、<img>
賢いCSS参照を知っていますか?
私は高度なセキュリティ環境で作業しています。1回のXSSハッキングで、非常に高い損失が発生する可能性があります。考えられるすべてのものを除外できる正規表現を作成できる(またはこれまでの優れた提案の1つを使用できる)ことができてうれしいですが、それで十分でしょうか?
javascript - クライアント側で HTML をサニタイズ/書き換える
クロス ドメイン リクエストを介して読み込まれた外部リソースを表示し、「安全な」コンテンツのみを表示するようにする必要があります。
Prototype のString#stripScriptsを使用して、スクリプト ブロックを削除できます。ただし、onclick
orなどのハンドラonerror
はまだ存在します。
少なくともできるライブラリはありますか
- スクリプト ブロックを取り除きます。
- DOM ハンドラーを強制終了します。
- ブラック リストのタグを削除します (例:
embed
またはobject
)。
JavaScript 関連のリンクや例はありますか?
asp.net - .NET 用の HTML サニタイザー
asp.net mvc を使用して公開されるプロジェクトを開始しています。PHP、Python、および Ruby の HTML サニタイザーが約 10 億個存在することは知っていますが、.net の優れた機能へのポインタを持っている人はいますか? そこにあるものについてのあなたの経験は何ですか? stackoverflow は asp.net で作成されたフリーフォーム HTML を許可するサイトですが、何を使用していますか?
python - Pythonを使用してWebブラウザでHTMLを安全にするにはどうすればよいですか?
電子メールからのHTMLをPythonを使用してWebブラウザで安全に表示するにはどうすればよいですか?
表示されているときは、外部参照に従わないでください。言い換えれば、表示されるすべてのコンテンツは電子メールからのものであり、インターネットからのものではないはずです。
スパムメール以外は、作成者が意図したようにできるだけ近くに表示する必要があります。
これを自分でコーディングすることは避けたいと思います。
最新のブラウザ(Firefox)バージョンを必要とするソリューションも受け入れられます。
javascript - JavascriptのシンプルなHTMLサニタイザー
JavaScriptで書かれたシンプルなHTMLサニタイザーを探しています。100%XSSで保護されている必要はありません。
私のウェブサイトにMarkdownとWMDMarkdownエディター(githubのSOマスターブランチ)を実装しています。問題は、ライブプレビューに表示されるHTMLが、ここSOのようにフィルタリングされていないことです。プレビューウィンドウのコンテンツをフィルタリングできるように、JavaScriptで記述されたシンプルでクイックなHTMLサニタイザーを探しています。
完全なXSS保護を備えた完全なパーサーは必要ありません。出力をサーバーに送り返していません。結果をデータベースに保存する前に、適切な完全なHTMLサニタイザーを使用するサーバーにMarkdownを送信しています。
グーグルは私には絶対に役に立たない。あらゆる種類のサーバー側言語でユーザー生成HTMLからJavaScriptを除外する方法について、何百もの(多くの場合正しくない)記事が表示されます。
アップデート
これが必要な理由をもう少し詳しく説明します。私のウェブサイトには、StackOverflowにあるものと非常によく似たエディターがあります。MarkDown構文を入力するためのテキスト領域と、その下に、送信後の外観を示すプレビューウィンドウがあります。
ユーザーが何かを送信すると、MarkDown形式でサーバーに送信されます。サーバーはそれをHTMLに変換し、HTMLサニタイザーを実行してHTMLをクリーンアップします。MarkDownは任意のHTMLを許可するので、クリーンアップする必要があります。たとえば、ユーザーは次のように入力します。
それはHTMLなので、MarkDownコンバーターはそれに触れません。HTMLサニタイザーはそれを取り除き、スクリプト要素がなくなります。
しかし、これはプレビューウィンドウで発生することではありません。プレビューウィンドウはMarkDownをHTMLに変換するだけで、サニタイズはしません。したがって、プレビューウィンドウにはスクリプト要素が含まれます。これは、プレビューウィンドウがサーバー上の実際のレンダリングとは異なることを意味します。
これを修正したいので、手っ取り早いJavaScriptHTMLサニタイザーが必要です。基本的な要素/属性のブラックリストとホワイトリストを使用した単純なもので十分です。XSS保護はサーバー側のHTMLサニタイザーによって行われるため、XSSセーフである必要はありません。
これは、プレビューウィンドウが実際のレンダリングと99.99%の確率で一致することを確認するためのものであり、これで十分です。
手伝ってくれますか?前もって感謝します!
asp.net - DB に保存する前、またはレンダリングする前に HTML をサニタイズしますか? (ASP.NET の AntiXSS ライブラリ)
データベースに保存され、Web ページにレンダリングされる HTML をユーザーが追加できるエディターがあります。Microsoft.Security.Application.AntiXsSS.GetSafeHtmlFragment
これは信頼できない入力であるため、HTML をサニタイズするために使用する予定です。
- データベースに保存する前、または信頼できない入力を Web ページにレンダリングする前に、消毒する必要がありますか?
- DLL だけでなく、AntiXSS ソース コードをプロジェクトに含めることに利点はありますか? (ホワイトリストをカスタマイズできますか?)
- GetSafeHtmlFragment の実際の実装を確認するには、どのクラス ファイルを調べる必要がありますか
ruby-on-rails - Rails Sanitize: 安全 + 埋め込みの許可
ユーザーがビデオ、スライド共有などを埋め込むことができるようにするユーザー生成コンテンツ サイトを構築しています。十分な量の埋め込み可能なコンテンツ/html フォーマットを許可しながら、かなり優れたセキュリティ?
python - AppEngine Python Env の HTML タグを削除 (Ruby の Sanitize に相当)
HTMLタグを取り除き、テキスト値を保持するのに役立つpythonモジュールを探しています。私は前に BeautifulSoup を試しましたが、この単純なタスクを実行する方法がわかりませんでした。これを実行できる Python モジュールを検索してみましたが、それらはすべて、AppEngine ではうまく機能しない他のライブラリに依存しているようです。
以下は、Ruby のサニタイズ ライブラリのサンプル コードであり、それが私が Python で求めているものです。
ご提案いただきありがとうございます。
-e
ruby-on-rails - simple_format 使用時にビューに表示するための入力のサニタイズ
改行やリンクが表示されるようにコメントを表示する正しい方法を見つけようとしています。通常、h() で html をエスケープする場合にのみユーザー入力を表示する必要があることはわかっています。もちろん改行やリンクは表示されないので、simple_format と auto_link メソッドを見つけました。
私が今やっていることは: simple_format(santize(auto_link(comment.text)))
これはこれを行う正しい方法ですか? XSS 攻撃からまだ安全ですか?
ありがとう!エリック