Mời anh em xem hai mật khẩu dưới đây:
Bạn nghĩ là mật khẩu nào mất nhiều thời gian hơn để máy tính bẻ khoá? Và mật khẩu nào dễ nhớ hơn? Câu trả lời cho cả hai câu hỏi là mật khẩu số hai. Tuy nhiên, chúng ta thường được khuyên là tạo mật khẩu giống mật khẩu đầu tiên.
Có rất nhiều điều kì lạ trong các tiêu chuẩn trên internet. Xác thực là một trong số đó. Các nhà phát triển front-end phải xác thực thông tin đầu vào mà người dùng nhập vào các trường đầu vào. Đây là các mục mà bạn điền tên người dùng, email, địa chỉ,… Nhiệm vụ của nhà phát triển front-end là đảm bảo rằng người dùng không nhập vào bất cứ thứ gì độc hại hay có định dạng không chính xác.
Chẳng hạn, một mục yêu cầu điền số bưu điện chỉ cho phép điền khoảng cách và số. Nếu chúng ta biết quốc gia mà người dùng sống, chúng ta có thể hạn chế số kí tự nhất định. Số điện thoại bao gồm số, dấu cộng và dấu gạch hoặc thêm dấu ngoặc đơn. Địa chỉ email rất khó xác thực, tuy nhiên một số thực tế phổ biến là chúng phải bao gồm dấu @, ngay cả khi một địa chỉ email hợp lệ có thể không có thuộc tính nào trong số đó. Một số trang web cố gắng xác thực tên bằng cách buộc mọi người điền tên của họ trong một độ dài nhất định hoặc chỉ được sử dụng một số ký nhất định.
Việc xác thực là cần thiết vì một số lý do. Đầu tiên là lo ngại về bảo mật. Việc xác thực ngăn người dùng nhập các loại mã đáng sợ có thể thay đổi cơ sở dữ liệu hoặc thực hiện các hành vi nguy hiểm khác. Tiếp theo là để giới hạn một loại dữ liệu nhất định. Nếu một trường thông tin chỉ bao gồm số, kĩ sư cơ sở dữ liệu (database) có thể đã thiết lập một cột database chỉ cho phép điền số. Điều đó đồng nghĩa với việc một kí hiệu không phải là số sẽ gây ra lỗi.
- jK8v!ge4D
- greenelephantswithtophats
Bạn nghĩ là mật khẩu nào mất nhiều thời gian hơn để máy tính bẻ khoá? Và mật khẩu nào dễ nhớ hơn? Câu trả lời cho cả hai câu hỏi là mật khẩu số hai. Tuy nhiên, chúng ta thường được khuyên là tạo mật khẩu giống mật khẩu đầu tiên.
Có rất nhiều điều kì lạ trong các tiêu chuẩn trên internet. Xác thực là một trong số đó. Các nhà phát triển front-end phải xác thực thông tin đầu vào mà người dùng nhập vào các trường đầu vào. Đây là các mục mà bạn điền tên người dùng, email, địa chỉ,… Nhiệm vụ của nhà phát triển front-end là đảm bảo rằng người dùng không nhập vào bất cứ thứ gì độc hại hay có định dạng không chính xác.
Chẳng hạn, một mục yêu cầu điền số bưu điện chỉ cho phép điền khoảng cách và số. Nếu chúng ta biết quốc gia mà người dùng sống, chúng ta có thể hạn chế số kí tự nhất định. Số điện thoại bao gồm số, dấu cộng và dấu gạch hoặc thêm dấu ngoặc đơn. Địa chỉ email rất khó xác thực, tuy nhiên một số thực tế phổ biến là chúng phải bao gồm dấu @, ngay cả khi một địa chỉ email hợp lệ có thể không có thuộc tính nào trong số đó. Một số trang web cố gắng xác thực tên bằng cách buộc mọi người điền tên của họ trong một độ dài nhất định hoặc chỉ được sử dụng một số ký nhất định.
Việc xác thực là cần thiết vì một số lý do. Đầu tiên là lo ngại về bảo mật. Việc xác thực ngăn người dùng nhập các loại mã đáng sợ có thể thay đổi cơ sở dữ liệu hoặc thực hiện các hành vi nguy hiểm khác. Tiếp theo là để giới hạn một loại dữ liệu nhất định. Nếu một trường thông tin chỉ bao gồm số, kĩ sư cơ sở dữ liệu (database) có thể đã thiết lập một cột database chỉ cho phép điền số. Điều đó đồng nghĩa với việc một kí hiệu không phải là số sẽ gây ra lỗi.
Nhưng lý do chính là để giúp người dùng tránh mắc lỗi.
Nguồn: kaspersky
Mật khẩu bắt buộc
Vì một vài lý do, các nhà phát triển front-end dự kiến sẽ hướng dẫn người dùng nhập những gì theo quan niệm truyền thống là một mật khẩu tốt. Nó phải dài ít nhất 8 kí tự, bao gồm cả kí tự viết hoa và viết thường, có số và thậm chí cả kí tự đặc biệt, ví dụ một dấu chấm than.jK8v!ge4D là ví dụ được coi là một mật khẩu mạnh. Dựa trên thực tế người dùng hay được gợi ý tạo mật khẩu như thế này, chúng ta có thể giả định đây được coi là một mật khẩu tốt.
Thực sự thì không. Đây là một password khá tệ.
Trước hết, làm sao ta có thể nhớ được mật khẩu kiểu như vậy? Vì thế, chúng ta thường sẽ viết chúng vào đâu đó như tờ giấy nhớ. Và rồi nó bị hack.
Thứ hai, người dùng thường sử dụng một password cho nhiều dịch vụ khác nhau bởi vì chúng ta không thể nhớ hết được cả đống mật khẩu phức tạp. Khi bạn tạo tài khoản trên một trang web tử tế, một số đoạn mã sẽ biến mật khẩu của bạn thành một loạt kí tự đã được mã hoá. Mật khẩu của bạn trông sẽ giống như này trong cơ sở dữ liệu: k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX.
Ngay cả khi database bị tấn công, các hacker cũng không thể làm gì với thông tin này. Chúng có thể tìm ra password nếu như nó phổ biến và thuật toán đơn giản, còn với một mật khẩu ổn áp, thường là sẽ an toàn.
Quảng cáo
Nếu bạn sử dụng cùng một mật khẩu cho nhiều loại dịch vụ, có thể bạn sẽ dùng một dịch vụ được lập trình kém và nó sẽ lưu password dưới dạng văn bản thuần tuý trong cơ sở dữ liệu. Nếu bị xâm nhập, tin tặc sẽ có được mật khẩu của tất cả các loại tài khoản bạn có. Thực tế này xảy ra nhiều hơn bạn nghĩ đấy.
Đây là lý do tại sao bạn PHẢI sử dụng các mật khẩu khác nhau cho các website khác nhau. Tuy nhiên chúng ta có hàng tá các loại tài khoản khác nhau, sao mà nhớ được bây giờ? Một người thành thạo sẽ sử dụng công cụ mật khẩu nhưng một người bình thường thì không.
Mất bao lâu để .....?
Hãy xem chuỗi kí tự này: gtypohgt. Đây là 8 kí tự ngẫu nhiên. Chỉ mất vài phút để một chiếc máy tính hiện đại xử lý nó. Thay thế một số ký tự bằng số và nó mất khoảng một giờ để ..... (g9ypo3gt). Viết hoa một vài ký tự và mật khẩu sẽ mất nhiều ngày để ..... (g9YPo3gT). Thêm một kí tự đặc biệt, nó sẽ mất cả tháng (g9Y!o3gT).g9Y!o3gT là một mật khẩu khá ổn. Không ai có thể đoán được, nó không phải là một password phổ biến và máy tính sẽ mất khá nhiều thời gian để ...... Vấn đề là mật khẩu này rất khó nhớ.
Giờ hãy xem mật khẩu này: greenelephantswithtophats (green elephants with top hats). Có 24 kí tự, tất cả đều viết thường. Không có số, không có kí tự ngẫu nhiên, không khó nhằn. Nhưng password này sẽ khiến máy tính mất hàng nghìn năm để bẻ khoá. Đối với mỗi kí tự bạn thêm vào, máy tính sẽ càng mất thêm thời gian để ...... Mật khẩu này cũng không hề phổ biến và cũng không ai đoán được.
Đó là một mật khẩu tốt
Bạn cần mật khẩu cho Facebook? afaceforabookbutapizzaforahorse (a face for a book but a pizza for a horse). Hãy thử hình dung nó xem. Bạn có một mật khẩu rất mạnh, dễ nhớ và độc đáo cho một trang web cụ thể. Mật khẩu phải là thứ gì đó ngay cả những người thân bạn nhất cũng không đoán được.Quảng cáo
Những password này khá dễ để tưởng tượng. flyingcarsthatcannotflyarenotflying. applesmaybegreatbutpearsarelikeheaven. goatswithshoesenjoytrainsonrainydays. Không ai đoán nổi.
Tuy nhiên, một số website sẽ không cho phép bạn đặt mật khẩu này. Nó sẽ báo bạn không điền số, kí tự viết hoa hoặc do nó quá dài. Vì thế, bạn có thể lừa hệ thống một xíu. thêm A1! ở cuối bất kì password nào trong số trên, và nó sẽ được chấp nhận bởi bất cứ hệ thống nào không coi đây là mật khẩu dài. Giờ bạn có kí tự viết hoa, số và cả kí tự đặc biệt. Thậm chí kể cả khi ba kí tự này xuất hiện trong tất cả các mật khẩu của bạn, phần còn lại của mật khẩu sẽ bù đắp cho chúng.
Hãy nhớ thủ thuật này vào lần sau khi bạn cần tạo mật khẩu. Tạo một tài khoản mà máy tính khó bẻ khoá và dễ nhớ đối với bạn, chứ không phải ngược lại. Và nhớ tránh mấy password kiểu như 123456 hay qwerty nhé.
Theo towardsdatascience