El punt final funciona quan s'introdueix manualment i falla quan es carrega d'un fitxer. Abans de rotar la contrasenya, inspecciona com es llegeix el registre.

Un fitxer orientat a línies té un delimitador. Si l'analitzador deixa el seu salt de línia final a l'últim camp, la credencial que es passa al client pot diferir de la que volies. El CRLF a l'estil de Windows fa que valgui la pena comprovar dos bytes.

El file() de PHP admet FILE_IGNORE_NEW_LINES per llegir registres sense el seu delimitador de final de línia. Utilitza el comportament adequat al format documentat del fitxer.

Ves amb compte amb la solució posterior popular: retallar cada camp. Els espais poden ser caràcters reals de la contrasenya. Eliminar tots els espais inicials i finals canvia la credencial en lloc de només eliminar un terminador de registre.

Defineix també els separadors. Un format informal delimitat per dos punts pot esdevenir ambigu quan la contrasenya o una adreça IPv6 conté dos punts. Llegeix el registre segons aquest format, conserva els bytes de contrasenya previstos i només llavors codifica els components per a una URL de punt final si cal.

Per al diagnòstic, compara longituds o valors de prova controlats no secrets. Imprimir la contrasenya real o una URL completa amb credencials crea un altre problema mentre es resol un error d'analitzador molt petit.

Articles relacionats