Archivio

Archivio per la categoria ‘PHP il turbo nel web’

VMware server 2.0 console plugin su Firefox 3.6 e IE su sistemi operativi 64 bit

19 February 2010 maxgrante 2 commenti

Per chi avesse appena aggiornato a firefox 3.6 oppure installato ex-novo, fate attenzione che la console plugin per firefox di VMware 2.0 non funziona.

La cosa più semplice è di usarla su internet explorer o in alternativa downgradare a firefox 3.5

Attenzione ancora però, se avete il sistema operativo a 64 bit come nel mio caso, la console funziona solamente nella versione a 32 bit di internet explorer.

Installazione IonCube Loader su Zend Server CE in Windows

27 October 2009 maxgrante Nessun commento

Semplice guida per installare IonCube Loader su Zend Server CE in Windows, l’how to standard non funziona:

1) Scaricare pacchetto e scompattare sul desktop (versione NON TS):
http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_win_nonts_x86.zip

2) Copiare il file
ioncube_loader_win_5.2.dll in:
C:\Programmi\Zend\ZendServer\lib\phpext

3) Aprire il file con editor testuale:
C:\Programmi\Zend\ZendServer\etc\php.ini
Sopra la riga:
zend_extension=”C:\Programmi\Zend\ZendServer\lib\ZendExtensionManager.dll”
Inserire queste due righe:
zend_extension=”C:\Programmi\Zend\ZendServer\lib\phpext\ioncube_loader_win_5.2.dll”
zend_extension_ts=”C:\Programmi\Zend\ZendServer\lib\phpext\ioncube_loader_win_5.2.dll”

Salvare e riavviare apache.

Verificare in phpinfo() se l’estensione viene caricata correttamente.

How to installazione mssql su Zend Server CE su linux con freetds

26 June 2009 maxgrante Nessun commento

Di seguito alcuni semplici passaggi per installare su Zend Server CE installato su linux l’estensione mssql, freetds, per poter utilizzare un server MSSQL da php su macchina Linux.

Per prima cosa, installiamo freetds:
yum install freetds

Dopo procediamo a installare l’estensione mssql di ZS che non è fornita di default:
yum install php-mssql-zend-ce

L’estensione sarà attivata da sola. Meglio comunque riavviare lo zend server.

Andare all’interno di /etc/freetds.conf

Mettere:
# Myserver
[mysqlserver]
host = 192.168.X.X
port = 1433
tds version = 8.0

A questo punto per connettersi da php utilizzare:

mssql_connect(“192.168.X.X”, “login”, “pwd”) or die (“Failed”);

E il gioco è fatto.

Transazioni con Zend Framework

26 March 2009 maxgrante Nessun commento

Recentemente avendo sviluppato nelle ore serali un progetto web ( www.animalhelp-spb.com ) per supportare e cercare di far trovare casa a cani e gatti randagi russi, ho deciso di realizzarlo iniziando a farmi le ossa con Zend Framework.

Premetto che devo ancora dettagliare ed approfondire la conoscenza di questo strumento, in particolare nell’utilizzo secondo la logica MVC (model – viewer – controller), però l’ho trovato molto interessante, in particolare per la gestione delle transazioni.

In sostanza prima di tutto istanzio la classe corretta parametrizzando gli accessi al database:

$dbparams = array(‘host’ => DB_HOST, ‘username’ => DB_USER, ‘password’ => DB_PWD, ‘dbname’ => DB_NAME);
$db = new Zend_Db_Adapter_Mysqli($dbparams);
$db->setFetchMode(Zend_Db::FETCH_OBJ);

Successivamente apro la transazione:

$db->beginTransaction();
try
{
…. query 1 ….
…. query 2 ….

$db->commit();
}
catch (Exception $e)
{
$db->rollBack();
….
}

In sostanza nel caso vi sia un errore all’interno della transazione viene automaticamente rollbackato secondo una modalità simile a quella usata da adodb “Smart Transaction”.

Potenziale SQL Injection con AdoDB e driver mysqli

29 December 2008 maxgrante 1 commento

[SEGNALO CHE HO SCOPERTO QUESTA COSA DA POCO E LIMITANDOMI AD ALCUNI TEST E PROVE VELOCI MA REALI, PERCUI OGNI EVENTUALE APPROFONDIMENTO/SMENTITA ETC... E' BEN ACCETTO]

Segnalo una problematica di sicurezza abbastanza importante per coloro che utilizzano adodb utilizzando il driver mysqli (le nuove funzioni di connessione con mysql native in php 5).

In sostanza le nuove funzioni mysqli consentono mediante la seguente funzione: mysqli_multi_query di poter eseguire più statement SQL in mysql come ad esempio:

SELECT * FROM TBL1 WHERE id = 1; DROP table TBL2;

Questa query utilizzando le vecchie librerie mysql (es. mysql_connect) dava errore.
La possibilità di eseguire più query SQL è supportata su mysql 5.0.x anche da command line, non saprei se anche vecchie versioni lo consentivano.

Questo significa che se per esempio utilizziamo in php una query del tipo:

$sql = “SELECT * FROM tbl1 WHERE id = $_GET['id']“; // (Premesso che venga come minimo fatto l’escape dei caratteri come ‘ o “)

Possiamo rischiare che qualche burlone passi in GET il seguente valore:
“1; DROP TABLE tbl2;”
Il che comporterebbe che l’SQL eseguito sia:

SELECT * FROM TBL1; DROP table TBL2;

Di fatto quindi con AdoDB con driver mysqli, la seconda query viene effettivamente eseguita.

Diventa quindi essenziale fare un controllo sull’input dell’utente per $_GET['id']. Ad esempio verificando che sia un numero intero.

La soluzione più rapida è quella di cambiare la connect di AdoDB dicendogli di usare il driver mysql anziché mysqli, la soluzione migliore e da fare comunque resta in ogni caso il filtraggio di tutti i dati in input.