Điểm cuối hoạt động khi nhập thủ công và thất bại khi tải từ tệp. Trước khi đổi mật khẩu, hãy kiểm tra cách bản ghi được đọc.

Tệp hướng dòng có một dấu phân cách. Nếu bộ phân tích để lại ký tự xuống dòng cuối cùng trong trường cuối, thông tin xác thực truyền cho máy khách có thể khác với ý định của bạn. CRLF kiểu Windows khiến hai byte đáng được kiểm tra.

file() của PHP hỗ trợ FILE_IGNORE_NEW_LINES để đọc bản ghi mà không có dấu phân cách cuối dòng. Dùng hành vi phù hợp với định dạng tệp đã được tài liệu hóa.

Hãy cẩn thận với cách sửa phổ biến sau đó: cắt khoảng trắng mọi trường. Khoảng trắng có thể là ký tự mật khẩu thật. Xóa toàn bộ khoảng trắng đầu và cuối sẽ thay đổi thông tin xác thực thay vì chỉ loại bỏ dấu kết thúc bản ghi.

Cũng hãy xác định các dấu phân tách. Định dạng không chính thức phân tách bằng dấu hai chấm có thể trở nên mơ hồ khi mật khẩu hoặc địa chỉ IPv6 chứa dấu hai chấm. Đọc bản ghi theo định dạng đó, giữ nguyên các byte mật khẩu dự định, và chỉ sau đó mã hóa các thành phần cho URL điểm cuối nếu cần.

Để chẩn đoán, hãy so sánh độ dài hoặc giá trị thử nghiệm được kiểm soát không bí mật. In mật khẩu thật hoặc URL đầy đủ mang thông tin xác thực tạo ra một vấn đề khác trong khi đang khắc phục một lỗi bộ phân tích rất nhỏ.

Bài viết liên quan