Gli "Ospiti" della Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Login/Register
Nota: i miei commenti (quando ci sono) sono in italico

Il CMS, questo sconosciuto

Ieri era una domenica sera, e mi accingevo a raggiungere degli amici in un pub, quando mi chiama il capo in preda a panico feroce.

"Hanno bucato il sito di $Cliente_Importantissimo!!!"

Ok, seratina al pub saltata... mi fiondo a casa, mi collego al sito in questione e ci trovo una bella home page di un fantomatico gruppo di hacker brasiliani.

Inizio a chiedermi che diamine è successo, mi collego al server, dò un'occhiatina ai log di IIS e scopro che il sofisticato trucco con cui i terribili hacker hanno violato la sicurezza è stato... una query HTTP di tipo PUT.

Sì, esatto.

Apro IIS, controllo i permessi, e scopro che effettivamente è abilitato l'accesso in scrittura al sito. Al che, improvvisamente, ricordo ciò che avevo voluto rimuovere, spinto da istinto di sopravvivenza.

Digressione: la mia socità ha come punta di diamante un "fantastico" sistema di content management per siti web, che chiameremo $CMS. Tale arnese è in realtà un'orribile accozzaglia di pagine ASP buttate lì alla meno peggio, che già una volta si è reso responsabile di atroci figuracce con gli sfigati di turno a cui l'abbiamo venduto.

Quando ho iniziato a lavorare per il branco di pazzi in questione, alla mia domanda allo sviluppatore dell'aggeggio "di quali permessi ha bisogno questo coso?", la risposta è stata del tipo "non lo so, tu lascia aperto tutto, poi quando va in esercizio vediamo cosa chiudere".

Ovviamente, quando il sito è andato in esercizio nessuo si è preso la briga di chiudere alcunché...

Improvvisamente comprendo la portata del dramma, e ringrazio divinità varie che il sito sia stato colpito da un ragazzino brasiliano che ha solo sovrascritto l'home page, piuttosto che da un hacker vero. Dopodiché, asporto istantaneamente i permessi incriminati, e rimetto in piedi la baracca.

Oggi presento al capo una relazione sull'accaduto, che sostanzialmente dice "se il team di sviluppo di $CMS avesse saputo come funzionava il suo prodotto, avremmo evitato questo casino". Il capo, ovviamente, mi dice di inventare qualche balla perché la verità non può essere detta al cliente... e inizia l'odissea.

"È un buco di IIS" non va bene, potrebbero dirci di cambiare webserver (e poi chi la riscrive l'applicazione da capo?).
"È un buco di Windows, abbiamo messo la patch" non va bene, potrebbero rispondere "perché non l'avevate messa prima?".
"È un errore di configurazione" non va bene, ci facciamo la figura da imbecilli (anche se, in effetti, sarebbe meritata...).
"È colpa del programmatore" non va bene, lavora per noi anche lui (purtroppo).
"È colpa del sistemista"... no, piuttosto che prendermi la colpa di una simile idiozia faccio una strage.

All'improvviso, idea geniale del capo: "qui dobbiamo fare la supercazzola" (chi non riconosce la situazione, si vada a rivedere "Amici miei"). Segue la stesura di un documento ampiamente farcito di termini tecnici incomprensibili, a base di WebDAV e HTTP, che domani finirà in mano al cliente.

Speriamo bene...


Rieccomi di nuovo qui, a narrare le vicende di $CMS, il nostro meraviglioso sistema di content management per siti web, punta di diamante dell'azienda.

Per chi non fosse al corrente, diremo che l'aggeggio in questione è una vera chiavica, un'accozzaglia di pagine ASP scritte da un perfetto idiota, con soluzioni tecniche degne degne di Windows 1.0.

Ovviamente, tale arnese non prevede un'installazione di base e una successiva customizzazione. No, ogni volta che c'è da rivenderlo ad un nuovo malcapitato cliente, viene preso il contenuto dell'ultimo sito, copiato nella directory di quello nuovo e personalizzato a manina.

Qualche tempo fa, doveva andare in produzione il sito di $Cliente_Importantissimo, al che si è preso $CMS, che l'ultima volta era stato usato per il sito di $Altro_Grosso_Cliente, e si è svolta la solita routine... con l'eccezione che, nel frattempo, il programmatore responsabile dello sviluppo originale del terribile ordigno ha pensato bene di cambiare lavoro. Il capo, assiduo sostenitore della teoria secondo la quale i programmatori sono assolutamente intercambiabili tra loro, ha preso un nuovo malcapitato e l'ha messo a lavorare sul progetto... ma, ovviamente, la vittima designata non poteva in alcun modo sapere che il suo illustre predecessore non aveva la minima idea di cosa significassero le parole "costante" e "variabile" dato che in ASP non esistono le costanti posso capirlo....

Tradotto: dentro *ogni singola pagina* di un sito basato su $CMS c'è scritto il nome del sito di cui fa parte.

Incredibilmente, tutto è andato quasi bene... fin quando, un giorno, si è deciso di utilizzare anche il modulo di $CMS che gestisce le mailing list. Qui, purtroppo, la capicatà di search&replace del nuovo programmatore è venuta meno, cosicché sono rimaste in giro alcune pagine con dentro il nome del vecchio sito.

Risultato: un bel giorno, a qualche centinaio di utenti del sito di $Cliente_Importantissimo è arrivata una mail che diceva "Benvenuti nella mailing list di $Altro_Grosso_Cliente".

Al che, qualcuno si è incazzato.

Molto.

Ma ovviamente l'autore originale di quel meraviglioso prodotto che è $CMS era già sparito da un pezzo...

Massimo
03 Agosto 2004

08/03/2004 00:00

Precedente elenco Successivo

le storie degli ospiti sono in ordine sparso, quindi 'precedente' e 'successiva' possono portare su storie di altri autori

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli (io o l'autore della storia) e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

In aggiunta: se il vostro commento non viene pubblicato non scrivetemi al riguardo, evidentemente non era degno di pubblicazione.

2 messaggi this document does not accept new posts
Luca V.Luca V. Di Luca V. - postato il 25/06/2008 20:01
Seguo da un po' le mirabolanti (dis)avventure narrate in questo sito, ed è la prima volta che riesco a coglierti in fallo, Davide. Le costanti in ASP esistono eccome, così come esiste prepararsi dei template vuoti per le nuove pagine, crearsi degli include standard per centralizzare le eventuali modifiche, farsi delle classi e/o delle libreria per gli oggetti/funzioni di uso più comune, ecc... E sto parlando di ASP classico, non di ASP.NET. Sono quasi 2 anni che programmo in ASP e devo dire che, nonostante tutti i limiti di questo linguaggio, si riescono ancora a fare delle belle cose, se si programma con criterio.
Alla prossima, e buone vacanze!

GiepiGiepi Di Giepi - postato il 24/08/2008 13:35

Mi sono venuti i brividi lungo alla schiena a pensare di essere il parser...ehm nuovo programmatore che magari si è iscritto così per prova alla mailing list del sito appena dato a ATI e vedersi ricevere "Benvenuti alla mailing list di Nvidia"... probabilmente sarei già in Klondike...

Precedente elenco Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gort