10
根據「如果它像鴨子一樣走路,它聽起來像鴨子一樣」的原則,它似乎像亞馬遜的SimpleDB支持的SQL風格的查詢應該容易受到SQL注入式攻擊。下面是假定攻擊者的輸入是進入變量$類別,而且他能猜對列名一個簡單的例子:如果你玩的主場比賽如何保護Amazon SimpleDB免受SQL注入?
$category = "Clothes' OR Category LIKE '%";
$results = $sdb->select("SELECT * FROM `{$domain}` WHERE Category = '$category'");
,這些線可以就地替換亞馬遜PHP SDK(1.2)中示例代碼中文件html-sdb_create_domain_data.php
中的第119行。
亞馬遜發佈quoting rules,我想我可以寫些東西來確保用戶輸入中的任何「或」都會加倍......但我一直都明白,轉義基本上是一場軍備競賽,它使參數化成爲我的武器在使用選擇,例如,MySQL的。
什麼是使用防守SimpleDB的查詢其他人呢?