麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

YII Framework框架教程之安全方案詳解

2024-05-04 23:43:50
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了YII Framework框架教程之安全方案,結合實例形式詳細分析了針對跨站腳本攻擊,跨站請求偽造攻擊及Cookie攻擊的防范技巧,需要的朋友可以參考下
 

本文講述了YII Framework框架的安全方案。分享給大家供大家參考,具體如下:

web應用的安全問題是很重要的,在“黑客”盛行的年代,你的網站可能明天都遭受著攻擊,為了從某種程度上防止被攻擊,YII提供了防止攻擊的幾種解決方案。當然這里講的安全是片面的,但是值得一看。

官方提供的解決方案有:如下

1. 跨站腳本攻擊的防范

跨站腳本攻擊(簡稱 XSS),即web應用從用戶收集用戶數據。 攻擊者常常向易受攻擊的web應用注入JavaScript,VBScript,ActiveX,HTML或 Flash來迷惑訪問者以收集訪問者的信息。 舉個例子,一個未經良好設計的論壇系統可能不經檢查就顯示用戶所輸入的內容。 攻擊者可以在帖子內容中注入一段惡意的JavaScript代碼。 這樣,當其他訪客在閱讀這個帖子的時候,這些JavaScript代碼就可以在訪客的電腦上運行了。

一個防范XSS攻擊的最重要的措施之一就是:在顯示用戶輸入的內容之前進行內容檢查。 比如,你可以對內容中的HTML進行轉義處理。但是在某些情況下這種方法就不可取了,因為這種方法禁用了所有的HTML標簽。

Yii集成了HTMLPurifier并且為開發者提供了一個很有用的組件CHtmlPurifier, 這個組件封裝了HTMLPurifier類。它可以將通過有效的審查、安全和白名單功能來把所審核的內容中的所有的惡意代碼清除掉,并且確保過濾之后的內容過濾符合標準。

CHtmlPurifier組件可以作為一個widget或者filter來使用。 當作為一個widget來使用的時候,CHtmlPurifier可以對在視圖中顯示的內容進行安全過濾。 以下是代碼示例:

<?php $this->beginWidget('CHtmlPurifier'); ?>//...這里顯示用戶輸入的內容...<?php $this->endWidget(); ?>

2. 跨站請求偽造攻擊的防范

跨站請求偽造(簡稱CSRF)攻擊,即攻擊者在用戶瀏覽器在訪問惡意網站的時候,讓用戶的瀏覽器向一個受信任的網站發起攻擊者指定的請求。 舉個例子,一個惡意網站有一個圖片,這個圖片的src地址指向一個銀行網站:http://bank.example/withdraw?transfer=10000&to=someone。 如果用戶在登陸銀行的網站之后訪問了這個惡意網頁,那么用戶的瀏覽器會向銀行網站發送一個指令,這個指令的內容可能是“向攻擊者的帳號轉賬10000元”。 跨站攻擊方式利用用戶信任的某個特定網站,而CSRF攻擊正相反,它利用用戶在某個網站中的特定用戶身份。

要防范CSRF攻擊,必須謹記一條:GET請求只允許檢索數據而不能修改服務器上的任何數據。 而POST請求應當含有一些可以被服務器識別的隨機數值,用來保證表單數據的來源和運行結果發送的去向是相同的。

Yii實現了一個CSRF防范機制,用來幫助防范基于POST的攻擊。 這個機制的核心就是在cookie中設定一個隨機數據,然后把它同表單提交的POST數據中的相應值進行比較。

默認情況下,CSRF防范是禁用的。如果你要啟用它,可以編輯應用配置 中的組件中的CHttpRequest部分。

代碼示例:

return array(  'components'=>array(    'request'=>array(      'enableCsrfValidation'=>true,    ),  ),);

要顯示一個表單,請使用CHtml::form而不要自己寫HTML代碼。因為CHtml::form可以自動地在表單中嵌入一個隱藏項,這個隱藏項儲存著驗證所需的隨機數據,這些數據可在表單提交的時候發送到服務器進行驗證。

3. Cookie攻擊的防范

保護cookie免受攻擊是非常重要的。因為session ID通常存儲在Cookie中。 如果攻擊者竊取到了一個有效的session ID,他就可以使用這個session ID對應的session信息。

這里有幾條防范對策:

您可以使用SSL來產生一個安全通道,并且只通過HTTPS連接來傳送驗證cookie。這樣攻擊者是無法解密所傳送的cookie的。

設置cookie的過期時間,對所有的cookie和seesion令牌也這樣做。這樣可以減少被攻擊的機會。

防范跨站代碼攻擊,因為它可以在用戶的瀏覽器觸發任意代碼,這些代碼可能會泄露用戶的cookie。

在cookie有變動的時候驗證cookie的內容。

Yii實現了一個cookie驗證機制,可以防止cookie被修改。啟用之后可以對cookie的值進行HMAC檢查。

Cookie驗證在默認情況下是禁用的。如果你要啟用它,可以編輯應用配置 中的組件中的CHttpRequest部分。

代碼示例:

return array(  'components'=>array(    'request'=>array(      'enableCookieValidation'=>true,    ),  ),);

一定要使用經過Yii驗證過的cookie數據。使用Yii內置的cookies組件來進行cookie操作,不要使用$_COOKIES。

// 檢索一個名為$name的cookie值$cookie=Yii::app()->request->cookies[$name];$value=$cookie->value;......// 設置一個cookie$cookie=new CHttpCookie($name,$value);Yii::app()->request->cookies[$name]=$cookie;
 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄污免费网站 | 毛片网站网址 | 日产精品一区二区三区在线观看 | 亚洲精品欧美二区三区中文字幕 | 色妞视频男女视频 | 久久精品视频日本 | 久久网国产 | 黄色片免费看网站 | 毛片118极品美女写真 | 美女在线视频一区二区 | 午夜久| 精精国产xxxx视频在线播放7 | 啊~用cao嗯力cao烂我视频 | vidz 98hd| 九色国产 | 毛片免费大全短视频 | 久久污 | 草b视频在线观看 | 久久精品视频2 | 精品一区二区电影 | 999插插插 | 第一区免费在线观看 | 国产盼盼私拍福利视频99 | 午夜伦情电午夜伦情电影 | 欧美一区二区黄 | 中文字幕在线观看91 | 久久久www免费看片 亚洲综合视频一区 | 制服丝袜成人动漫 | 永久av在线免费观看 | 一本色道精品久久一区二区三区 | 国产艳妇av视国产精选av一区 | 日本免费aaa观看 | 成人一区二区三区四区 | 亚洲电影在线播放 | 曰批全过程120分钟免费69 | 一区二区三区欧洲 | 一级免费大片 | 国产精品刺激对白麻豆99 | 国产亚洲美女精品久久久2020 | av影院在线 | 成年人网站视频免费 |