Avventure e disavventure dal mio piccolo universo
martedì 2 febbraio 2010
Clean Code
Ho cominciato a leggere Clean Code. Già solo l'introduzione e il primo capitolo valgono il prezzo del libro. Non vedo l'ora di continuare a leggerlo.
lunedì 1 febbraio 2010
DRY vs Security
Quando si parla di siti web e security é facile rischiare di essere superficiali o farsi prendere dal panico. A me almeno é capitato. La superficialità ci porta ad esempio a pensare che i tool o i framework ci mettano al riparo dai problemi; il panico ci porta all' overengineering. Il risultato é comunque negativo.
Per rispondere coerentemente é necessario coltivare comunque la propria conoscenza; questo non rende il nostro software sicuro in assoluto, beato chi ci riesce, ma ci permette di guardare al problema obiettivamente identificando strategie e principi che minimizzino le attack surface.
L'anno scorso mi é stato consigliato un libro illuminante in tal senso (Ajax Security). Consiglio a chi ha qualche dubbio di dare una occhiata a questo testo, scoprirà come le paure sono fondate, ma anche che un approccio sistematico all'argomento é fondamentale per ottenere buoni risultati.
Programmare orientati alla sicurezza può portare però a violare altri principi di buona programmazione, un esempio che ho vissuto riguarda il DRY. Il principio DRY é in contrasto con un approccio tipo defence in depth (DID). Sequendo questo principio ad esempio la sicurezza di ogni layer non può e non deve essere mai delegata ad altri (someone else's problem). La ridondanza, e la duplicazione dei controlli sono quindi un effetto voluto usando un approccio DID. Nella mia esperienza ho adottato un principio importante "Validate Early Validate Often" (VEVO). Ogni layer all'interno del sistema é responsabile della validazione dei parametri che riceve, secondo le sue conoscenze e i suoi scopi. Ovviamente questa non é una risposta ai problemi di sicurezza ma un approccio alla defence in depth.
Usando un approccio VEVO e costringendo i membri del team a identificare percorsi diversi alla validazione dei dati, mi sono però scontrato con una certa resistenza dovuta alla duplicazione di logica di validazione, in pratica c'era che si opponeva all'approccio dando come giustificazione il mancato rispetto del principio DRY. Eppure anche quando si parla del principio DRY ( vale anche per Separation of Concers e Once And Only Once), occorre valutare attentamente se esistono dei requisiti in contrasto; a mio parere se la sicurezza é un requisito é possibile che si debbano sacrificare altri principi in suo onore.
Per rispondere coerentemente é necessario coltivare comunque la propria conoscenza; questo non rende il nostro software sicuro in assoluto, beato chi ci riesce, ma ci permette di guardare al problema obiettivamente identificando strategie e principi che minimizzino le attack surface.
L'anno scorso mi é stato consigliato un libro illuminante in tal senso (Ajax Security). Consiglio a chi ha qualche dubbio di dare una occhiata a questo testo, scoprirà come le paure sono fondate, ma anche che un approccio sistematico all'argomento é fondamentale per ottenere buoni risultati.
Programmare orientati alla sicurezza può portare però a violare altri principi di buona programmazione, un esempio che ho vissuto riguarda il DRY. Il principio DRY é in contrasto con un approccio tipo defence in depth (DID). Sequendo questo principio ad esempio la sicurezza di ogni layer non può e non deve essere mai delegata ad altri (someone else's problem). La ridondanza, e la duplicazione dei controlli sono quindi un effetto voluto usando un approccio DID. Nella mia esperienza ho adottato un principio importante "Validate Early Validate Often" (VEVO). Ogni layer all'interno del sistema é responsabile della validazione dei parametri che riceve, secondo le sue conoscenze e i suoi scopi. Ovviamente questa non é una risposta ai problemi di sicurezza ma un approccio alla defence in depth.
Usando un approccio VEVO e costringendo i membri del team a identificare percorsi diversi alla validazione dei dati, mi sono però scontrato con una certa resistenza dovuta alla duplicazione di logica di validazione, in pratica c'era che si opponeva all'approccio dando come giustificazione il mancato rispetto del principio DRY. Eppure anche quando si parla del principio DRY ( vale anche per Separation of Concers e Once And Only Once), occorre valutare attentamente se esistono dei requisiti in contrasto; a mio parere se la sicurezza é un requisito é possibile che si debbano sacrificare altri principi in suo onore.
Etichette:
security DRY defence-in-depth
lunedì 25 gennaio 2010
UGI Alt.Net Conference
Sabato scorso ho partecipato alla UGI Alt.Net Conference.
La giornata è stata stimolante, non tanto per i contenuti, interessanti anche se affrontati un po’ superficialmente, ma per l’entusiasmo delle persone. Ho con piacere notato che l’oggettiva situazione sta cambiando grazie anche a movimenti come Alt.Net.
Nei giorni scorsi si sono aperte alcune discussioni attorno ad Alt.Net e alla diminuita forza del movimento, ci sono posizioni ragionevoli e proposte, mi auguro che in Italia ci sia la forza e la volontà di continuare anche con diversi modelli.
La mia proposta per la prossima sessione è meno conferenza e più open space, maggiore coinvolgimento delle persone realmente interessate e che hanno qualche cosa da dire.
Idealmente mi piacerebbe che gli incontri non abbiano obiettivi puramente divulgativi; mi è spiaciuto sentire nei corridoi che alcuni argomenti trattati erano complete novità per alcuni: trovo questo fatto contrario allo spirito di un simile incontro. Intendiamoci non lo era nell’idea degli speaker e degli organizzatori, ma forse lo era nella testa di alcuni partecipanti.
Il mio personale approccio è stato ad esempio di non partecipare ad alcun incontro di cui non conoscessi almeno alcuni cenni, se non addirittura provato sulla mia pelle.
Ritengo che ognuno debba portare il suo piccolo contributo, la propria esperienza, anche negativa, per cercare di crescere e di capire come altri abbiano affrontato e superato gli ostacoli.
Sto pensando già ad argomenti per la prossima sessione e forse potrei propormi come speaker. Chissà.
Ringrazio tutti per le piacevoli ore passate in particolare Simone con cui mi scuso per averlo coinvolto in una piccolo dialogo un po’ senza senso sul futuro di Alt.Net, Omid per la presentazione ma soprattutto per piacevole compagnia durante la cena (assieme agli altri commensali!).
Devo citare Chris e Hadi per la loro pazienza nel sopportare senza lamentarsi le conversazioni in italiano. La loro presenza è stata molto bella e Hadi è un comunicatore eccezionale, un vero modello.
Naturlamente ringrazio tutti i partecipanti e gli organizzatori per la disponibilità. Alla prossima.
La giornata è stata stimolante, non tanto per i contenuti, interessanti anche se affrontati un po’ superficialmente, ma per l’entusiasmo delle persone. Ho con piacere notato che l’oggettiva situazione sta cambiando grazie anche a movimenti come Alt.Net.
Nei giorni scorsi si sono aperte alcune discussioni attorno ad Alt.Net e alla diminuita forza del movimento, ci sono posizioni ragionevoli e proposte, mi auguro che in Italia ci sia la forza e la volontà di continuare anche con diversi modelli.
La mia proposta per la prossima sessione è meno conferenza e più open space, maggiore coinvolgimento delle persone realmente interessate e che hanno qualche cosa da dire.
Idealmente mi piacerebbe che gli incontri non abbiano obiettivi puramente divulgativi; mi è spiaciuto sentire nei corridoi che alcuni argomenti trattati erano complete novità per alcuni: trovo questo fatto contrario allo spirito di un simile incontro. Intendiamoci non lo era nell’idea degli speaker e degli organizzatori, ma forse lo era nella testa di alcuni partecipanti.
Il mio personale approccio è stato ad esempio di non partecipare ad alcun incontro di cui non conoscessi almeno alcuni cenni, se non addirittura provato sulla mia pelle.
Ritengo che ognuno debba portare il suo piccolo contributo, la propria esperienza, anche negativa, per cercare di crescere e di capire come altri abbiano affrontato e superato gli ostacoli.
Sto pensando già ad argomenti per la prossima sessione e forse potrei propormi come speaker. Chissà.
Ringrazio tutti per le piacevoli ore passate in particolare Simone con cui mi scuso per averlo coinvolto in una piccolo dialogo un po’ senza senso sul futuro di Alt.Net, Omid per la presentazione ma soprattutto per piacevole compagnia durante la cena (assieme agli altri commensali!).
Devo citare Chris e Hadi per la loro pazienza nel sopportare senza lamentarsi le conversazioni in italiano. La loro presenza è stata molto bella e Hadi è un comunicatore eccezionale, un vero modello.
Naturlamente ringrazio tutti i partecipanti e gli organizzatori per la disponibilità. Alla prossima.
Iscriviti a:
Post (Atom)