本文分析了CI框架的安全性。分享給大家供大家參考,具體如下:
用過ci框架的人都知道,ci框架能大大縮短你的代碼。其實,ci框架更能提高你網站的安全性。
防止對數據庫的攻擊
數據輸入可能引發許多問題。因為 HTML 和數據庫的限制,數據中總包含特定的符號—舉例來說,省略符號和引號—可能導致你的數據庫遭到攻擊,最終得到你無法預料的結果。
解決方案是在把這些數據存入數據庫前對這些數據進行相關處理。這樣做會浪費一些系統時間,增加一些額外編碼。
CI 的表單輔助函數會自動地完成這些工作。因此,當你編寫一個輸入框時:
echo form_input('username', 'johndoe');
CI 也隱式地執行下列校驗函數:
function form_prep($str = ''){ if ($str === '') { return ''; } $temp = '__TEMP_AMPERSANDS__'; // Replace entities to temporary markers so that // htmlspecialchars won't mess them up $str = preg_replace("/&#(/d+);/", "$temp//1;", $str); $str = preg_replace("/&(/w+);/", "$temp//1;", $str); $str = htmlspecialchars($str); // In case htmlspecialchars misses these. $str = str_replace(array("'", '"'), array("'", """), $str); // Decode the temp markers back to entities $str = preg_replace("/$temp(/d+);/","&#//1;",$str); $str = preg_replace("/$temp(/w+);/","&//1;",$str); return $str;}
上述函數捕獲像“&”這樣的特殊字符,以便在你的頁面提交時不會造成混亂。你應該知道,有些字符會引起問題。
并不是所有的用戶都會中規中矩的輸入符合要求的信息,你也不可能知道使用瀏覽器輸入信息的是什么人,他們在想什么,做什么。你可以使用 CI 來防止輸入不符合要求的信息。當然,你大可不必知道 CI 是如何在幕后為你做到這一切的,你只需要簡單地輸入如下代碼:
echo form_input('username', 'johndoe');