Il codice sorgente di un'applicazione può contenere il nome utente e / o la password?
Se sì, come possiamo determinarlo?
Anche quali altre informazioni possono contenere?
Il codice sorgente di un'applicazione può contenere il nome utente e / o la password?
Se sì, come possiamo determinarlo?
Anche quali altre informazioni possono contenere?
In base al tag, stai parlando di applicazioni web. Non dovresti essere difficile codificare nomi utente, password o stringhe di connessione nel codice sorgente. Questi dovrebbero essere nei file di configurazione o nel database in base alla piattaforma e all'architettura.
È possibile e dovrebbe garantire che questi dati siano crittografati - .net, ad esempio, consente la crittografia dei file di configurazione web. Dovresti anche assicurarti che il tuo server web non serva i file di configurazione e protegga dagli attacchi che potrebbero ottenerli, ad esempio: attacchi di directory directory, attacchi di padbuster.
Questo rimuove qualsiasi cosa seriamente confidenziale dalla fonte, ma ricorda di non lasciare i backup di origine nella tua directory web accessibile.
Con la fonte il tuo aggressore avrà un quadro completo di come funziona la tua applicazione, di come autenticarti, degli input accettati, della gestione degli errori e di qualsiasi altra cosa riguardante la tua applicazione. Ci sono un numero innumerevole di exploit che potrebbero determinare da ciò analizzando manualmente il codice o eseguendolo attraverso uno strumento di analisi statico.
In un'app di 3 livelli configurata correttamente, nessuna password dovrebbe essere codificata nel codice sorgente.
Il codice sorgente è come la stampa blu di una casa. Se hai il progetto puoi facilmente identificare tutto il modo semplice di entrare e uscire. Allo stesso modo, se il codice sorgente è disponibile, può essere rianimato per identificare vulnerabilità per crackare il software. Se si tratta di un software commerciale, le persone possono compilare e creare la propria soluzione.
I nomi utente e la password nel codice sorgente sono cattive pratiche e pericolose. Non importa se il tuo codice è pubblicamente disponibile o meno, un utente malintenzionato che scopre quelle credenziali avrà accesso all'applicazione. Nella maggior parte dei casi le credenziali con hardcoded hanno privilegi speciali, sono difficili da cambiare (dato che implica la modifica del codice, magari la compilazione, il test e la distribuzione), non possono essere bloccate e talvolta non usano il flusso di lavoro regolare nell'applicazione (come l'accesso!) . Tutte queste cose sono indesiderabili in un'applicazione web, è una backdoor nella tua applicazione
Altre cose che sono comuni a trovare nel codice sorgente e non dovrebbero esserci sono:
4242424242424242
per carte di credito) Nel caso particolare del codice JavaScript eseguito dal client, a volte ci sono commenti nel codice che rivelano il funzionamento interno dell'applicazione lato server. Il codice di commento non è di per sé negativo, ma in questo caso può fornire a un utente malintenzionato alcuni indizi su come funziona il sistema di back-end o può descrivere alcuni bug identificati durante i test per le correzioni future
Leggi altre domande sui tag source-code web-application appsec