Rumah >Java >javaTutorial >Konfigurasi keselamatan dan pengerasan rangka kerja Struts 2
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
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 failstruts.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 failweb.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!