Sous le principe «si ça marche comme un canard et ça sonne comme un canard», il semble bien que les requêtes à saveur SQL prises en charge par SimpleDB d'Amazon devraient être sensibles aux attaques par injection SQL. Voici un exemple simple qui suppose l'entrée de l'attaquant va dans la variable catégorie $, et qu'il peut deviner un nom de colonne:Comment puis-je protéger Amazon SimpleDB de SQL Injection?
$category = "Clothes' OR Category LIKE '%";
$results = $sdb->select("SELECT * FROM `{$domain}` WHERE Category = '$category'");
Si vous jouez le jeu de la maison, ces lignes peuvent être un en place remplacement de la ligne 119 dans le fichier html-sdb_create_domain_data.php
dans l'exemple de code dans le SDK PHP d'Amazon (1.2). Amazon publie quoting rules, et je suppose que je pourrais écrire quelque chose qui assure que tout ou partie de l'entrée de l'utilisateur est doublé ... mais j'ai toujours compris que s'échapper est fondamentalement une course aux armements, ce qui rend mon paramétrage de l'arme de choix lors de l'utilisation, par exemple, MySQL.
Quelles sont les autres personnes qui utilisent pour défendre les requêtes SimpleDB?