2009-10-30 3 views

risposta

26

Non è possibile modificare il carattere di mascheramento della password nel campo della password standard. Puoi fingere con una casella di testo, ma crea un modello di sicurezza debole perché non ottieni la protezione che fai dalla casella di testo della password. Come nota a margine, non è generalmente una buona idea cambiare il comportamento di elementi come questo perché gli utenti si sono abituati a una forma di mascheramento, e ne introdurrai una diversa - se non ci sono buoni motivi per farlo, io d evitarlo.

+0

Come posso fingere con casella di testo, tuttavia non sto usando questa caratteristica per password, controllare la domanda http://stackoverflow.com/questions/31604402/replace-text-with-stars-in-html-senza-javascript? Noredirect = 1 # comment51159417_31604402 –

3

No: l'agente utente sceglie il proprio stile predefinito e non esistono (per quanto mi consta) attributi CSS che è possibile modificare per determinare il carattere di mascheramento.

Ovviamente, ciò sarebbe possibile se il campo della password fosse solo un campo di testo standard e l'utente avesse mascherato manualmente un gestore di eventi javascript (onKeyPress, probabilmente). Puoi anche dichiarare il campo come type="password" nel codice HTML, quindi fare in modo che la funzione JS modifichi il DOM per cambiarne il tipo. Sarei un po 'cauto nel fare questo, però; l'implementazione del browser è quasi certamente abbastanza solida e l'aggiramento delle funzionalità di sicurezza consolidate per il rollover è raramente una buona idea.

+6

Funzionalità di sicurezza consolidate? I campi di immissione della password e del testo in HTML sono quasi gli stessi, solo l'interfaccia utente cambia, con il mascheramento che si verifica nei campi della password. Non sto minimizzando la tua risposta, ma questo non è come reinventare la ruota o creare un motore di crittografia homebrew, è solo un patch di un elemento dell'interfaccia utente per soddisfare i tuoi gusti. – Spidey

+1

@Spidey, oltre al mascheramento dei caratteri, i campi password impediscono anche la copia del contenuto da essi, a seconda del browser e del sistema operativo. –

+1

@MicahHenning Grazie per aver segnalato questo. Ad ogni modo, anche se l'utente ha provato a copiare dalla casella di testo personalizzata, tutto ciò che otterrebbe sarebbero asterisc o punti o qualsiasi altro simbolo che si sceglie di mascherare la password reale. – Spidey

1

A partire da ora, sembra che sia possibile nei browser Webkit. Si prega di consultare http://help.dottoro.com/lcbkewgt.php per esempi e documentazione.

non vale per l'immissione della password

<input type="text" style="-webkit-text-security: square;" />

Non v'è alcuna buona soluzione per gli altri browser, come di quando questa risposta è stato scritto e anche nel browser WebKit, i caratteri che sono permesso di specificare sono molto limitati.

+4

Questo non funziona. L'ho provato su 4 diversi browser. –

+0

aggiornato. Grazie @OleHaugset. – www139

14

Creare il proprio carattere e utilizzare @font-face e font-family (e font-size) per input[type="password"]. Dovrebbe aiutare a risolvere il tuo problema. Ma ... devi creare font con il carattere di proiettile e asterisco sostituito. Tutti i numeri di carattere nel carattere possono rappresentare lo stesso carattere. Usa google per trovare il programma gratuito per modificare i caratteri vettoriali.

Mai dire "impossibile". Dovresti trovare un trucco per il tuo problema.

Caratteri da sostituire con il simbolo (per Chrome, Firefox e MSIE): 26AB, 25E6, 25CF, 25D8, ​​25D9, 2219, 20F0, 2022, 2024, 00B7, 002A.

(18C)

+1

Hai un font di esempio da condividere? – camolin3

+0

questa dovrebbe essere la risposta perfetta ... Grazie amico ... risolto il mio problema –

+1

@waLLe: Donna non uomo ... La gente pensa raramente a comportamenti astratti e multilivello. BTW. la domanda è vecchia (2009) ma ancora attiva. In passato '@ font-face' non era definito. Nel 2009 non era possibile ma ... la gente ripete la risposta nonostante Firefox lo supporti dalla v3.5, IE probabilmente dalla v6, Chrome dalla v4. Ma ancora ... Opera Mini non supporta. Quando ho scritto la mia risposta, la risposta principale ha +21 punti. – 18C

0

<input type="text" style="-webkit-text-security: circle;" />

+1

La proprietà CSS '-webkit-text-security' non funzionerà su IE, Firefox o Opera. – sorak