Com\’è dura la professione!

13 febbraio 2007

Marzo, il mese dei bug e di PHP

Filed under: Linux,Open Source,php,Programmazione — lbell @ 21:42

Marzo sarà il mese dei bug di PHP. Stefan Esser, il fondatore del progetto Hardened-PHP, deluso dal comportamento del team di sviluppatori e degli addetti alla sicurezza del linguaggio probabilmente più diffuso nelle applicazioni web, ha deciso di rivelare un bug al giorno per smuovere le acque. Lo si può leggere sul suo blog e in un’intervista su SecurityFocus. PHP è l’arma principale dei siti web che sfruttano Apache e software Open Source e fa molta impressione leggere le serie accuse che Esser muove ai suoi sviluppatori. Sapere che applicazioni come i CMS più diffusi, Typo3, Drupal, Mambo ed altre applicazioni largamente diffuse come Horde, Mediawiki, WordPress possono essere a rischio al di là di come sono state scritte, ma solo per il sistema con cui sono state realizzate, lascia un po’ di amaro in bocca, tanto più se si pensa all’enorme numero di siti che resteranno unpatched per molto tempo ancora (gli aggiornamenti solitamente hanno una inerzia molto alta nella maggior parte dei casi). Chi attacca i sistemi conosce ovviamente questi problemi molto bene, i web master no, solo ora se ne potranno rendere conto. Un discorso a parte merita il come sono state scritte le applicazioni stesse, ma questa è un’altra storia.

Forse una lezione salutare, ma di cui non se ne sentiva la necessità.

Una notizia che spicca proprio nel momento in cui Microsoft sta profondendo il suo massimo sforzo nel campo della sicurezza. E’ molto tempo che non esce una vulnerabilità seria per IIS6 e l’uso di C# ha permesso di abbattere i problemi di errori dovuti a buffer overflow ( anche se qualche problema resta….. ). Viene veramente da pensare se sia il caso di migrare i siti ad ASP.NET, magari nascosto dietro un Apache come protezione supplementare.

3 gennaio 2007

Provare un sistema LAMP sotto Windows senza fatica.

Filed under: Linux,Open Source,php — lbell @ 21:05

Nel DVD allegato al numero di PC Professionale di questo mese si trova una macchina virtuale vmware (e relativo player) contente una installazione di LAMP, (Ubuntu) Linux, Apache come server web, MySQL database e PHP come linguaggio di script ed una serie di applicazioni già configurate, pronte per essere provate, una ventina in totale. Si va dalla suite di collaborazione eGroupware ai gestori di contenuti (CMS) ai programmi di e-commerce, ai gestori di blog. L’uso di una macchina virtuale permette anche a chi ha solo Windows di toccare con mano gli applicativi web in questione senza dover installare nulla, a parte il player di vmware, ovviamente. C’è da sottolineare che non serve comunque utilizzare Linux per gestire la maggiore parte degli applicativi in questione visto che molti funzionano anche sotto Windows e IIS, data la portabilità di PHP e MySQL.

14 settembre 2006

Estrarre testo da un file OpenDocument con PHP 5

Filed under: php,Programmazione — lbell @ 23:14

Il formato OpenDocument ci permette di manipolare i documenti possedendo solo qualche nozione di Xml. Stavo facendo delle prove di estrazione di testo con PHP 5 da un documento in modo dal poterlo indicizzare, cercando di scrivere meno codice possibile e ho prodotto una ventina di righe, utilizzando le librerie SimpleXML e unzip, una utility a linea di comando dato un documento con un certo nome di file fisso (diciamo b.odt) Attezione: se intendete provare questo programma sappiate che vi crea/sovrascrive un eventuale file content.xml nella directory di lavoro

<?php
function esegui($docname)
{
  shell_exec('/usr/bin/unzip'.' '.$docname .'  content.xml');
  $xml = simplexml_load_file('content.xml');
  $nodes = $xml->xpath('//text:p');
  foreach( $nodes as $item )
    echo $item." ";
  //unlink  commentato per evitare malintesi
}
esegui('b.odt');
?>

ed ottengo il testo. 12 righe di codice (commenti compresi) per ricavare il contenuto di un documento. Non male, ma si può fare di meglio: 1 riga sola

 

<?php shell_exec('/usr/bin/unzip b.odt content.xml');foreach( simplexml_load_file('content.xml')->xpath('//text:p') as $item ) echo $item." ";?>

e funziona. Dopo tante esperienze di programmazione non sono più abituato alla semplicità. Grazie a PHP ed a OpenDocument.

Blog su WordPress.com.