一般來說,防禦SQL注入的最佳方式,就是使用預編譯語句,綁定變量。
使用預編譯的SQL語句,SQL語句的語義不會發生變化。變量用?表示,攻擊者無法改變SQL的結構。
預處理機制有什麼優點?它可以防禦SQL注入攻擊。
thinkphp寫法
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
或者
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
非常高興thinkphp終於支持預處理SQL語句了。
最佳答案