Riepilogo post Dicembre 2009

Quanti di voi non conoscono la libreria javascript jQuery? Penso pochi, se non nessuno. La potenza espressiva di questa libreria javascript permette una vastità quasi infinita di metodi di accesso agli elementi del DOM. La parte più interessante di questa libreria è senza dubbio la potenza del motore di selezione degli elementi, il Sizzle CSS Selector Engine.

Ora, quanti di voi programmatori PHP si saranno chiesti se questa potenza dei selettori sia applicabile anche a script PHP server-side che fungono da data crawler o data mining?
Penso parecchi.

Navigando in internet, ovviamente, la soluzione è già stata trovata ed il suo nome+link è PHPQuery Ecco un rapidissimo esempio di quello che questa classe può offrire: scarichiamo la index di google e troviamo i suoi link nel footer (Pubblicità, Soluzioni Aziendali, Tutto su Google, Google.com in English)

Non mi dinlugherò in altri esempi più complessi per mostrarvi la potenza della classe: la pagina ufficiale di PHPquery offre già un ottimo manuale con le spiegazioni dei "metodi" sfruttabili.

Buon Lavoro!

Il problema della sicurezza è cruciale quando si sviluppa una applicazione in PHP. Se non vengono prese determinate precauzioni, un semplice script php come questo che sto per mostrarvi (una risposta xml, magari chiamata tramite ajax) può trasformarsi in un pericoloso buco per il vostro sito, e rendere possibile più o meno tutto a chi sta tentando di "lavorare" sopra lo script:

I problemi? Pessima programmazione: nessuna validazione dei dati, nessun controllo sul funzionamento della query, e in generale mancanza di occhio critico riguardo la sicurezza di uno script simile. Sarebbe aperto ad ogni tipologia di attacco.

Allora, come ovviamo a questo problema? In primis, programmando meglio. In secundis, facendoci aiutare da qualche classe che pulirà un pò i dati che vengono passati tramite GET e POST e che controlli un pò le impostazioni di sicurezza dell'environment (vedere register_globals per farsi un'idea)

Classe "Security PHP Class"

Classe vi validazione Server-Side "PHP Validation Class"

Non mi dilungherò molto nella spiegazione dell'utilizzo delle due classi, prendiamo sempre come esempio lo script errato che c'era ad inizio post e correggiamolo assieme, integrando queste due classi, e facendo un pò più attenzione :)

In questo esempio abbiamo istanziato la classe di sicurezza, abbiamo pulito la variabile superglobale $_GET per prevenire XSS, e abbiamo fatto una validazione in modo che l'unico parametro accettato sia un numero. Tutto il resto infatti può essere considerato un tentativo per bucare lo script :)

Quello che vedete sulla destra di questo sito è un calendario particolare, nel senso che è progettato per il funzionamento asincrono tramite ajax. In questa maniera si può facilmente integrare un modulo calendario in qualsiasi sito con pochissime modifiche e separando nettamente la parte "intelligente" del programma, cioè la creazione dei giorni a partire da un dato mese/anno, dalla parte "meno intelligente", quella di output verso il browser.

Ecco quindi spiegato il funzionamento, separato in:

  • Script PHP Server-Side che crea l'xml con i dati del mese/anno
  • Script client-side in Javascript per iniettare il markup del calendario verso il browser
  • Un esempio di markup HTML per rendere funzionante il tutto

Codice PHP server-side (Creazione dell'xml della coppia mese/anno richiesta)

Codice Javascript per l'iniettamento del markup del calendario verso il browser

Esempio di markup HTML per rendere il tutto funzionante

Mischiare il tutto

Il codice PHP può essere salvato con un nome qualsiasi, solo bisogna ricordarsi di andare a modificare il file javascript e, sotto la parte di creazione della richiesta ajax, andare a modificare il nome della variabile che contiene le impostazioni della richiesta.

Ricordo che questo sistema implica forzatamente l'utilizzo della libreria jQuery per poter funzionare. E' chiaramente visibile nel terzo snippet di codice HTML, dove è specificato il richiamo del file jquery.js

Siamo quasi sotto Natale 2009, e la PSP è un aggeggino tecnologico che potrebbe interessare molti, sia per regararlo ai cari sia per regalarselo da soli :)

Il problema è però quello della scelta di una PSP che sia modificabile al 100% e che sia una di quelle "nuove", la versione slim brite, cioè tutte quelle PSP che sono della generazione 3000.

Molti di voi lo sapranno, ma per chi non lo sapesse c'è una informazione assolutamente vitale che dovete conoscere prima di acquistare una PSP nuova: tutte le PSP generazione 3000 con firmware maggiore del 5.03 non sono per il momento modificabili.

Adesso il problema è: quale PSP devo acquistare per averne la certezza?.

Allora, andiamo con ordine. Partiamo con la semi-certezza che le nuove PSP in bundle (ovvero con gioco compreso) con l'ultimo Need For Speed e Fifa 2010 sono quelle PSP che sono state prodotte e inscatolate da poco. Quindi queste ultime sono quelle che hanno più probabilità di essere quelle con un firmware di versione maggiore alla 5.03. Ricordo infatti che l'aggiornamento ufficiale del firmware 5.03 per psp risale al febbraio del 2009. Quindi tutti i bundle inscatolati e usciti DOPO il febbraio/marzo del 2009 sono a mio avviso da ritenere potenzialmente pericolosi per l'acquisto.

In generale, il mio consiglio, ed è esattamente come ho personalmente fatto e provato, è andare su bundle che sono più vecchi, e anche di molto.
Ho girato 3 grossi centri commerciali: La Coop, Saturn e MediaWorld. Ecco i risultati di quello che ho personalmente sperimentato:

  • Saturn: in tutto il centro commerciale erano presenti solo PSP in bundle con Need For Speed e Fifa 2010, a 169,90 €. Guardando negli scaffali più nascosti relativi alle psp ho trovato qualche psp NON in bundle che però non mi convincevano perchè erano scatole troppo nuove.
  • MediaWorld: stessa identica storia come per Saturn. Non mi sono fidato, e ho preferito andare più sul sicuro.
  • Coop: strano posto dove tentare l'acquisto di una PSP :) ma in ogni caso, è stata la mossa vincente. Nella vetrina espositiva delle PSP c'erano molte cosette interessanti: tutti i nuovi bundle con Need For Speed e Fifa 2010, un paio di PSP serie 2000 (ricordo che sono assolutamente modificabili), e 3 psp versione 3000 in bundle con giochi molto vecchi. I giochi erano Ratchet & Clank e SBK 2008.

Entrambi i giochi, SBK 2009 e Ratchet & Clank erano ASSOLUTAMENTE antecedenti al febbraio del 2009. Quindi, da buon consumatore, sono andato sulla scelta più vecchia e sicuramente funzionante, acquistando (a prezzo anche MAGGIORE rispetto agli ultimi bundle con i giochi più recenti, a 189,90 €) la PSP versione 3000 in bundle con SBK 2008

Accesa, et voilà! Firmware versione 4.20, aggiornabile tramite aggiornamento ufficiale alla versione 5.03, e quindi modificabile con le svariate guide disponibili in internet (e che presto scriverò anche io mettendo tutte le accortezze che bisogna ricordare per avere una modifica che funzioni e che non faccia impazzire per la complessità).

In ultimo, un piccolo riassunto di quello che bisogna cercare e quello che bisogna tenere presente nell'acquisto oculato di una PSP versione 3000 modificabile:

  • Ricordare che le PSP con firmware MAGGIORE del 5.03 non permettono il downgrade del firmware (downgrade = passare ad un firmware più recente) e quindi non sono modificabili
  • Ricordare che il firmware ufficiale 5.03 Sony è uscito nel febbraio del 2009, quindi è necessario acquistare qualcosa di antecedente al febbraio del 2009. Se possibile, fate come me, e cercate la PSP in bundle con SBK 2008.
  • Versioni di PSP con firmware minori della 5.03 possono essere portate alla versione 5.03 con un semplice aggiornamento, e poi modificate senza nessun problema

Per chiarimenti o domande, lasciatemi un commento qui sotto! Grazie per la lettura!



Caricamento...

Vuoi loggarti?

close