我正在用小而簡單的數據庫創建一個php頁面。試圖瞭解我的頁面是否易受攻擊
當我在線訪問它並嘗試在URL中傳遞參數「length」時:index.php/?length=1
它工作正常,並獲取數據。
如果我添加了單引號像index.php/?length=1'
我在頁面上沒有SQL錯誤...
,但如果我用index.php/?length=-1
我看到SQL錯誤在我的網頁。
這是否意味着我的頁面很脆弱?
如何進一步測試並解決問題?
編輯:添加的代碼
$length = $wpdb->get_results($wpdb->prepare("SELECT `title`, `website`, `material`, `color`, `width`, `height`, `group`, `category`, `numbers_positive`, `numbers_negative`, `custom` FROM {$wpdb->shirts} WHERE `id` = '%d' ORDER BY `rank` ASC, `id` ASC", intval($shirt_id)));
if (!isset($shirt[0])) return false;
$shirt= $shirt[0];
$shirt->title = htmlspecialchars(stripslashes($shirt->title), ENT_QUOTES);
$shirt->custom = maybe_unserialize($shirt->custom);
$shirt->color = maybe_unserialize($shirt->color);
if ($this->hasBridge()) {
global $lmBridge;
$shirt->shirtColor = $lmBridge->getShirtColor($shirt->color);
}
$shirt = (object)array_merge((array)$shirt,(array)$shirt->custom);
unset($shirt->custom);
return $shirt;
謝謝你回到我身邊!請耐心等待,因爲我正在努力學習和理解。 這是代碼:https://pastebin.com/sXhtPG7r 這段代碼在哪裏可能出現問題? 如果真的有問題,基於這段代碼我該如何嘗試並注入url?因爲我所做的基本測試沒有任何問題。 再次感謝 – qefseri
啊,你在WordPress中使用準備好的語句。這確實使它更安全,因爲框架爲您處理了很多安全檢查。您看到的SQL錯誤可能是因爲id -1(負1)不存在,並且'intval'仍然會返回負數。被添加的報價被'intval'刪除 – Ice76