Java Security vs. Esapi
質問
私はアプリのセキュリティにつながる道を進んでいるJava開発者であり、OWASP組織とその仲間のJava API、Esapiを偶然見つけました。
数か月前にこのサイトで尋ねた別の質問で、EsapiはオープンソースApp SEC業界の主要なプレーヤーであると私に指摘されました。
私が今疑問に思っているのは、Esapiが組み込みのJavaセキュリティモデルと重複すると確信しています( javax.security.auth
)認証/承認の分野、およびおそらく他の分野。 しかし、ESAPIがJavaセキュリティAPIに固執している場合、達成できないことを明確に扱うAPP SECの領域はありますか?
基本的に、私は、その利点/機能がすべて既存のJava APIですでにカバーされているかどうかをESAPIを学ぶのが理にかなっているかどうかを尋ねています。前もって感謝します!
解決
AFAIK、ESAPIはJava APIも使用し、現実世界の脅威に固有のラッパーを追加します。たとえば、WAF(Webアプリケーションファイアウォール)、Java APIを使用してこれを達成するために、ESAPIによって行われ、APIとしてうまく包まれたコードを多く書くことが終了します。メソッド呼び出しのカップルで実装するだけです。
簡単に言えば、ESAPIはラッパーライブラリ(組み込みのJava API)のようなものであり、ホイールの再発明を再び減らし、現実世界のセキュリティの脅威に対抗するのに役立ちます。
あなたがこれを見るなら ESAPI API URL、ESAPIがどのようにAPIを開発して各可能な脅威に対抗するかを簡単に識別できます。
他のヒント
ESAPIの重要な利点/強さの1つは、入力検証と出力の消毒機能であり、AFAIK、Javaセキュリティクラスが現在対処していないことです。 ESAPIは特にWebアプリケーションセキュリティドメインをターゲットにしています。これが優れています。
私は、.NET開発者であるJavaとEsapiに精通しているだけです。しかし、安全なコードを書くことに重点を置いた猛烈な妄想開発者として(本当にひどいものを書いたので)それは私が見たものです。
私の意見では、これを学ぶことは絶対に価値があります。これらのパッケージなしで良いコードを書くことは絶対に可能ですが、これらのパッケージを使用すると、良いコードを簡単に書くことができます。
.NET側には、私が使用する似たようなものがあります - マイクロソフトのパターンとプラクティスライブラリ。私が理解していることから、Java Esapiは同様の目的を果たしています。
一連のセットを提供します 使いやすい その方法 すでにボンネットの下でベストプラクティスを使用しています, 、あなたがそれについてそれほど心配する必要がないように。
たとえば(これは安全なアプリケーションを作成するのに必要なもののほんの一部です)、ADO.NETとJAVAを使用して、ユーザー入力を文字列にコンテンシングすることでSQLステートメントを簡単に記述できます(悪い)。パラメーター化されたクエリ(良い)。 APIを使用して、フードの下で良いパターンを使用する方法が公開されます。新しい開発者をスピードアップし、より少ないコードを作成できるようにしながら「ずさん」を取得しないようにするのが簡単です。