ホームページ  >  記事  >  Java  >  Struts 2 フレームワークのセキュリティ構成と強化

Struts 2 フレームワークのセキュリティ構成と強化

WBOY
WBOYオリジナル
2024-05-31 22:53:59635ブラウズ

Struts 2 アプリケーションを保護するには、次のセキュリティ構成を使用できます: 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用する ロールベースのアクセスを制限する

Struts 2框架的安全配置和加固

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。