Tạo chính sách mật khẩu
Biến quy tắc mật khẩu thành văn bản chính sách dễ đọc, regex kiểm tra, ô nhập HTML có pattern và passwordrules, cùng cấu hình JSON. Có mẫu NIST và PCI.
0 = không giới hạn
Trong các loại: chữ hoa, chữ thường, chữ số, ký hiệu (0 = tắt).
0 = tắt
0 = tắt
Quy tắc độ phức tạp truyền thống. Hướng dẫn hiện đại (NIST, OWASP) khuyên dùng độ dài và danh sách chặn, vì các quy tắc này khiến người dùng chọn mẫu dễ đoán như "Password1!".
Luôn áp dụng chính sách ở cả phía máy chủ. Regex đếm theo đơn vị mã UTF-16, và “ký hiệu” là bất kỳ ký tự nào không thuộc A–Z, a–z hoặc 0–9.
Tạo chính sách mật khẩu là gì?
Định nghĩa yêu cầu mật khẩu một lần và nhận chúng ở mọi định dạng bạn cần: văn bản chính sách dễ đọc cho người dùng, biểu thức chính quy để kiểm tra, ô nhập mật khẩu HTML có sẵn pattern và thuộc tính passwordrules của Apple, cùng một cấu hình JSON.
Cách sử dụng Tạo chính sách mật khẩu
- Bắt đầu từ một Chính sách mẫu hoặc tự đặt các quy tắc.
- Sao chép Nội dung chính sách cho tài liệu hoặc trang đăng ký của bạn.
- Sao chép Biểu thức chính quy hoặc Ô nhập HTML để kiểm tra phía client.
- Dùng kết quả JSON làm cấu hình cho backend.
Ví dụ
Mẫu kiểu cũ: 8–64 ký tự, chữ hoa, chữ thường, chữ số, ký hiệu
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,64}$
passwordrules: minlength: 8; maxlength: 64; required: upper; required: lower; required: digit; required: special; allowed: ascii-printable; Khi nào nên dùng Tạo chính sách mật khẩu
Dùng khi triển khai hoặc viết tài liệu cho chính sách mật khẩu. Luôn áp dụng cùng quy tắc ở phía máy chủ; regex phía client chỉ để phản hồi cho người dùng.
Tạo chính sách mật khẩu hoạt động như thế nào
Các loại ký tự bắt buộc trở thành lookahead như (?=.*[A-Z]); "ít nhất N trong 4 loại" trở thành phép hoặc của mọi tổ hợp N lookahead; "không quá N ký tự giống nhau liên tiếp" trở thành (?!.*(.)\1{N}); độ dài trở thành .{min,max} (hoặc \S khi không cho phép dấu cách). Giá trị passwordrules tuân theo cú pháp password rules của Apple (minlength, maxlength, required, allowed, max-consecutive). Các quy tắc regex không biểu diễn được (ký tự khác nhau, danh sách chặn, tên người dùng) được liệt kê riêng.
Các Trường Hợp Sử Dụng Phổ Biến
- Tạo regex kiểm tra cho biểu mẫu đăng ký
- Thêm passwordrules để Safari tạo mật khẩu hợp lệ
- Viết yêu cầu mật khẩu hiển thị cho người dùng
- Giữ quy tắc frontend và backend đồng bộ qua JSON
Lưu Ý Bảo Mật
Kiểm tra phía client có thể bị vượt qua. Hãy áp dụng chính sách trên máy chủ và băm mật khẩu bằng Argon2id, scrypt hoặc bcrypt.
Câu Hỏi Thường Gặp
Kết quả hỗ trợ những phiên bản regex nào?
JavaScript, PCRE (PHP), Python re và Java đều chấp nhận cú pháp lookahead được dùng.
Thuộc tính passwordrules là gì?
Một thuộc tính HTML do Apple đề xuất, cho Safari và iCloud Keychain biết trang web chấp nhận mật khẩu nào, để mật khẩu được tạo ra vượt qua bước kiểm tra của bạn.
Vì sao regex không kiểm tra được danh sách chặn?
Đối chiếu với hàng nghìn mật khẩu phổ biến hoặc đã bị lộ cần tra cứu trên máy chủ, không phải một mẫu biểu thức.