
Elenco curato di stringhe di input malevole e casi limite (blns.txt/blns.json) per il QA e il test di sicurezza della validazione dell'input utente, dell'injection e della gestione Unicode.
La Big List of Naughty Strings è un elenco in continua evoluzione di stringhe che hanno un'alta probabilità di causare problemi quando vengono utilizzate come dati di input dell'utente. È pensata per essere utilizzata come supporto sia per i test QA automatizzati che manuali; utile ogni volta che il tuo ingegnere QA entra in un bar.
Anche le aziende da miliardi di dollari con enormi quantità di test automatizzati non riescono a trovare ogni input errato. Ad esempio, guarda cosa succede quando provi a twittare uno spazio a larghezza zero (U+200B) su Twitter:
Sebbene questo non sia un errore malevolo, e gli utenti tipici non twittino strani caratteri unicode, un "internal server error" per un input inaspettato non è mai un'esperienza positiva per l'utente, e potrebbe in realtà essere il sintomo di problemi più profondi di validazione delle stringhe. La Big List of Naughty Strings è pensata per aiutare a rivelare tali problemi.
blns.txt è composto da stringhe delimitate da newline e commenti preceduti da #. I commenti dividono le stringhe in sezioni per facilitarne la lettura manuale e il copia/incolla nei moduli di input. Per coloro che desiderano accedere alle stringhe in modo programmatico, è fornito un file blns.json contenente un array con tutti i commenti rimossi (la cartella scripts contiene uno script Python utilizzato per generare il file blns.json).
Sentiti libero di inviare una pull request per aggiungere altre stringhe o sezioni aggiuntive. Tuttavia, ti preghiamo di non inviare pull request con stringhe molto lunghe (255+ caratteri), poiché ciò rende l'elenco molto più difficile da visualizzare.
Allo stesso modo, ti preghiamo di non inviare pull request che compromettano l'usabilità manuale del file. Questo include la stringa di test EICAR, che può causare il flagging del file da parte degli antivirus, e file che alterano la codifica di blns.txt. Inoltre, non inviare una stringa con carattere null (U+0000), poiché cambia il formato del file su GitHub in binario e lo rende illeggibile nelle pull request. Infine, quando aggiungi o rimuovi una stringa, aggiorna tutti i file quando esegui una pull request.
La Big List of Naughty Strings è pensata per essere utilizzata per software di tua proprietà e gestione. Alcune delle Naughty Strings possono indicare vulnerabilità di sicurezza e, di conseguenza, l'utilizzo di tali stringhe con software di terze parti potrebbe costituire un reato. Il manutentore non è responsabile per eventuali azioni negative derivanti dall'uso dell'elenco.
Inoltre, la Big List of Naughty Strings non è un sostituto completamente esaustivo per i test formali di sicurezza/penetration testing del tuo servizio.
Varie implementazioni della Big List of Naughty Strings sono arrivate a vari package manager. Queste sono mantenute da terze parti, ma possono essere trovate qui:
Apri una PR per elencarne altre.
Max Woolf (@minimaxir)
MIT