問題タブ [whitelist]
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 - ホワイトリストとブラックリストを組み合わせて、古いブラウザやプラグインから Web サイトを保護していますか?
ブラウザのヘッダーを使用する以外に、ブラウザとプラグインを自分のサイトからブラックリスト/ホワイトリストに登録して、(1) パッチが適用されていない古いシステムが自分のサイトの一般ユーザーになるのを防ぎたい (2) それらの「ターゲット」を潜在的なユーザーから削除する-攻撃者が到達します。
私の目標は、自分のサイトにアクセスするユーザーに対して何らかのエンドポイント セキュリティ標準を定義することですが、彼らは顧客であるため、環境を直接管理する必要はありません。
ホワイトリストまたはブラックリストを使用して、自分のサイトへのブラウザ アクセスを制御する標準的な方法はありますか?
たとえば、古い Flash を使用しているブラウザーを禁止したいが、Flash がまったくない場合は許可したい。
java - Java でユーザー コードのクラス ホワイトリストを作成するにはどうすればよいですか?
ダウンロードした Java コードを実行するアプリケーションを作成しています。コードがアクセスできる組み込み Java クラスを正確に指定できるようにしたいと考えています。これには ClassLoader と SecurityManager の使用が含まれると思いますが、Google で見つけたものは役に立ちませんでした。
javascript - utf-8 文字列の文字をブラックリストに登録するにはどうすればよいですか?
ユーザーが自分の名前を書き込める HTML テキスト入力があります。この名前はわかりやすい表示名であり、データベース内のユーザーの識別やバックエンドでの使用には使用されません。
utf-8 文字を許可して、中国語やスウェーデン語など、母国語の文字を入力できるようにしたいと考えています。
ただし、<、>、[、]、?、* などの特定の文字をブラックリストに登録して、入力を悪用して SQL インジェクションなどを実行しようとする潜在的なスクリプト キディを阻止したいと考えています。
これは簡単なコードで、ウェブ上に多くの例があると思いましたが、もし答えがあるとしても、ホワイトリストを使用して電子メール アドレスを検証する方法の例の中に埋もれています (英語の英数字のみで、アジア文字は含まれません)。または他の言語固有の文字)、または奇妙なことに、特定の文字のキー押下を完全に停止する方法。
私の場合、ユーザーを混乱させる可能性があると思うので、キーの押下を完全に停止したくありません。代わりに、ブラックリストに登録されている文字を入力した場合、文字 X を使用できないというエラーを出力します。
では、私のような正規表現がまったく苦手な人にとって、Javascript で文字をブラックリストに登録する簡単な方法はありますか?
また、使用している言語に関係なく、ユーザーがファンキーな文字を入力する機能を妨げない場合は、ホワイトリスト ソリューションを使用します。
php - PHPでutf-8文字をホワイトリストに登録する最も効率的な方法は何ですか?
私の目標は、クライアント側から受信したすべてのPOSTデータに対して許可される文字の厳密なホワイトリストを作成することにより、Webサイトを攻撃から保護することです。
これは、ASCII文字の範囲内にとどまるときの簡単なことです。何かのようなもの:
ただし、すべてのutf-8文字、特に日本語、中国語、韓国語などのアジア文字セットを許可できる必要があります。しかし、アラビア語やロシア語などの風変わりな文字を持っている人を除外したくありません。一つの世界、一つの愛!;)
*、?、山かっこなどの邪悪なスクリプトで使用される厄介なものを除外しながら、人々が母国語の文字を入力できるようにするにはどうすればよいですか?
ruby-on-rails - デバイスによるホワイトリストへの登録
Railsアプリでユーザー認証を管理するためにdeviseを使用しています。Deviseはそのために本当に素晴らしいです。
ただし、アプリケーションには特別な要件があります。ユーザーをユーザーとして登録するには、ユーザーをホワイトリストに登録する必要があります。
したがって、許可された電子メールのリストを作成する管理者がいます。ユーザーは電子メールに登録し、電子メールがホワイトリストテーブルにある場合は登録されます。ただし、メールがホワイトリストに含まれていない場合は、「まだ招待されていません」などのメッセージを表示して登録を中止する必要があります。
あなたはそれがデバイスでどのように解決できるかについての考えを持っていますか?
前もって感謝します。
javascript - タグのホワイトリスト登録に jQuery を使用するのは賢明ですか? JavaScript に既存のソリューションはありますか?
私の問題
リッチ テキスト エディター (現時点では FCK 1.6) に貼り付けられた HTML をクリーンアップしたい。クリーニングは、タグのホワイトリスト (およびおそらく属性を持つ別のリスト) に基づいている必要があります。これは主に XSS を防ぐためではなく、見苦しい HTML を削除するためです。
現在、サーバー上でそれを行う方法は見当たらないので、JavaScript で行う必要があると思います。
現在のアイデア
jquery-clean プラグインを見つけましたが、私が見る限り、正規表現を使用して作業を行っており、安全ではないことがわかっています。
他の JS ベースのソリューションを見つけられなかったので、jQuery を使用して自分で実装し始めました。貼り付けた html ( ) の jQuery バージョンを作成し$(pastedHtml)
、結果のツリーをトラバースして、ホワイトリストに一致しない各要素を削除することで機能しますtagName
。
私の質問
- これはもっと良いですか?
- 貼り付けられたコンテンツを適切に表現するために jQuery を信頼できますか (一致しない終了タグと what-have-you がある可能性があります)。
- 私が見つけられなかったより良い解決策はすでにありますか?
アップデート
これは私の現在のjQueryベースのソリューションです(詳細であり、広範囲にテストされていません):
私はいくつかの点について疑問に思っています (コード内のコメントを参照してください)。
- jQuery の ":not" と一致させるために、ダミーの親で要素をラップする必要がありますか?
- これは、新しいノードを作成するための推奨される方法ですか?
javascript - Javascript 制限テキスト入力文字数
テキストボックスの入力文字を に制限したい[a-z0-9_-]
。ただし、バックスペースや矢印キーなどのこのボタンを使用すると、いつでも機能しません。この Web サイトや他の Web サイトでいくつかの試みを見つけましたが、すべてのブラウザーで適切に機能しないか、ブラック リストを使用しています。たとえば、W3Schools の Web サイトの例では、ブラック リストの番号が示されています。ホワイトリスト (上記のもの) を使用して、バックスペース、矢印、ホーム、終了などのキーを許可する方法はありますか? または、許可したいキーに一致するすべてのキー コードを追加する必要がありますか? 私はこのようなことをします(これは簡単にするために短縮されています)。
編集- コードを追加
html - リンクシェナニガン?
HTML ホワイトリストと HTMLPurifier を使用している場合、許可されている場合に悪意のあるユーザーが実行できる悪ふざけ<a></a>
はありますか?
雰囲気の場合:
google-app-engine - AppengineサーバーのIPアドレスブロック?
ホワイトリストに登録されたIPアドレスからサービスへのすべての呼び出しを行う必要があるサードパーティのWebサービスを使用しています。つまり、サービスに電話をかけるIPアドレスを提供する必要があります。
問題は、GoogleAppengineを使用していることです。Appengineから発信httpリクエストを行うときに静的IPアドレスを取得する方法はありますか?それが失敗した場合-すべての要求が送信されるIPアドレスのブロックはありますか?ブロック全体をホワイトリストに登録することができました。これが存在する場合、変更される可能性はどのくらいありますか?
プロキシとして使用する単純なAmazonEC2インスタンスをセットアップできることは知っていますが(これを具体的に行う方法について別の質問をします)、他に方法がないことを確認したかっただけです。
security - Webサイトのログインセキュリティシステムの再確認:システム内の電子メールアドレスを介したIPベースのホワイトリスト
最近、ウェブサイトの管理ログインシステムを保護する必要があり、セキュリティはセカンドオピニオンの恩恵を受ける傾向があるため、使用している方法についてセカンドオピニオンを取得したいと思いました。
実装の詳細:Linux、Debian、Mysql、Php
IPホワイトリストシステム
パーツ:データベース内:ユーザー名、パスワード、電子メール、IPアドレス、ユーザーが提供するIPホワイトリスト:ユーザー名、クライアントが提供するパスワード:現在のIPアドレス
正しいユーザー名とパスワードを要求することに加えて、ログインを許可するには、接続元のシステムのIPをホワイトリストに登録する必要があります。したがって、システムのロジックは次のようにカスケードされます。
- IPがホワイトリストに登録されていない場合:ログインできない場合は、そのIPを確認する必要があります。
- 現在のIPを確認する:ページに移動し、ユーザー名を入力すると、「ユーザー名[someUsername]が存在する場合はそのユーザー名を確認し、そのアカウントの自動メールを直接受信します」というメッセージが表示されます。確認メールは、そのアカウントが存在し、アクティブである場合、そのアカウントに登録されているメールに送信されます。それ以外の場合は、メッセージを表示するだけで何もしません。
検証メール:検証データベースのキーと一致する秘密キーとのリンク、サイトへのリンク、ページリンクがデータベース内のそのレコードのIPを検証するだけです。
ipホワイトリストに登録されている場合:ホワイトリストに登録されると、正しいユーザー名とパスワードの組み合わせが通常どおりログインに受け入れられ、誤った組み合わせは拒否されます。
それがシステムです。銀行がデバイスを検証するために使用する方法と少し似ているように見えますが、同一ではないため、おそらくリファクタリングが必要です。何かアドバイス?