CI框架的安全性分析
本文分析了CI框架的安全性。分享給大家供大家參考,具體如下:
用過ci框架的人都知道,ci框架能大大縮短你的代碼。其實(shí),ci框架更能提高你網(wǎng)站的安全性。
防止對數(shù)據(jù)庫的攻擊
數(shù)據(jù)輸入可能引發(fā)許多問題。因?yàn)?HTML 和數(shù)據(jù)庫的限制,數(shù)據(jù)中總包含特定的符號—舉例來說,省略符號和引號—可能導(dǎo)致你的數(shù)據(jù)庫遭到攻擊,最終得到你無法預(yù)料的結(jié)果。
解決方案是在把這些數(shù)據(jù)存入數(shù)據(jù)庫前對這些數(shù)據(jù)進(jìn)行相關(guān)處理。這樣做會浪費(fèi)一些系統(tǒng)時(shí)間,增加一些額外編碼。
CI 的表單輔助函數(shù)會自動地完成這些工作。因此,當(dāng)你編寫一個(gè)輸入框時(shí):
echo form_input('username', 'johndoe');
CI 也隱式地執(zhí)行下列校驗(yàn)函數(shù):
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; }
上述函數(shù)捕獲像“&”這樣的特殊字符,以便在你的頁面提交時(shí)不會造成混亂。你應(yīng)該知道,有些字符會引起問題。
并不是所有的用戶都會中規(guī)中矩的輸入符合要求的信息,你也不可能知道使用瀏覽器輸入信息的是什么人,他們在想什么,做什么。你可以使用 CI 來防止輸入不符合要求的信息。當(dāng)然,你大可不必知道 CI 是如何在幕后為你做到這一切的,你只需要簡單地輸入如下代碼:
echo form_input('username', 'johndoe');
更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
smarty內(nèi)置函數(shù)config_load用法實(shí)例
這篇文章主要介紹了smarty內(nèi)置函數(shù)config_load用法,實(shí)例分析了{(lán)config_load}配置變量的使用技巧,需要的朋友可以參考下2015-01-01PHP+jQuery+Ajax實(shí)現(xiàn)用戶登錄與退出
本文使用Ajax無刷新登錄和退出,從而提升了用戶體驗(yàn)。 若用戶為登錄狀態(tài),則顯示用戶相關(guān)登錄信息,否則顯示登錄表單。2015-04-04destoon調(diào)用企業(yè)會員公司形象圖片的實(shí)現(xiàn)方法
這篇文章主要介紹了destoon調(diào)用企業(yè)會員公司形象圖片的實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下2014-08-08PHPMailer使用教程(PHPMailer發(fā)送郵件實(shí)例分析)
php雖然提供了mail()函數(shù),但并不好用,而PHPMailer是一個(gè)不錯的郵件發(fā)送工具,接下來將詳細(xì)介紹,需要了解的朋友可以參考下2012-12-12