Secondo il principio "se cammina come un'anatra e suona come un'anatra", sembra sicuro che le query basate su SQL che SimpleDB di Amazon supporta siano suscettibili agli attacchi di tipo SQL injection. Ecco un semplice esempio che assume ingresso dell'attaccante sta andando nella $ categoria variabile e che può indovinare un nome di colonna:Come posso proteggere Amazon SimpleDB da SQL Injection?
$category = "Clothes' OR Category LIKE '%";
$results = $sdb->select("SELECT * FROM `{$domain}` WHERE Category = '$category'");
Se si sta giocando la partita in casa, queste linee possono essere un posto in sostituzione della riga 119 nel file html-sdb_create_domain_data.php
nel codice di esempio in PHP SDK di Amazon (1.2).
Amazon pubblica quoting rules e suppongo di poter scrivere qualcosa che assicuri che ogni "o" input dell'utente venga raddoppiato ... ma ho sempre capito che la fuga è fondamentalmente una corsa agli armamenti, il che rende la parametrizzazione la mia arma di scelta quando si utilizza, ad esempio, MySQL.
Quali sono le altre persone che utilizzano per difendere le query SimpleDB?