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.
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 Dateistruts.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 Dateiweb.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!