Rumah >Java >javaTutorial >Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2

Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2

WBOY
WBOYasal
2024-05-31 22:53:59700semak imbas

Untuk melindungi aplikasi Struts 2 anda, anda boleh menggunakan konfigurasi keselamatan berikut: Lumpuhkan ciri yang tidak digunakan Dayakan semakan jenis kandungan Sahkan input Dayakan token keselamatan Cegah serangan CSRF Gunakan RBAC Hadkan akses berasaskan peranan

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

Keselamatan 2 Rangka Kerja Struts Mengkonfigurasi dan Mengeras

Struts 2 ialah rangka kerja aplikasi web Java yang popular. Untuk melindungi aplikasi Struts 2 anda daripada ancaman keselamatan, adalah penting untuk melaksanakan konfigurasi keselamatan yang sesuai. Tutorial ini akan membimbing anda langkah demi langkah tentang cara untuk mengamankan aplikasi Struts 2 anda.

1. Lumpuhkan Ciri Tidak Digunakan

Lumpuhkan ciri Struts 2 yang tidak digunakan dalam aplikasi anda boleh mengurangkan permukaan serangan yang berpotensi. Dalam fail konfigurasi struts.xml, anda boleh mencapai ini dengan mengehadkan penapis servlet defaultAction untuk menghuraikan tindakan lalai. Contohnya: 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 Dayakan semakan jenis kandungan

Struts 2 menyediakan fungsi semakan jenis kandungan yang menghalang pengguna daripada menyerahkan kandungan yang tidak sepadan dengan jenis data yang diharapkan oleh aplikasi. Ia boleh didayakan dengan menetapkan beberapa sifat dalam fail 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 Sahkan input

🎜🎜Sahkan input yang diterima daripada pengguna adalah penting untuk mengelakkan serangan suntikan. Struts 2 menyediakan pengesah terbina dalam yang boleh anda gunakan dalam kelas Tindakan. Contohnya: 🎜rrreee🎜🎜4. Dayakan Token Keselamatan 🎜🎜🎜Token keselamatan digunakan untuk menghalang serangan Pemalsuan Permintaan Merentas Tapak (CSRF), di mana penyerang memperdaya mangsa untuk menyerahkan permintaan yang bukan milik mereka. Struts 2 membolehkan anda membuat dan mengesahkan token keselamatan sebelum menyerahkan borang. Anda boleh mendayakannya dengan mengkonfigurasi perkara berikut dalam fail web.xml: 🎜rrreee🎜🎜5 Menyekat akses 🎜🎜🎜Kawalan akses berasaskan peranan (RBAC) memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses aplikasi. beberapa sumber dalam. Struts 2 menyokong RBAC melalui anotasi @RolesAllowed. Contohnya: 🎜rrreee🎜🎜Satu kes praktikal🎜🎜🎜Berikut ialah contoh kelas Tindakan Struts 2 yang menunjukkan penggunaan komprehensif konfigurasi keselamatan: 🎜rrreee🎜Dengan melaksanakan konfigurasi keselamatan ini, anda boleh meningkatkan keselamatan aplikasi Struts 2 anda dengan ketara alam semula jadi dan melindunginya daripada ancaman biasa. 🎜

Atas ialah kandungan terperinci Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn