Mencegah serangan kejuruteraan sosial di Jawa
Serangan kejuruteraan sosial ialah kaedah serangan yang menggunakan psikologi dan teknik kejuruteraan sosial untuk menipu orang ramai dan mendapatkan faedah yang tidak sah. Dalam pembangunan Java, Java telah menjadi sasaran penggodam kerana sumber terbuka dan aplikasinya yang luas. Artikel ini akan memperkenalkan beberapa cara untuk melindungi daripada serangan kejuruteraan sosial di Java dan memberikan beberapa contoh kod.
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; public class EncryptionUtils { private static final String KEY = "MySecretKey12345"; public static String encrypt(String data) { try { SecretKeySpec secretKey = new SecretKeySpec(KEY.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encryptedBytes = cipher.doFinal(data.getBytes()); return Base64.getEncoder().encodeToString(encryptedBytes); } catch (Exception e) { e.printStackTrace(); } return null; } public static String decrypt(String encryptedData) { try { SecretKeySpec secretKey = new SecretKeySpec(KEY.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedData)); return new String(decryptedBytes); } catch (Exception e) { e.printStackTrace(); } return null; } }
Gunakan kelas alat ini untuk penyulitan dan penyahsulitan:
public class Main { public static void main(String[] args) { String password = "password123"; String encryptedPassword = EncryptionUtils.encrypt(password); System.out.println("加密后的密码:" + encryptedPassword); String decryptedPassword = EncryptionUtils.decrypt(encryptedPassword); System.out.println("解密后的密码:" + decryptedPassword); } }
public class InputValidation { public static boolean isEmailValid(String email) { String regex = "^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$"; return email.matches(regex); } public static boolean isPasswordValid(String password) { String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"; return password.matches(regex); } public static boolean isPhoneNumberValid(String phoneNumber) { String regex = "^\d{11}$"; return phoneNumber.matches(regex); } } public class Main { public static void main(String[] args) { String email = "example@test.com"; boolean isEmailValid = InputValidation.isEmailValid(email); System.out.println("邮箱是否有效:" + isEmailValid); String password = "Password123"; boolean isPasswordValid = InputValidation.isPasswordValid(password); System.out.println("密码是否有效:" + isPasswordValid); String phoneNumber = "12345678901"; boolean isPhoneNumberValid = InputValidation.isPhoneNumberValid(phoneNumber); System.out.println("手机号是否有效:" + isPhoneNumberValid); } }
@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/**").permitAll() .and() .formLogin(); } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("admin").password("{noop}admin123").roles("ADMIN") .and() .withUser("user").password("{noop}user123").roles("USER"); } } @RestController public class AdminController { @GetMapping("/admin") public String admin() { return "Welcome, admin!"; } } @RestController public class UserController { @GetMapping("/user") public String user() { return "Welcome, user!"; } } @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Kod di atas menunjukkan kawalan kebenaran peranan pada laluan "/admin" Hanya pengguna dengan peranan "ADMIN" boleh mengakses laluan.
Melalui kaedah di atas untuk mencegah serangan kejuruteraan sosial, kami boleh meningkatkan keselamatan aplikasi Java. Sudah tentu, ini hanyalah beberapa langkah pencegahan asas Pembangun masih perlu terus belajar dan meneroka lebih banyak teknologi keselamatan untuk menangani kaedah serangan penggodam yang sentiasa berubah.
Atas ialah kandungan terperinci Lindungi daripada serangan kejuruteraan sosial di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!