私はStrutsを使い慣れており、JSF 2.0を学び始めています。攻撃ベクトルを減らすためにStrutsで働いていたものを使い続けることができますか?あるいは、私がコード化する必要がある新しい攻撃ベクトルがありますか?JSFのセキュリティ上の懸念はありますか?
2
A
答えて
6
デフォルトでは、JSF/Faceletsは、すでに出力をエスケープして、UIOutput
とUIInput
のコンポーネントに出力しています。したがって、ユーザーが制御する入力を<h:outputText>
と<h:inputWhatever>
で再表示する限り、XSSの部分は安全です。
JSFには、javax.faces.ViewState
隠し入力フィールドによるCSRFに対する組み込み防止機能も組み込まれています。 JSF 2.1より前のバージョンでは、これは「あまりにも簡単」なので、JSF impl issue 812とJSF spec issue 869も参照してください。これは最近(2010年10月3日)JSF 2.1で修正されました。
SQL injection攻撃に対する予防は、Web MVCフレームワークの責任ではないことに注意してください。その部分をデータレイヤーで解決する必要があります。 JPAを正しい方法で使用すると(SQL文字列のユーザー制御の入力を連結せず、パラメータ化されたクエリを使用する)、その部分も安全です。
関連する問題
- 1. セキュリティ上の懸念
- 2. PendingIntent.getBroadcast()セキュリティ上の懸念?
- 3. KSMに関するセキュリティ上の懸念
- 4. AJAXには特別なセキュリティ上の懸念がありますか?
- 5. S3へのダイレクトブラウザアップロードのセキュリティ上の懸念
- 6. Jquery Ajaxのセキュリティ上の懸念
- 7. クライアント側のセキュリティ上の懸念(JavaScript)
- 8. C# - InternalsVisibleTo属性のセキュリティ上の懸念
- 9. window.postMessage()+ iframe + developerツールのセキュリティ上の懸念
- 10. IIS6ワイルドカードマッピングのセキュリティ上の懸念?
- 11. paypal_adaptive gemのセキュリティ上の懸念
- 12. セキュリティに関する懸念事項はありますか?
- 13. ファイルのアップロードのセキュリティ懸念
- 14. Tor ControlPortアクセス - セキュリティの懸念?
- 15. preg_replace&preg_replace_callbackセキュリティの懸念
- 16. Azure Windows VM上のSQL Serverに関するセキュリティ上の懸念
- 17. ネイティブのセキュリティ上の懸念に対応します
- 18. JavaScriptのソースマップを公開する上で正当なセキュリティ上の懸念がありますか?
- 19. ** kwargsを使用してクラスを初期化するのにセキュリティ上の懸念はありますか?
- 20. 単一ページWeb Appsは、CORSとセキュリティ上の懸念
- 21. travis-ciでのスクリプト実行に関するセキュリティ上の懸念
- 22. リモートデータベースへの接続に関するセキュリティ上の懸念
- 23. jarファイルにアクセスする際のセキュリティ上の懸念
- 24. SigningCertificateを共有する際のセキュリティ上の懸念
- 25. Cordova/Phonegappのセキュリティに関する懸念
- 26. Webサービス経由でsystem.dllを公開するとセキュリティ上の懸念はありますか?
- 27. RESTフルWebサービスに関するセキュリティ上の懸念
- 28. node.jsプロセス内のjsRenderのセキュリティ上の懸念
- 29. セキュリティ上の懸念事項ウェブサイトの構築について
- 30. HTML5オフライン単一ページアプリケーション(SPA) - セキュリティ上の懸念
@BalusC + 1あなたのご意見をお聞かせください。私たちはUIOutputとUIInputを取り上げました。 – bakoyaro
@BalusCフィルターについてはどうですか? 'javax.faces.webapp.FacesServletはjavax.servlet.Servlet'を実装しているので、私が書いたFaceletを通って来るものに対しては入出力フィルタを書くことができます。 – bakoyaro
JSFは実際にServlet APIの上で動作します。実際にJSF Webアプリケーションでサーブレットフィルタを使用することはできますが、XSS/CSRF/SQLIなどのセキュリティ上の問題については、どのように役立つのかわかりません。彼らができることは、ログインしているユーザーに基づいて認証/権限チェックを行うことです。フィルタの入力/出力をサニタイズすることは、あなたが念頭に置いていたことであったとしても、悪い考えです。出力エスケープ(XSSを防止するため)は、ビュー側でのみ行う必要があります。入力エスケープ(SQLIを防止するため)は、データレイヤーでのみ行う必要があります。 – BalusC