sfondo
Sono stato assunto per aiutare un'azienda a mantenere il proprio server. Lavoro su alcuni progetti PHP minori, ma mi occupo anche dei problemi di prestazioni e, recentemente, eseguo la scansione dei log per gli hacker.
Questi ragazzi hanno eseguito il loro server per un po 'di tempo e hanno quella che definirei un'applicazione legacy nelle sue ultime fasi. Usa virgolette, variabili globali (che permettono $id
di essere sovrascritte da $_GET['id']
), usa .htaccess come unica sicurezza in alcuni casi, lo chiami. Un incubo per la sicurezza e la programmazione.
In passato siamo stati hackerati, principalmente con iniezioni di SQL, che eseguivano SLEEP(99999999)
comandi e fungevano da attacco DOS. Fortunatamente non gestivano "tavolini bobby",
XKCD: http://xkcd.com/327/
Quindi ho riscritto le loro vulnerabili istruzioni SQL da mysql_query()
(non mysqli) a transazioni PDO. Sto anche analizzando le domande per SLEEP
e UNION
, che non usiamo ma le iniezioni hanno. Fin qui tutto bene.
Ultimo numero
Recentemente ci è stato detto che i record stanno cambiando nel DB per gli utenti, come i loro indirizzi e-mail presumibilmente creati dagli spammer.
Ho notato che le loro colonne non avevano una last_modified
colonna, quindi non eravamo nemmeno in grado di sapere quando sarebbero state cambiate, figuriamoci da chi. Ho aggiunto quella colonna, ma è appena un primo passo.
Quando stavo guardando questo tavolo, ho notato che le password non venivano né salate, né neppure cancellate, ma salvate come testo in chiaro.
Comunicazione del cliente
Come posso affrontarli sull'intera situazione, come appaltatore, senza agitare le braccia come un pazzo? Qualche consiglio? Stavo pensando a un approccio calmo di,
NUMERO 1 Sinossi Perché questo è un problema Cosa può succedere se questo non viene risolto Correzione suggerita NUMERO 2 Sinossi Perché questo è un problema Cosa può succedere se questo non viene risolto Correzione suggerita