Struts 2 アプリケーションを保護するには、次のセキュリティ構成を使用できます: 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用する ロールベースのアクセスを制限する
Struts 2 フレームワークのセキュリティ構成と強化
Struts 2 は、人気のある Java Web アプリケーション フレームワークです。 Struts 2 アプリケーションをセキュリティの脅威から保護するには、適切なセキュリティ構成を実装することが重要です。このチュートリアルでは、Struts 2 アプリケーションを保護する方法を段階的に説明します。
1. 未使用の機能を無効にする
アプリケーションで未使用の Struts 2 機能を無効にすると、潜在的な攻撃対象領域を減らすことができます。 struts.xml
構成ファイルで、defaultAction
サーブレット フィルターをデフォルト アクションの解析に制限することでこれを実現できます。例: struts.xml
配置文件中,您可以通过将 defaultAction
servlet筛选器限制为解析默认动作来实现此目的。例如:
<struts> <constant name="struts.action.excludePattern" value="^/.*/$" /> </struts>
2. 启用内容类型检查
Struts 2提供内容类型检查功能,可防止用户提交不匹配应用程序预期的数据类型的内容。它可以通过在 struts.properties
文件中设置几个属性来启用:
struts.multipart.parser=jakarta-multipart struts.multipart.multiPartParser.maximumRequestSize=2MB struts.multipart.multiPartParser.maximumFileSize=1MB
3. 验证输入
验证从用户接收的输入对于防止注入攻击至关重要。Struts 2提供了内置的验证器,您可以在Action类中使用它们。例如:
@Validate public class MyAction extends ActionSupport { private String name; @Required public String getName() { return name; } }
4. 启用安全令牌
安全令牌用于防止跨站点请求伪造(CSRF)攻击,其中攻击者诱使受害者提交不属于他们的请求。Struts 2允许您在提交表单之前创建并验证安全令牌。您可以通过在 web.xml
文件中配置以下内容启用它:
<filter> <filter-name>struts2-token</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2-token</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
5. 限制访问
基于角色的访问控制(RBAC)可确保只有授权用户才能访问应用程序中的某些资源。Struts 2通过 @RolesAllowed
@RolesAllowed("admin") public String doAdminAction() { // 只有管理员才有权访问此操作 }
2. コンテンツ タイプ チェックを有効にする
Struts 2 は、アプリケーションが予期するデータ タイプと一致しないコンテンツをユーザーが送信できないようにするコンテンツ タイプ チェック機能を提供します。これは、struts.properties
ファイルでいくつかのプロパティを設定することで有効にできます。 @Namespace("/") @Action("/secureAction") @RolesAllowed("secure") public class SecureAction extends ActionSupport { @Required private String input; @Override public String execute() { if (!TokenHelper.validToken()) { return INPUT; } if (someValidationRule()) { return SUCCESS; } else { addFieldError("input", "Invalid input"); return INPUT; } } }
3. 入力を検証する
🎜🎜 インジェクション攻撃を防ぐには、ユーザーから受け取った入力を検証することが重要です。 Struts 2 は、Action クラスで使用できる組み込みバリデータを提供します。例: 🎜rrreee🎜🎜 4. セキュリティ トークンを有効にする 🎜🎜🎜セキュリティ トークンは、攻撃者が被害者を騙して、自分のものではないリクエストを送信させるクロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐために使用されます。 Struts 2 では、フォームを送信する前にセキュリティ トークンを作成および検証できます。web.xml
ファイルで以下を構成することで有効にできます: 🎜rrreee🎜🎜5. アクセスの制限🎜🎜🎜ロールベースのアクセス制御 (RBAC) により、承認されたユーザーのみがアプリケーションにアクセスできるようになります。のいくつかのリソース。 Struts 2 は、@RolesAllowed
アノテーションを通じて RBAC をサポートします。例: 🎜rrreee🎜🎜実際的なケース🎜🎜🎜これは、セキュリティ構成の包括的な使用法を示すサンプル Struts 2 Action クラスです:🎜rrreee🎜 これらのセキュリティ構成を実装することで、Struts 2 アプリケーションのセキュリティを大幅に強化できます。自然を守り、一般的な脅威から自然を守ります。 🎜以上がStruts 2 フレームワークのセキュリティ構成と強化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。