似乎無法找到答案,但想知道對數據庫的以下查詢是否容易受到sql注入的影響。是否使用WordPress的get_results()數據庫函數防止sql注入
$searchPostResults = $wpdb->get_results($querySearchVals, OBJECT);
這是用來查詢:
global $wpdb;
$offset = (isset($_POST["moreSearchResults"])) ? $_POST["searchOffset"] : 0;
$querySearchVals = "
SELECT DISTINCT post_title, ID
FROM {$wpdb->prefix}posts
WHERE (";
$sVals = array();
$sVals = explode(" ", $searchVal);
$lastIndex = intval(count($sVals)) - 1;
$orderByCaseVals = "";
for($i = 0; $i<count($sVals);$i++)
{
$querySearchVals .= " post_title LIKE '%$sVals[$i]%' ";
if($i != $lastIndex)
$querySearchVals .= " OR ";
$orderByCaseVals .= " WHEN post_title LIKE '%$sVals[$i]%' THEN ($i + 2) ";
}
$querySearchVals .= ")
AND {$wpdb->prefix}posts.post_type = 'post'
AND post_status = 'publish'
ORDER BY CASE
WHEN post_title LIKE '%$searchVal%' THEN 1
$orderByCaseVals
END
LIMIT $offset, 6;
";
乾杯
什麼是查詢?注入發生在字符串插值或串聯,但是'$ querySearchVals'可以包含任何東西,所以......也許? – tadman
@tadman我已經爲你添加了查詢,謝謝你的幫助 –
是的,這個東西是開放的,超級滿洞的。爲任何和所有用戶數據使用佔位符值。 – tadman