PHP安全(續1)

在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()

等函數進行轉義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章