Heim  >  Artikel  >  Java  >  Sicherheitskonfiguration und Härtung des Struts 2-Frameworks

Sicherheitskonfiguration und Härtung des Struts 2-Frameworks

WBOY
WBOYOriginal
2024-05-31 22:53:59635Durchsuche

Um Ihre Struts 2-Anwendung zu schützen, können Sie die folgenden Sicherheitskonfigurationen verwenden: Nicht verwendete Funktionen deaktivieren. Inhaltstypprüfung aktivieren. Eingaben validieren. Sicherheitstokens aktivieren. CSRF-Angriffe verhindern. RBAC verwenden. Rollenbasierten Zugriff einschränken.

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

Sicherheit des Struts 2 Framework Konfigurieren und Härten

Struts 2 ist ein beliebtes Java-Webanwendungs-Framework. Um Ihre Struts 2-Anwendungen vor Sicherheitsbedrohungen zu schützen, ist es wichtig, geeignete Sicherheitskonfigurationen zu implementieren. Dieses Tutorial führt Sie Schritt für Schritt durch die Sicherung Ihrer Struts 2-Anwendung.

1. Deaktivieren Sie nicht verwendete Funktionen

Das Deaktivieren nicht verwendeter Struts 2-Funktionen in Ihrer Anwendung kann die potenzielle Angriffsfläche verringern. In der Konfigurationsdatei struts.xml können Sie dies erreichen, indem Sie den Servlet-Filter defaultAction auf das Parsen der Standardaktion beschränken. Beispiel: 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. Aktivieren Sie die Überprüfung des Inhaltstyps.

Struts 2 bietet eine Funktion zur Überprüfung des Inhaltstyps, die verhindert, dass Benutzer Inhalte übermitteln, die nicht dem von der Anwendung erwarteten Datentyp entsprechen. Es kann durch Festlegen einiger Eigenschaften in der Datei struts.properties aktiviert werden:

@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. Eingaben validieren

🎜🎜Die Validierung der vom Benutzer empfangenen Eingaben ist entscheidend, um Injektionsangriffe zu verhindern. Struts 2 bietet integrierte Validatoren, die Sie in Aktionsklassen verwenden können. Zum Beispiel: 🎜rrreee🎜🎜4. Sicherheitstoken aktivieren 🎜🎜🎜Sicherheitstoken werden verwendet, um Cross-Site Request Forgery (CSRF)-Angriffe zu verhindern, bei denen ein Angreifer ein Opfer dazu verleitet, eine Anfrage zu stellen, die ihm nicht gehört. Mit Struts 2 können Sie Sicherheitstokens erstellen und überprüfen, bevor Sie ein Formular absenden. Sie können es aktivieren, indem Sie Folgendes in der Datei web.xml konfigurieren: 🎜rrreee🎜🎜5. Zugriffsbeschränkung 🎜🎜🎜Rollenbasierte Zugriffskontrolle (RBAC) stellt sicher, dass nur autorisierte Benutzer auf die Anwendung zugreifen können einige Ressourcen in . Struts 2 unterstützt RBAC durch die Annotation @RolesAllowed. Zum Beispiel: 🎜rrreee🎜🎜Ein praktischer Fall🎜🎜🎜Hier ist eine Beispiel-Struts-2-Aktionsklasse, die den umfassenden Einsatz von Sicherheitskonfigurationen demonstriert: 🎜rrreee🎜Durch die Implementierung dieser Sicherheitskonfigurationen können Sie die Sicherheit Ihrer Struts 2-Anwendung erheblich verbessern Natur und schützen Sie sie vor alltäglichen Bedrohungen. 🎜

Das obige ist der detaillierte Inhalt vonSicherheitskonfiguration und Härtung des Struts 2-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn