為保護Struts 2 應用程序,可以使用以下安全性配置:停用未使用的功能啟用內容類型檢查驗證輸入啟用安全性令牌防止CSRF 攻擊使用RBAC 限制基於角色的存取
Struts 2框架的安全性配置和加固
Struts 2是一種流行的Java Web應用程式框架。為了保護您的Struts 2應用程式免受安全威脅,實施適當的安全性配置至關重要。本教學將逐步指導您如何保護您的Struts 2應用程式。
1. 停用無用功能
停用您應用程式中未使用的Struts 2功能可以減少潛在的攻擊面。在 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
註解支援RBAC。例如:
@RolesAllowed("admin") public String doAdminAction() { // 只有管理员才有权访问此操作 }
實戰案例
以下是一個範例Struts 2 Action類,展示了安全性配置的綜合使用:
@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; } } }
透過實作這些安全性配置,您可以顯著增強您的Struts 2應用程式的安全性,並使其免受常見威脅的影響。
以上是Struts 2框架的安全配置與加固的詳細內容。更多資訊請關注PHP中文網其他相關文章!