這篇文章給大家分享的是有關(guān)YII Framework框架之安全方案的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
在旅順口等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,旅順口網(wǎng)站建設(shè)費(fèi)用合理。具體如下:
web應(yīng)用的安全問(wèn)題是很重要的,在“黑客”盛行的年代,你的網(wǎng)站可能明天都遭受著攻擊,為了從某種程度上防止被攻擊,YII提供了防止攻擊的幾種解決方案。當(dāng)然這里講的安全是片面的,但是值得一看。
官方提供的解決方案有:如下
1. 跨站腳本攻擊的防范
跨站腳本攻擊(簡(jiǎn)稱(chēng) XSS),即web應(yīng)用從用戶(hù)收集用戶(hù)數(shù)據(jù)。 攻擊者常常向易受攻擊的web應(yīng)用注入JavaScript,VBScript,ActiveX,HTML或 Flash來(lái)迷惑訪(fǎng)問(wèn)者以收集訪(fǎng)問(wèn)者的信息。 舉個(gè)例子,一個(gè)未經(jīng)良好設(shè)計(jì)的論壇系統(tǒng)可能不經(jīng)檢查就顯示用戶(hù)所輸入的內(nèi)容。 攻擊者可以在帖子內(nèi)容中注入一段惡意的JavaScript代碼。 這樣,當(dāng)其他訪(fǎng)客在閱讀這個(gè)帖子的時(shí)候,這些JavaScript代碼就可以在訪(fǎng)客的電腦上運(yùn)行了。
一個(gè)防范XSS攻擊的最重要的措施之一就是:在顯示用戶(hù)輸入的內(nèi)容之前進(jìn)行內(nèi)容檢查。 比如,你可以對(duì)內(nèi)容中的HTML進(jìn)行轉(zhuǎn)義處理。但是在某些情況下這種方法就不可取了,因?yàn)檫@種方法禁用了所有的HTML標(biāo)簽。
Yii集成了HTMLPurifier并且為開(kāi)發(fā)者提供了一個(gè)很有用的組件CHtmlPurifier, 這個(gè)組件封裝了HTMLPurifier類(lèi)。它可以將通過(guò)有效的審查、安全和白名單功能來(lái)把所審核的內(nèi)容中的所有的惡意代碼清除掉,并且確保過(guò)濾之后的內(nèi)容過(guò)濾符合標(biāo)準(zhǔn)。
CHtmlPurifier組件可以作為一個(gè)widget或者filter來(lái)使用。 當(dāng)作為一個(gè)widget來(lái)使用的時(shí)候,CHtmlPurifier可以對(duì)在視圖中顯示的內(nèi)容進(jìn)行安全過(guò)濾。 以下是代碼示例:
<?php $this->beginWidget('CHtmlPurifier'); ?> //...這里顯示用戶(hù)輸入的內(nèi)容... <?php $this->endWidget(); ?>
2. 跨站請(qǐng)求偽造攻擊的防范
跨站請(qǐng)求偽造(簡(jiǎn)稱(chēng)CSRF)攻擊,即攻擊者在用戶(hù)瀏覽器在訪(fǎng)問(wèn)惡意網(wǎng)站的時(shí)候,讓用戶(hù)的瀏覽器向一個(gè)受信任的網(wǎng)站發(fā)起攻擊者指定的請(qǐng)求。 舉個(gè)例子,一個(gè)惡意網(wǎng)站有一個(gè)圖片,這個(gè)圖片的src地址指向一個(gè)銀行網(wǎng)站:http://bank.example/withdraw?transfer=10000&to=someone。 如果用戶(hù)在登陸銀行的網(wǎng)站之后訪(fǎng)問(wèn)了這個(gè)惡意網(wǎng)頁(yè),那么用戶(hù)的瀏覽器會(huì)向銀行網(wǎng)站發(fā)送一個(gè)指令,這個(gè)指令的內(nèi)容可能是“向攻擊者的帳號(hào)轉(zhuǎn)賬10000元”。 跨站攻擊方式利用用戶(hù)信任的某個(gè)特定網(wǎng)站,而CSRF攻擊正相反,它利用用戶(hù)在某個(gè)網(wǎng)站中的特定用戶(hù)身份。
要防范CSRF攻擊,必須謹(jǐn)記一條:GET請(qǐng)求只允許檢索數(shù)據(jù)而不能修改服務(wù)器上的任何數(shù)據(jù)。 而POST請(qǐng)求應(yīng)當(dāng)含有一些可以被服務(wù)器識(shí)別的隨機(jī)數(shù)值,用來(lái)保證表單數(shù)據(jù)的來(lái)源和運(yùn)行結(jié)果發(fā)送的去向是相同的。
Yii實(shí)現(xiàn)了一個(gè)CSRF防范機(jī)制,用來(lái)幫助防范基于POST的攻擊。 這個(gè)機(jī)制的核心就是在cookie中設(shè)定一個(gè)隨機(jī)數(shù)據(jù),然后把它同表單提交的POST數(shù)據(jù)中的相應(yīng)值進(jìn)行比較。
默認(rèn)情況下,CSRF防范是禁用的。如果你要啟用它,可以編輯應(yīng)用配置 中的組件中的CHttpRequest部分。
代碼示例:
return array( 'components'=>array( 'request'=>array( 'enableCsrfValidation'=>true, ), ), );
要顯示一個(gè)表單,請(qǐng)使用CHtml::form而不要自己寫(xiě)HTML代碼。因?yàn)镃Html::form可以自動(dòng)地在表單中嵌入一個(gè)隱藏項(xiàng),這個(gè)隱藏項(xiàng)儲(chǔ)存著驗(yàn)證所需的隨機(jī)數(shù)據(jù),這些數(shù)據(jù)可在表單提交的時(shí)候發(fā)送到服務(wù)器進(jìn)行驗(yàn)證。
3. Cookie攻擊的防范
保護(hù)cookie免受攻擊是非常重要的。因?yàn)閟ession ID通常存儲(chǔ)在Cookie中。 如果攻擊者竊取到了一個(gè)有效的session ID,他就可以使用這個(gè)session ID對(duì)應(yīng)的session信息。
這里有幾條防范對(duì)策:
您可以使用SSL來(lái)產(chǎn)生一個(gè)安全通道,并且只通過(guò)HTTPS連接來(lái)傳送驗(yàn)證cookie。這樣攻擊者是無(wú)法解密所傳送的cookie的。
設(shè)置cookie的過(guò)期時(shí)間,對(duì)所有的cookie和seesion令牌也這樣做。這樣可以減少被攻擊的機(jī)會(huì)。
防范跨站代碼攻擊,因?yàn)樗梢栽谟脩?hù)的瀏覽器觸發(fā)任意代碼,這些代碼可能會(huì)泄露用戶(hù)的cookie。
在cookie有變動(dòng)的時(shí)候驗(yàn)證cookie的內(nèi)容。
Yii實(shí)現(xiàn)了一個(gè)cookie驗(yàn)證機(jī)制,可以防止cookie被修改。啟用之后可以對(duì)cookie的值進(jìn)行HMAC檢查。
Cookie驗(yàn)證在默認(rèn)情況下是禁用的。如果你要啟用它,可以編輯應(yīng)用配置 中的組件中的CHttpRequest部分。
代碼示例:
return array( 'components'=>array( 'request'=>array( 'enableCookieValidation'=>true, ), ), );
一定要使用經(jīng)過(guò)Yii驗(yàn)證過(guò)的cookie數(shù)據(jù)。使用Yii內(nèi)置的cookies組件來(lái)進(jìn)行cookie操作,不要使用$_COOKIES。
// 檢索一個(gè)名為$name的cookie值 $cookie=Yii::app()->request->cookies[$name]; $value=$cookie->value; ...... // 設(shè)置一個(gè)cookie $cookie=new CHttpCookie($name,$value); Yii::app()->request->cookies[$name]=$cookie;
感謝各位的閱讀!關(guān)于“YII Framework框架之安全方案的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞名稱(chēng):YIIFramework框架之安全方案的示例分析-創(chuàng)新互聯(lián)
分享鏈接:http://www.rwnh.cn/article26/jcocg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、域名注冊(cè)、小程序開(kāi)發(fā)、用戶(hù)體驗(yàn)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容