Avatar
1
Elias Nguyen Beginner
Elias Nguyen Beginner
Chống SQL Injection
Em đang làm một cái form đăng nhập bằng Spring. Hôm nọ thầy bảo là phải xử lý cái vụ SQL Injection bằng param hay set param gì đó em không nghe được. Không biết anh có liên tưởng đến khái niệm nào có thể trả lời giúp em được không ạ
  • Answer
Remain: 5
2 Answers
Avatar
tvd12 Beginner
tvd12 Beginner
Cái mà thầy em nói đó chính là PreparedStatement interface. Khi các tham số đi qua interface này sẽ được các thư viện cài đặt (ví dụ hibernate). Họ sẽ xử lý các tham số giúp em để loại bỏ hoặc thay thế các ký tự đặc biệt để giảm thiểu rủi ro với dữ liệu đầu vào.

Tuy nhiên không có gì là an toàn tuyệt đối cả, tốt hơn hết là khi dữ liệu được gửi lên server thì em hãy validate trước cho thật cẩn thận trước khi đưa vào query nhé.

  • 0
  • Reply
Avatar
Elias Nguyen Beginner
a ơi trước khi gửi lên server, mình validate kiểu như nào vậy ạ. có phải là chuỗi đấy chỉ là chuỗi String k chứa các ký tự đặ biệt hay sao ạ

 

  • 0
  • Reply
Nó sẽ tuỳ vào nghiệp vụ em ạ, ví dụ như username thì sẽ chỉ có ký tự từ a đến z hoặc sô hoặc _ - kiểu vậy em sẽ validate được. Còn đối với password thì em có thể validate length thôi chẳng hạn, khi xác thực user em sẽ lấy ra user theo username trước rồi so sánh password sau như vậy sẽ đảm bảo an toàn tuyệt đối em ạ.  –  tvd12 1651308189000