Lavoro per una startup finanziaria gestendo le cose tecniche. Il COO ha deciso di creare un nuovo sito Web utilizzando uno sviluppatore di contratto e il proprietario dell'azienda lo ha pagato ($ 9k). Mi viene chiesto di utilizzare il nuovo sito (Joomla + un sacco di codice PHP personalizzato), ma sembra di qualità molto bassa e poco sicuro. Ad esempio:
- Non usa il controllo del codice sorgente o un framework.
- Non usa MVC. I file di origine PHP hanno una dimensione di 30k - 98k. Incorporano HTML, CSS, PHP, JS in un unico file.
- Utilizza l'ID di sessione come un token di verifica dell'email, consentendo a tutti coloro che intercettano l'e-mail di sequestrare la sessione. %codice%
- Non usa i sali nelle password. %codice%
- Non sfugge all'input dell'utente nelle query SQL. %codice%
- Non crittografa dati personali o informazioni finanziarie.
- Non sfugge all'input dell'utente nell'output HTML. %codice%
- La password del database è hardcoded nel codice sorgente. %codice%
- Il design CRUD non ha nemmeno R-Read. Non c'è nessuna visualizzazione delle informazioni utente inserite! Ho chiesto di assicurarmi che non mi mancasse qualcosa. La demo utilizzava un wrapper fittizio di una pagina CMS statica. Questo è interpretato come "buco in esso".
- Ha 7 vulnerabilità in base a un'app di scansione di sicurezza, tra cui XSS e clickjacking. Ho mostrato il rapporto.
Sono certo che è solo questione di tempo prima che venga violato e non voglio il mio nome su di esso. Quindi ho cercato di mettere in guardia contro di esso. Sfortunatamente il COO sembra aver preso una decisione e crede che la mia posizione sia un problema personale. La maggior parte dei miei collaboratori non sono tecnici e nessuno ha capacità di sviluppo, quindi nessuno ha individuato il vero problema.
Come posso spiegare al capo / proprietario che non è OK utilizzare un software così insicuro e non gestibile, quando le ragioni sono tecniche ma sapendo che ha speso molti soldi per questo?
Indipendentemente dagli argomenti oggettivi, immagino che le mie opzioni siano:
- indica i fatti e vai via.
- Cerca di spiegare perché è male. In caso di successo, continua con il vecchio sito Ruby on Rails. Se fallisci, vai via.
- Prova a correggere il codice da solo. Ho paura di questo perché è molto caotico. Potrebbe richiedere più tempo del previsto.
- Rendi il vecchio sito simile al nuovo sito. Il nuovo sito ha degli elementi di design che posso copiare. Anche se nessuno può sapere la differenza, questa opzione sembra un po 'ingannevole.