
2014-06-26 | &nb≤<♠∏sp; 發布者:梁國(guó)芳&nγβbsp; | 查®≥看(kàn):3320次
Thinkphp永遠(yuǎn)不(bù)要(yào)相(xiε<β♦àng)信客戶端提交的(de)數(shù)據,所以對(≈¶σ$duì)于輸入數(shù)據的(de)過濾勢在必行(xíng),我們≠≤建議(yì):
使用(yòng)系統內(nèi)置的(de)I函數(shù)是(shì)避免輸入數(shù)據出現(xiàn)ε∞✘±安全隐患的(de)重要(yào)手段,I函數(s ↓÷hù)默認的(de)過濾方法是(shì)htmlspecialchars,如(rú)果我們需要(yào)采用(yòng)其他(tā)的δ<(de)方法進行(xíng)安全過濾,有(yǒu)兩φλα種方式:
如(rú)果是(shì)全局的(de)過濾方法,那(nà)麽可(kě)以設™α>置DEFAULT_FILTER,例如(rú):
'DEFAULT_FILTER' => 'strip_tags',
設置了(le)DEFAULT_FILTER後,所有(yǒu)的(de)I≈≈★函數(shù)調用(yòng)默認都(dōu)會(h↑≠uì)使用(yòng)strip_tags進行(xíng)過濾。
當然,我們也(yě)可(kě)以設置多(duō)個(gè)過濾方法™♥,例如(rú):
'DEFAULT_FILTER' => 'strip_tags,stripslashes',
如(rú)果是(shì)僅需要(yào)對(duì)個(gè)★♠δ别數(shù)據采用(yòng)特殊的(de)過濾方法,可(kě)以∏€在調用(yòng)I函數(shù)的(de)時(shí)候傳入過濾方法≠₹•,例如(rú):
I('post.id',0,'intval'); // 用(yòng)intval過濾$_POST['id']I('get.title','','strip_tags'); // 用(yòng)strip_tags過σ§←♣濾$_GET['title']
要(yào)盡量避免直接使用(yòng)$_GET $_P✘Ω OST $_REQUEST 等數(shù)據,這(zhè)些 ®(xiē)可(kě)能(néng)會(huì)導緻安'<÷¥全的(de)隐患。 就(jiù)算(suàn)你(nǐ)要(yà✔©o)獲取整個(gè)$_GET數(shù)據,我們也(yě)建議(yì)你(n ǐ)使用(yòng)
I('get.')的(de)方式
如(rú)果你(nǐ)沒有(yǒu)使用(yòng)I函¥↔↑數(shù)進行(xíng)數(shù)據過濾βγ₽的(de)話(huà),還(hái)可(kě)以在模型的(de)寫λ入操作(zuò)之前調用(yòng)filter方法對(duì)數(shù)據進行(xíng)安全過濾,例如(→φrú):
$this->data($data)->filter('strip_tags')->add();
