問題タブ [xss]
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.
javascript - iframe の周りのフレーム (ツールバー) を優雅に閉じる
かなり人気のある音楽小売業者で使用されるツールを作成しました。
このツールは強化された検索機能 (透過的な last.fm の結果、広告なし、不自由さ、気味の悪いものなし) を提供します。検索を表示する最も便利で目立たない方法は、悪意のある iframe を使用したツールバーです。これにより、ユーザーはユーザーのフォーカスを奪うことなく検索を読み込むことができます。
iframe が特に好きというわけではないので、「このフレームを閉じる」(Google 画像検索) リンクを追加して、ユーザーがブラウザーをすばやく簡単に制御できるようにするのは簡単なことだと思いました。
ただし、Googleとは異なり、iframe内のコンテンツの場所がわかりません(src経由で開始した場所のみ)。
だから今、私は XSS の世界とすべてのセキュリティ関連の懸念事項に自分自身を見つけました。
Javascript を使用して、親のリンクから呼び出される履歴オブジェクトに「戻る」ボタンと「進む」ボタンを追加しました (ユーザーが検索を行うと、結果が iframe に読み込まれるため、戻るボタンを使用するとプライマリに戻ることができます検索結果を使用/熟読した後のサイト)。
iframe 内の現在の場所を呼び出して、その場所にページ (現在はフレームなし) をリロードする方法はありますか?
PHP の $GLOBAL/$_SERVER 変数をチェックして、幸運に恵まれるかどうかを確認しました。セキュリティ上の懸念があることは理解していますが、この特定の関数が、親フレームに「通知」せずにブラウザ自体が呼び出しを行う history.back() とどう違うのかわかりません。
iframe 自体から src の場所を取得できることはわかっていますが、もちろん、それはユーザーがこのページを超えて移動しないことを前提としています。ユーザーが移動した場合、現在の場所を失い、最初に呼び出されたページにリダイレクトされることを気にしません。フレーム(...ああ...)。
フレームはウィンドウを盗むように設計されており、ユーザー セッションの整合性を適切に「解除」して維持する手段がないように思われます。
人々が彼らを嫌うのも不思議ではありません。:)
jquery - ファイルシステムで実行される HTML/Javascript アプリ、セキュリティの問題
ホストをセットアップしたくないので、一部のビジネスマンがローカルファイルシステムで実行できる小さなツールをまとめています。
基本的には、HTML + Javascript (jQuery を使用) だけで、サードパーティから REST を使用していくつかのレポートを取得できます。
問題は、FF3 と IE が ajax 呼び出しを許可しないことです。
明らかに XSS の問題です...どうすれば回避できますか? 返されるデータは XML 形式です。
私はこのようにしようとしていました:
編集:明確にするために...私はこれのために内部ホストを設定していません(多くの赤いテープへの道)、データが取得されているため、これを外部でホストすることはできません。
編集 #2 : 少しテストしたところ、IFRAME を使用して要求を行うことができることがわかりました。非表示の IFRAME を使用することの欠点があるかどうかは誰にもわかりませんか?
html - ホスト型 CMS の HTML マークアップをサニタイズする必要がありますか?
ホステッド CMS のような顧客向けサービスの開始を検討しています。
顧客はテキストを入力する必要があり、そのテキストはサイトを訪れた人に提供されます。大きなテキスト ブロックには、おそらく WMD (SO が使用するライブ マークダウン プレビュー) と組み合わせて、Markdown を使用する予定です。
さて、html の入力をサニタイズする必要がありますか? 「CMS」を編集しているのはほんの一握りの人であり、すべて有料の顧客であることを考えると、悪い HTML を削除する必要がありますか、それともそのまま放置する必要がありますか? 結局のところ、それは彼らの「サイト」です
編集:私がそれを行う主な理由は、彼らに独自のjavascriptを使用させ、独自のcssとdivを持たせ、出力に何をしないかです。
jakarta-ee - WebSphere の mod_security のような HTTP 入力フィルター?
WebSphere は mod_security のような HTTP 入力フィルター/ファイアウォールを提供しますか?
Apache を WebSphere の HTTP サーバー フロントエンドにすることが可能であることは知っていますが、そのような構成は私の影響力を超えています。私たちは、WebSphere 自体ができることだけを使用して行き詰まっています。
編集 - 明確にするために、ここではセキュリティの認証、承認、または否認防止の側面を探しているわけではありません。WebSphere で動作する mod_security のようなルールベースの HTTP ファイアウォールが必要です。
また、バージョン 1.x では Java で mod_security の部分的な実装があったことも知っています。私たちは現在、似たようなカスタムの社内ソリューションを持っていますが、任意に設定することはできません。ありがとう!
javascript - このリモート スクリプトによって IE6 がハングするのはなぜですか?
以下の html を見て、リモート スクリプト (「http://code.katzenbach.com/Default.aspx」にあります) を読み込もうとすると IE6 がフリーズする理由を教えてください。スクリプトは JSONP を返し、ヘッダーにリストされている「callbackFunction」を実行します。正常に実行されると、1 ~ 500 の番号を示すポップアップ アラートが表示されます。これは FF3 と IE7 で正常に動作します。Internet Explorer 6 で失敗する理由がわかりません。プロセッサが固定され、すべてがハングします。
自分で実行して、同じ問題が発生した場合はお知らせください。私は一日中この問題を見つめてきました。ご協力いただきありがとうございます。
アンドリュー
regex - この一連の正規表現は、クロス サイト スクリプティングから完全に保護されますか?
以下のコードで捕捉できない危険なものの例は何ですか?
編集:いくつかのコメントの後に、別の行を追加し、以下にコメントしました。David Grant の回答で Vinko のコメントを参照してください。これまでのところ、Vinko だけが質問に答えており、この機能をすり抜ける具体的な例を求めています。Vinko が提供してくれましたが、コードを編集してその穴をふさぎました。別の具体例を考えられる方がいらっしゃれば、私の投票をお待ちしております。
php - PHP での厳密な HTML 検証とフィルタリング
ユーザーが送信した HTML の厳密な (ホワイトリスト) 検証/フィルタリングを実行するためのベスト プラクティスを探しています。
主な目的は、Web フォーム経由で入力される可能性のある XSS や同様の厄介なものを除外することです。2 つ目の目的は、HTML ビューを持つ WYSIWYG エディターなど、技術者以外のユーザーが入力した HTML コンテンツの破損を制限することです。
HTML Purifierを使用するか、HTML DOM パーサーを使用して HTML(dirty)->DOM(dirty)->filter->DOM(clean)->HTML(clean) のようなプロセスを実行することで独自のものを作成することを検討しています。
これらの戦略、または効果的でもあるより簡単な戦略での成功について説明できますか? 注意すべき落とし穴はありますか?
security - セキュリティを処理し、ユーザーが入力したURLでXSSを回避するための最良の方法
セキュリティの高いアプリケーションがあり、他のユーザーに表示されるURLをユーザーが入力できるようにしたいと考えています。
これにより、XSSハッキングのリスクが高くなります。ユーザーがJavaScriptを入力して、別のユーザーが実行する可能性があります。私たちは機密データを保持しているので、これが決して起こらないことが不可欠です。
これに対処するためのベストプラクティスは何ですか?セキュリティホワイトリストまたはエスケープパターンだけで十分ですか?
リダイレクトの処理に関するアドバイス(たとえば、リンクをたどる前に警告ページに「このリンクはサイト外に出ます」というメッセージが表示されます)
ユーザーが入力したリンクをまったくサポートしないという議論はありますか?
明確化:
基本的に、ユーザーは次のように入力します。
stackoverflow.com
そして、それを別のユーザーに出力させます。
私が本当に心配しているのは、XSSハックでこれを使用していることです。つまり、彼らは入力します:
alert('ハッキング!');
したがって、他のユーザーはこのリンクを取得します。
私の例は、リスクを説明するためだけのものです。JavaScriptとURLは異なるものであることはよく知っていますが、後者を入力させることで、前者を実行できる可能性があります。
このトリックで壊すことができるサイトの数に驚かれることでしょう-HTMLはさらに悪いです。彼らがリンクを扱うことを知っているなら、彼らはまた、サニタイズ<iframe>
し、<img>
賢いCSS参照を知っていますか?
私は高度なセキュリティ環境で作業しています。1回のXSSハッキングで、非常に高い損失が発生する可能性があります。考えられるすべてのものを除外できる正規表現を作成できる(またはこれまでの優れた提案の1つを使用できる)ことができてうれしいですが、それで十分でしょうか?
html - ここで Web セキュリティの問題を見つけることができますか?
次のような別の Web ページにリダイレクトする Web ページがあります。
次に、Sponsor.php ページに、渡された RedirectPage にリンクする「Continue to your page」というリンク付きの広告が表示されます。これに起因するセキュリティ/スプーフィングの問題はありますか? これを処理する最善の方法は何ですか? (ユーザーはどちらのサイトにもログインしていないことに注意してください)
c# - 単一の Web アプリケーション ページに対するユーザーのログアウト
これは、以前の XSS に関する質問の拡張です。
ユーザーが入力した URL に対して XSS の安全性を保証するのに十分強力な Regex がないと仮定すると、リダイレクトの使用を検討しています。
(ただし、お持ちの場合は、他の質問の下に追加してください)
ユーザー入力の Web アドレスがあるので、次のようになります。
stackoverflow.com
他のユーザーにリンクが表示されるようにするには、次のようにします。
ハッキングのリスクを減らすために、警告ページを使用する予定なので、リンクは次のようになります。
次に、そのページに警告メッセージと元のリンクへの単純なリンクが表示されます。
私たちは多くの Ajax を使用しているので、サイトを離れるページをある種の壁に囲まれた庭にしたいと考えています。理想的には、基本的にそのページでのみユーザーをログアウトさせます。元のページにログインしたままにしたい。
その後、誰かがサニタイゼーション正規表現を通過した場合、だまされたユーザーとして何にもアクセスできなくなります。
誰でもこれを行う方法を知っていますか? すべてをログアウトせずに、1 つのウィンドウ/タブをログアウトすることはできますか? IE と FX をサポートしていますが、Opera/Chrome/Safari でも機能するソリューションが理想的です。