Perché i backslash e le barre di avanzamento non possono essere utilizzati nelle password [chiuso]

-1

Quando si rendono complesse le password backlashes e le barre in avanti spesso non sono permesse.

Suppongo che questo abbia a che fare con errori che probabilmente genera con il db che potrebbe non riconoscerlo ma non ne sono sicuro.

Qual è il motivo per cui si limitano le password utilizzando backlashes e barre in avanti

    
posta dmnte 27.04.2017 - 06:03
fonte

2 risposte

2

La domanda che hai posto è di tipo generico. Prima di tutto lasciami evidenziare, i backslash e le barre di avanzamento sono consentiti e non sono mai stati limitati quando si tratta di impostarli come password.

Prima di tutto dobbiamo capire la storia di '/' e '\', questi due sono usati come caratteri di escape anche come vettori di path traversal. Tenendo presente questo, leggi il seguito.

Sì, un'applicazione che non è configurata per uscire da "/" e "\" causerà spesso errori di accesso. Pertanto è una pratica comune per le applicazioni convalidare questi caratteri in modo che questi due non vengano interpretati come caratteri di escape. In caso contrario, causerà sicuramente errori di accesso. Parlando di utilità da riga di comando come Mysql, se si imposta una password per dire 'dee / 1p \ wa' è ancora possibile effettuare il login inserendo la password tra virgolette. es. mysql -u root -p "dee / 1p \ wa" e quindi sarà interpretato come una stringa. tuttavia se lo fai. mysql -u root -p dee / 1p \ wa. allora l'accesso fallirà.

Riepilogo generale, l'uso di "/" e "\" nelle password è consentito, richiede allo sviluppatore lo sforzo di garantire che vengano convalidati come valori letterali stringa e non caratteri di escape.

    
risposta data 27.04.2017 - 07:04
fonte
1

Non sono sicuro che direi generalmente non è permesso - ma hai ragione, sono molto limitati.

Generalmente il problema riguarda ovunque il passaggio a testo attraverso un'interfaccia, che si tratti di una query SQL, una riga di comando, un URL, ecc. Di gran lunga il principale colpevole sono le query del database. Il backslash viene usato come carattere di escape, le slash sono usate nelle espressioni regolari, nei percorsi dei file, ecc. MySQL ha persino avuto un bug documentato alcuni anni fa, dove ignorava la barra rovesciata nelle password. link in modo tale che "abc \ def" e "abcdef" siano considerati come la stessa password.

Si tratta di una battaglia di inconvenienti. Puoi risolverlo in diversi punti, ma per lo più stai semplicemente dando il calcio al barattolo per essere affrontato da qualche altra parte - o introducendo più problemi che non ti aspetti - come scoprire che le password degli utenti che contenevano un backslash funzionano sul web ma non sono accettati nella tua app perché lo sviluppatore web e il tuo team mobile non si trovavano nella stessa pagina per quanto riguarda la modalità di escape dei caratteri speciali nelle stringhe di password.

Molti sviluppatori scelgono semplicemente "non si possono usare le slash nella password o nel nome utente".

    
risposta data 27.04.2017 - 07:21
fonte

Leggi altre domande sui tag