Standard e conformità per lo sviluppo sicuro di applicazioni Web?

0

Sto lavorando con gli sviluppatori in questo momento che scrivono il codice nel modo in cui vogliono e quando dico loro di farlo in altro modo rispondono che è solo questione di preferenza come farlo e hanno la loro strada e io ho il mio.

Non sto parlando della formattazione del codice, ma piuttosto del modo in cui il sito è organizzato in classi e nel modo in cui vengono utilizzati. e il modo in cui creano funzioni e moduli di elaborazione ecc.

La loro codifica non corrisponde ai miei standard, ma di nuovo sostengono che la sua questione di preferenza e fino a quando l'obiettivo raggiunto può essere un modo diverso di farlo. Sono d'accordo ma il loro modo è dimostrato di avere bug e passiamo molto tempo avanti e indietro con loro per risolvere tutti i problemi di sicurezza o funzionalità, eppure scrivono ancora lo stesso codice, non importa quante volte ho chiesto loro di smettere di fare certe cose .

Ora sono pronto a licenziarli ma un mio amico mi ha detto che ha lo stesso problema con gli sviluppatori freelance con cui lavora. Quindi non voglio scambiare una mela cattiva con un'altra.

La domanda è che ci sono standard o conformità accettati in tutto il mondo (o almeno europa e stati uniti) su come scrivere applicazioni web sicure. Quale architettura applicativa dovrebbe essere per l'applicazione manutenibile.

Esistono standard generali che possono essere utilizzati per qualsiasi lingua. ruby php o java governano la sicurezza, la funzionalità e la qualità del codice? O almeno per PHP e MySQL che uso per il mio sito web. Quindi posso far sì che seguano questo severo standard e smettano di formulare scuse.

    
posta MarkusK 26.06.2012 - 02:21
fonte

5 risposte

2

Ci sono un'ampia varietà di questi standard e ogni giocatore BIG nel business del software ha le sue linee guida. L'approccio e la metodologia sulla sicurezza dell'applicazione possono variare o avere aspetti comuni a seconda della piattaforma di sviluppo scelta. Come buon inizio, puoi guardare i seguenti articoli di riflessione:

risposta data 26.06.2012 - 03:37
fonte
2

Or at least for PHP and MySQL i use for my website

Per prima cosa dovrei applicare l'estensione PHP Data Objects (PDO) per tutte le comunicazioni del database. Soprattutto usando le dichiarazioni preparate da DOP. Vedi link

In secondo luogo, vorrei utilizzare una libreria o un framework per lavorare con i moduli. Puoi usare Zend Framework come libreria e ZF ha librerie per lavorare con i moduli. Poiché Zend è "The PHP Company", potrebbe essere considerato "ufficiale", suppongo. EDIT: e / o rivedi questo link Quali dettagli tecnici dovrebbe prendere in considerazione un programmatore di un'applicazione web prima di rendere pubblico il sito?

In terzo luogo, dovresti probabilmente leggere Essential PHP Security di Chris Shiflett . Esamina le pratiche di sicurezza di base e può illuminarti a potenziali falle nella sicurezza che potrebbero non essere così ovvie per te. Quindi puoi fare riferimento a questo libro come un altro "standard".

    
risposta data 26.06.2012 - 18:47
fonte
2

Potresti aver raggiunto il punto della tua vita come programmatore, dove vuoi usare un framework. scrivi

I am not talking about the formatting of code, but rather of way site is organized in classes and the way the utilize them. and the way they create functions and process forms etc..

Se prendi qualcuno dei moderni framework (Ruby on Rails, Python / Django, PHP / ZEND) ti daranno esattamente questo:

ti diranno come suddividere la tua app in modelli, visualizzazioni, controller, dove inserire il tuo codice, cosa chiamare i tuoi corsi, come elaborare i moduli, .... e ti forniranno anche funzionalità di sicurezza integrate per la gestione di html o codice HTML di escape, per prevenire l'iniezione, xss, csrf e così via.

La mia raccomandazione personale sarebbe quella di lasciare il php e passare a Rails - che considero il più avanzato dei framework. Ma YMMV.

    
risposta data 26.06.2012 - 21:03
fonte
1

C'è lo standard di verifica della sicurezza delle applicazioni OWASP. È un modo oggettivo per determinare che le migliori pratiche relative alla sicurezza sono state seguite rispondendo a un elenco di controllo sul prodotto. I requisiti della lista di controllo sono indipendenti dalla tecnologia lato server.

link

Potresti prendere in considerazione la possibilità di richiedere almeno il livello 1 di conformità dai tuoi collaboratori esterni.

Come avvertenza, la checklist contiene elementi come "V5.2 - Verifica che un pattern di validazione positivo sia definito e applicato a tutti gli input." Ciò significa che, a meno che uno sviluppatore non abbia effettivamente studiato attentamente i requisiti prima dell'implementazione (o abbia già adottato una metodologia di sviluppo sicura) è improbabile che fornisca un risultato finale che non richiede grosse riscritture per soddisfare i requisiti ASVS.

    
risposta data 27.06.2012 - 09:56
fonte
0

La prima cosa che ho pensato sono stati gli incubi che ho sopportato durante una verifica Sarbanes-Oxley. Ora, sebbene tu possa non dover rispettare SOX (ad esempio, non sei una società quotata in borsa), le società con cui lavori in affari potrebbero.

A tal fine, e anche se non sono un esperto, un buon punto di partenza è assicurarsi che tutte le informazioni personali dei clienti in tuo possesso siano crittografate.

In realtà puoi iniziare a pensare al problema assumendo che a un certo punto tutto il tuo database sarà rubato e quali conseguenze ci sarebbero se ciò dovesse accadere. In breve, crittografa le informazioni personali in modo affidabile con le librerie appropriate (non semplicemente hash) e non memorizzare la chiave nello stesso database.

link

link

link

    
risposta data 26.06.2012 - 18:13
fonte