Archivio

Archivio per la categoria ‘Opensource World’

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.

MySQL 5.1 GA, attenzione a possibili bug fatali

3 December 2008 maxgrante Nessun commento

Di seguito l’articolo in italiano di Punto Informatico:

http://punto-informatico.it/2494271/PI/News/mysql-51-una-falsa-partenza.aspx

E qui l’articolo ufficiale in lingua inglese di Michael Widenius ex CTO della mysql AB acquistata tempo fa da SUN.

http://monty-says.blogspot.com/2008/11/oops-we-did-it-again-mysql-51-released.html

Io per adesso rimango sul 5.0 sul quale onestamente ho avuto pochi problemi.

Benchmark Apache 2.2.x VS Lighttpd 1.4.x

22 September 2008 maxgrante Nessun commento

Semplice benchmark che confronta apache 2.2.x e Lighttpd 1.4.x nel servire contenuti statici:

Benchmark apache 2.2.x VS Lighttpd 1.4.x

Campi float e decimal in MySQL

4 September 2008 maxgrante Nessun commento

Un piccolo tips & tricks che magari servira’ anche a qualcun altro…
Per tanto tempo ho sempre pensato che quando definisco un campo decimal 10,2 indico che avra’ 10 numeri interi e due decimali. Idem per float.

Invece scopro che mi sbagliavo! La cifra 10 si riferisce ai digit e quindi il massimo numero di decimali diventa 10-2 = 8!

Deflate su massimo-caselli.com

18 July 2008 maxgrante 2 commenti

A partire da oggi il blog utilizza mod_deflate, o almeno penso visto che non riesco a far fare il logging delle pagine che vengono deflattate via .htaccess e che il blog si appoggia ad un hosting condiviso normalissimo.

Se qualcuno fosse a conoscenza di qualche modo (da firebug non lo capisco) per individuare da client se un server utilizza mod_deflate e me lo segnala farà cosa ben gradita.

Spero di poter ottenere una maggiore rapidità nelle pagine visto che di fatto il blog è composto tutto da html, css etc…

[UPDATE] A quanto pare l’entry che ho messo nell’.htaccess viene ignorata… infatti con questo tool:
http://www.gidnetwork.com/tools/gzip-test.php

Pare che le pagine del blog non siano zippate, mentre ad esempio quelle di www.190.it si… :-(