>  기사  >  Java  >  Struts 2 프레임워크의 보안 구성 및 강화

Struts 2 프레임워크의 보안 구성 및 강화

WBOY
WBOY원래의
2024-05-31 22:53:59634검색

Struts 2 애플리케이션을 보호하려면 다음 보안 구성을 사용할 수 있습니다. 사용하지 않는 기능 비활성화 콘텐츠 유형 확인 활성화 입력 유효성 검사 보안 토큰 활성화 CSRF 공격 방지 RBAC 사용 역할 기반 액세스 제한

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

Struts 2 프레임워크의 보안 구성 및 강화

Struts 2는 널리 사용되는 Java 웹 애플리케이션 프레임워크입니다. 보안 위협으로부터 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.