Rumah  >  Artikel  >  Java  >  Lindungi daripada serangan kejuruteraan sosial di Jawa

Lindungi daripada serangan kejuruteraan sosial di Jawa

WBOY
WBOYasal
2023-08-09 13:51:23533semak imbas

Lindungi daripada serangan kejuruteraan sosial di Jawa

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.

  1. Pemprosesan penyulitan untuk menyimpan maklumat sensitif
    Dalam pembangunan Java, ia selalunya melibatkan penyimpanan maklumat sensitif, seperti kata laluan pengguna, nombor ID, dsb. Untuk mengelakkan maklumat ini daripada diperoleh oleh penggodam, kami perlu menyulitkan maklumat ini. Di bawah ialah contoh kod yang menggunakan algoritma AES untuk menyulitkan maklumat sensitif:
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);
    }
}
  1. Semak input pengguna
    Memandangkan serangan kejuruteraan sosial sering melibatkan kegagalan pengesahan input atau pintasan, Jadi betulkan pengesahan input pengguna dalam aplikasi Java adalah penting. Berikut ialah contoh mudah yang menunjukkan cara mengendalikan input pengguna dan menggunakan peraturan pengesahan yang betul:
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);
    }
}
  1. Kawalan Kebenaran untuk Operasi Sensitif
    Dalam pembangunan Java, untuk melindungi daripada serangan kejuruteraan sosial, kami memerlukan kebenaran untuk kawalan operasi sensitif. Berikut ialah contoh mudah yang menunjukkan cara menggunakan Spring Security untuk kawalan kebenaran:
@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!

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