在magic_quotes_gpc打開的狀態下,我們知道當通過表單輸入',或者"則會被自動加/。
而我們也知道如果只是單純要靠這樣實現SQL注射則已經不可能。所以往往忽略了要
進行轉義。在此,要說的
是當引號進入數據庫後的情況。如:
一個表A字段如下
part 材料編號
end 庫存數量
表格B字段如下
part 材料編號
end 庫存數量
date 月結日期
當在執行業務流程D1時,表格A的字段end存在記錄格式如
1000' date='200608'
則當執行D2時,需要把表A的end賦給表B的end.這時寫法可能是:
$sql = "select end from a where part='t1000'";
$quy = mysql_query($sql);
$val = mysql_fetch_array($quy);
$sql = "update b set end='$val[end]' where part='t1000'";
$quy = mysql_query($sql);
這時你就會發現date字段的值同時也被改變了。這就當給我們業務流程在執行過程中
帶來意想不到的收穫。
因此建議在進行數據庫更新操作的時候使用mysql_real_escapte_string(),addslashes()
等函數進行轉義。