大大们,我有一个function 想让大家为我解答
function updatethis(){
$updateArray = $_POST['op'];
$listing = 1;
foreach ($updateArray as $recordIDValue) {
$update_data = array(
'position' => $listingCounter
);
$this->model->update2('table', 'id', $recordIDValue, $updatedata);
$listing = $listing + 1;
}
}
function update2($table_name, $field_name, $field_id, $update_data, $field_name2 = NULL, $field_id2 = NULL)
{
$this->db->where($field_name, $field_id);if (!empty($field_name2)) $this->db->where($field_name2, $field_id2); if ($this->db->update($table_name, $update_data)) { return TRUE; } else { return FALSE; }
}
$POST['op'][] 是个 array
好像
op[]: 1
op[]: 3
op[]: 5
op[]: 6
op[]: 8
op[]: 2
op[]: 12
请问上面的sql injection有什么办法阻止吗? 还是array要如何预防 sql injection?
我記得如果你有用CI的Query builder 是會自動防SQL injection的,不用自己處理
如果是CI3,兩種方式:
看一下說明:
https://codeigniter.com/userguide3/libraries/input.html
/*
|--------------------------------------------------------------------------
Global XSS Filtering |
---|
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
| WARNING: This feature is DEPRECATED and currently available only
| for backwards compatibility purposes!
|
*/
我看到这说明说已经淘汰了,请问有影响吗?
他還是有效~
如果不用內建的,其實用其他的像是 http://htmlpurifier.org/ 也是可以