問題タブ [owasp]
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.
java - ESAPI.properties は Java Google AppEngine プロジェクトのどこに移動しますか
私のプロジェクトは開発サーバーで作業しています。次の両方の場合に機能します。
- ソース パスに .esapi ディレクトリがあるため、最終的に WEB-INF/classes になります。
- lib ルートに .esapi ディレクトリがあるため、最終的に WEB-INF/lib になります。
ただし、(上記の 2 つの戦略のいずれかを使用して) Google にデプロイすると機能しません。
ESAPI が見つからないという通常のメッセージが表示されます。Google にデプロイされた ESAPI を初めて使用しようとしたときのプロパティ ファイル。
ESAPI には、AppEngine をサポートするための変更が含まれているようですhttp://goo.gl/rD8dz
更新 問題は、org.owasp.esapi.reference.DefaultSecurityConfiguration の 603 行目で、Google Appengine では違法な ClassLoader.getSystemClassLoader() を呼び出すことです。これにより、上記の例外が発生します (トリミングされて申し訳ありません)。コードがリソースを取得しようとする前に、3 つの ClassLoader が配列に読み込まれます。
LoadConfigurationFromClasspath メソッドから SystemClassLoader (および対応する classLoaderName) を削除した DefaultSecurityConfiguration の独自のコピーをハッキングしました。
皮肉なことに、このアプローチが失敗するのは、クラスローダーをループすることでコードを読みやすく/拡張しやすくしたためです (IMHO)。getSystemClassLoader の呼び出しを遅らせる内部クラスを含むパッチを提出したくなります (これは AppEngine では実行できません)。
esapi jar が密閉されていないためにのみ可能であるため、これが機能するのは興味深いことです。セキュリティ ライブラリ jar を封印する必要があると考えていました。多分私は間違ったものを使用しています!
更新 Maven経由でesapi jarを使用していますが、これは再パッケージ化されており、署名されていません。理想的ではありませんが、Maven から入手した他の 40 個のオープン ソース jar と同じくらい安全です。
java - Owasp ライブラリを使用せずに Java で HTML 属性値をエスケープするにはどうすればよいですか?
HTMLエンティティにApacheを使用していStringEscapeUtils
ますが、HTML属性値をエスケープしたい場合、これを行う標準的な方法はありますか? escapeHtml
この関数を使用しても問題は解決しないと思います。そうしないと、なぜOwasp Encoder インターフェースにこれに対処するための 2 つの異なるメソッドがあるのでしょうか?
HTML属性とエンティティのエスケープに何が関係しているのか、Owaspライブラリを手元に持っていない場合に属性エンコーディングについて何をすべきか知っている人はいますか?
security - MavenJavaEEプロジェクトでのOWASPESAPIsimpleTest
小さなJavaEEプロジェクトがあり、OWASPESAPIで保護する必要があります
私はこのようなESAPIをMavenに統合しました:
したがって、この後、プログラミングにESAPIクラスを使用できます。
.esapi
サーバーの起動にフォルダーも含めました:
とをにコピーしESAPI.properties
ましvalidation.properties
た
(動作するかどうかはわかりませんが、サーバーの起動中にエラーは発生しません)
ESAPIインストールガイド(pdf)(本当に悪い文書化)を見て、例をコピーしました
「ESAPIが正常に統合および構成されているかどうかをテストするには、EsapiIntegrationTest.javaというファイルを作成し、次の場所に貼り付けます。」
「このファイルを実行してprintln出力を確認できれば、ESAPIは正常にインストールおよび構成されています。これで、ESAPI機能を使用してWebアプリケーションを保護できます!」
私は私の例のためにそれを「翻訳」しました:
そして私はファイルを持っていますtest.xhtml
:
私が入るとき、私はこの本当に長いエラーを受け取ります(より良い少数のためにあなたはpastebintest.xhtml
でもそれを見ることができます)
私はESAPISwingsetデモを知っています-そしてこれは私の構成で実行されています
2つの質問
があります:私のMavenとサーバーは構成を開始しますか?
エラーはESAPIがESAPIロガー関数を見つけることができないように見えるためです...。
また
、セットアップで単純なテストコードスニペットを使用することも可能ですか?
(psもmavenなしで、ダウンロードしたjarを含めるだけでそれを試みましたが、機能していません)
私は次のようなものが恋しいです:(
これはswingsetデモの例からのものであり、私自身のプロジェクトからのものではありません)
うまくいけば、誰かが助けることができます!
security - OWASPアプリケーションセキュリティ検証標準-V3およびJSFでの使用
現時点では、すべての実装に取り組んでいますが、トップ10プロジェクト
のセキュリティリスクに対して安全である必要があります。トップ10
の#4の場合-安全でない直接オブジェクト参照OWASPはOWASPアプリケーションセキュリティ検証標準を参照します
だから私はV3ですべてを読んでいましたが、それを実装するためのいくつかの質問があります。
JavaEE6およびJSF2.0でJBoss-AS7.0.1を使用しています
V3.4セッションIDがCookieヘッダー以外で開示されないことを確認します。特にURL、エラーメッセージ、またはログで。これには、アプリケーションがセッションCookieのURL書き換えをサポートしていないことの確認が含まれます。
私はここにstackoverflowに関するいくつかの記事を読みました。ユーザーが初めてサイドにアクセスしたときにジェッションがURLに含まれるのを防ぐ方法...しかし、多くの答えは次のようなものです:URL書き換えを使用する...これはthedoes not support URL rewriting of session cookies
最初のエントリでjsessionsを処理する通常の方法は何ですか?それを処理するための保存方法は何ですか?
V3.10:アプリケーションフレームワークによって生成されたセッションIDのみがアプリケーションによって有効であると認識されることを確認します。
JSF2.0 / JavaEEでこれをどのように行いますか?
V3.12:認証されたセッショントークン/ IDを含むCookieのドメインとパスが、そのサイトに対して適切に制限された値に設定されていることを確認します。
これは何を意味するのでしょうか?FirebugでCookieを調べると、URL http:// localhost:8080 / projectname /
からWebアプリケーションを実行し、Cookieで次
のように取得します。パス:/ projectname
は、OWASPの意味have their domain and path set to an appropriately restrictive value for that site.
ですか?
ありがとうございました!
security - OWASP TOP10 - #10 検証されていないリダイレクトと転送
OWASP PAGEやオープンリダイレクトに関するGoogleブログの記事など、このトピックに関する記事の多くを読みました...オープンリダイレクト
に関するこの質問もスタックオーバーフローで見つけましたが、それは別のものです
リダイレクトしてはいけない理由はわかっています...これは私にとって完全に理にかなっています。
しかし、私が本当に理解していないのは、リダイレクトとこれを通常の<a href
リンクに入れることの正確な違いはどこですか?
一部のユーザーはステータス バーを見ているかもしれませんが、ほとんどのユーザーは、リンクをクリックするときに、実際にはステータス バーを見ていないと思います。
これは本当に唯一の理由ですか?彼らが書いたこの記事のように:
URL が信頼できる銀行 bank.example.com で始まるため、ユーザーはリンクが安全であると想定する可能性があります。ただし、ユーザーは攻撃者の Web サイト (attacker.example.net) にリダイレクトされます。その後、ユーザーは無意識のうちに攻撃者の Web ページに資格情報を入力し、銀行口座を危険にさらす可能性があります。Java サーブレットは、リダイレクト アドレスが信頼できるサイトであることを確認せずに、ユーザーを URL にリダイレクトしてはなりません。
したがって、ユーザーが自分のホームページへのリンクを配置できるゲストブックのようなものがある場合、唯一の違いはリンクがリダイレクトされないことですが、それでも悪意のある Web ページに移動します。
私はこの問題を正しく見ていますか?
security - Web サイトから電子メール アドレスを削除する
私は何人かの人の電子メールアドレスを書いた場所を持ってjsp page
います。emailaddresses.jsp
ユーザーが連絡したい場合、それらのメールアドレスを使用できます。私は持っておらform
ず、何も使用していませんaction
。しかし、セキュリティ スキャンを実行すると、Remove e-mail addresses from the website
. これらのメール アドレスを削除するにはどうすればよいですか? この問題を解決するにはどうすればよいですか?
任意のアイデアをお願いします
maven - OWASP ESAPI-JavaEncryptorが見つからない/クラスパスにない-しかし、ESAPIは他の関数で機能しています
私はすでにesapiに問題がありましたが、最終的には機能しました...
pom.xml
私はこのようにOWASPESAPIを含めました
この関数を実行すると:
ESAPIエンコーダーは完璧に機能します...
しかし、HASH関数を使おうとすると、
私はこの結果を得ました
ご覧のとおり、ESAPIは私の依存関係ですが、JavaEncryptorが見つかりません。
検索結果はあまり役に立ちません...
誰もがこの問題を知っていますか?(またはとにかく助けることができますか?)ありがとう!
php - XSS を軽減するために PHP を使用して OWASP のルール 5 を実装する方法
OWASP ルール 5 これが何を意味し、どのように PHP に実装するかを正確に説明してもらえますか?
完全または相対 URL を URL エンコーディングでエンコードしないでください。信頼できない入力が href、src、またはその他の URL ベースの属性に配置されることを意図している場合は、それが予期しないプロトコル、特に Javascript リンクを指していないことを確認するために検証する必要があります。次に、他のデータと同様に、表示のコンテキストに基づいて URL をエンコードする必要があります。たとえば、HREF リンク内のユーザー主導の URL は、属性をエンコードする必要があります。
SO に関するこの回答は、その一部をカバーしているようです: input is URL, how to protect it from xss with the makeHTMLAttributeSafe($string) function. しかし、それが「予期しないプロトコルまたは JavaScript リンクであるかどうか」を確認するにはどうすればよいですか? 「javascript」、「script」、「onload」などの特定の「悪い」キーワードを検索して置換する必要がありますか? 私のユーザーがこれらの用語を入力する必要がある正当な理由はないので、必要に応じてブラックリストに登録された用語を削除するというかなり厳格なアプローチで問題ありません。私は xss を理解するために多くの時間を費やしてきました。ありがとう!
javascript - どのXSSOWASPルール
OWASPチェックリストを使用して、この状況を保護する正しい方法はどれですか?これは、urlパラメータがxss保護を必要とするjavascript文字列内のurlです。
問題:
考えられる解決策1:
考えられる解決策2:
考えられる解決策3:
java - ESAPI.validator()。isValidFileContent()のネガティブシナリオをテストする
API owasps ESAPI.validator()。isValidFileContent()のネガティブシナリオをテストする必要があります
.exeファイルと.iniファイルのバイトを渡そうとしましたが、テストが終了したとき、つまり、戻り型がtrueであり、有効なファイルコンテンツであることを意味します。
無効なファイルと見なされるものは何ですか?
ESAPI.propertiesに構成が必要ですか?