我正在尋找將應用程序的圖像存儲在MSSQL數據庫中。 (據我所知,有這樣或文件系統存儲是否是更好的一些爭論,這是另一個線程雖然)。我看的線沿線做類似http://forum.codecall.net/topic/40286-tutorial-storing-images-in-mysql-with-php/但笨東西,東西:使用PHP在DB中存儲圖像時的安全/消毒
foreach ($_FILES as $upload_name => $info) {
if ($info['name']) {
// Temporary file name stored on the server
$tmpName = $info['tmp_name'];
// Read the file
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
fclose($fp);
//model code consolidated here for ease of question-asking
$db = $this->load->database();
$stmt = $db->insert('my_table', array('image' => $data));
}
}
我的問題大多是沿着安全線。基本上我有什麼特別的擔心,我應該有消毒圖像二進制數據插入與其他類型的字符串數據?我從上面鏈接的站點的代碼中拿出addslashes(),因爲我知道CI的活動記錄自己做了一些消毒,但我不知道是否最好擁有它(或者完成其他一些準備工作)。
安全意義何在?什麼是你害怕發生的事情的例子?順便說一下:'addslashes'不應該用於SQL查詢中的參數轉義,這不是它的目的。你只是在問關於SQL注入或其他什麼? – 2013-02-12 22:52:39
如果你的數據是一個blob,並且你從不操縱它,否則沒有理由對它進行消毒。重要的問題是:如何從存儲中讀取數據時使用這些數據?您是否將其存儲在客戶端的臨時文件中? – didierc 2013-02-12 23:16:19
@WesleyMurch是的,幾乎只是想知道SQL注入;沒有存儲圖像數據庫之前,所以不能確定是否有額外的擔憂。 – rosalindwills 2013-02-12 23:23:51