Yêu cầu thg 10 24, 2022 8:57 SA 369 0 1
  • 369 0 1
+1

Mã hóa dữ liệu trong form trước khi truyền data đến server

Chia sẻ
  • 369 0 1

Em muốn mã hóa mật khẩu để khi hiện phần payload trong network là mật khẩu đã được mã hóa thì nên làm như thế nào vậy ạ image.png

1 CÂU TRẢ LỜI


Đã trả lời thg 10 25, 2022 4:40 CH
Đã được chấp nhận
+10

Nếu chỉ làm tại frontend thì bạn có thể dùng btoa(), atob() để convert data của bạn thành base64. Hoặc bạn có thể lấy hash + salt từ backend rồi thực hiện hash tại frontend

Nhưng nhìn chung cách làm này mình thấy khá thừa thãi. vì việc hash từ frontend hoàn toàn không đảm bảo là password của bạn được bảo mật, kể cả bạn lấy hash từ backend. Đã có ti tỉ cuộc thảo luận về việc này.

Đảm bảo rằng website của bạn chạy dưới HTTPS là rất tốt rồi, password trước khi gửi ra Internet sẽ được mã hoá trước khi lên tới server.

Có 1 sự lầm tưởng của mọi người đó là: mở Chrome Inspector tool lên, thấy email và password hiện lù lù ra đó và tưởng rằng website của họ không được bảo mật 😃, điều đó là ngộ nhận, không đúng. Trình duyệt của bạn, bạn tự mở Inspector lên, hiển nhiên bạn thấy, chứ người khác thì sao làm được vậy.

Chia sẻ
thg 10 26, 2022 2:53 SA

lâu có 1 ông cứ cãi nhau với tôi vấn đề này, nói mãi cũng chán

Avatar Pham Hoc @hoc_anms
thg 10 26, 2022 7:14 SA

Quá chuẩn luôn đại ca, security là tốt nhưng nhiều khi ae cứ làm quá vđ lên lại gây khó cho mình thì cũng phải thay đổi mindset chút :V

thg 10 28, 2022 8:02 SA

@kuyuta đồng quan điểm với bác Đức. Việc bạn mã hóa password dưới frontend như vậy là thừa thãi bởi vì:

  1. Việc bạn mã hóa bằng JS thì hacker đọc code JS của bạn là lần ra được thuật toán mã hóa, từ đó có thể decrypt ra raw text.
  2. Payload của request khi bạn POST lên server đã được mã hóa bằng HTTPS rồi, cho tới hiện tại, nó là cách hiệu quả nhất để phòng tránh hình thức tấn công MITM nên bạn không phải lo việc lộ thông tin bên trong payload.
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí