最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2016年03月14日 11:42:38   作者:coder  
這篇文章主要介紹了YII Framework框架教程之安全方案,結(jié)合實(shí)例形式詳細(xì)分析了針對跨站腳本攻擊,跨站請求偽造攻擊及Cookie攻擊的防范技巧,需要的朋友可以參考下

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

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

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

1. 跨站腳本攻擊的防范

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

一個(gè)防范XSS攻擊的最重要的措施之一就是:在顯示用戶輸入的內(nèi)容之前進(jìn)行內(nèi)容檢查。 比如,你可以對內(nèi)容中的HTML進(jìn)行轉(zhuǎn)義處理。但是在某些情況下這種方法就不可取了,因?yàn)檫@種方法禁用了所有的HTML標(biāo)簽。

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

CHtmlPurifier組件可以作為一個(gè)widget或者filter來使用。 當(dāng)作為一個(gè)widget來使用的時(shí)候,CHtmlPurifier可以對在視圖中顯示的內(nèi)容進(jìn)行安全過濾。 以下是代碼示例:

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

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

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

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

Yii實(shí)現(xiàn)了一個(gè)CSRF防范機(jī)制,用來幫助防范基于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è)表單,請使用CHtml::form而不要自己寫HTML代碼。因?yàn)镃Html::form可以自動(dòng)地在表單中嵌入一個(gè)隱藏項(xiàng),這個(gè)隱藏項(xiàng)儲存著驗(yàn)證所需的隨機(jī)數(shù)據(jù),這些數(shù)據(jù)可在表單提交的時(shí)候發(fā)送到服務(wù)器進(jìn)行驗(yàn)證。

3. Cookie攻擊的防范

保護(hù)cookie免受攻擊是非常重要的。因?yàn)閟ession ID通常存儲在Cookie中。 如果攻擊者竊取到了一個(gè)有效的session ID,他就可以使用這個(gè)session ID對應(yīng)的session信息。

這里有幾條防范對策:

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

設(shè)置cookie的過期時(shí)間,對所有的cookie和seesion令牌也這樣做。這樣可以減少被攻擊的機(jī)會(huì)。

防范跨站代碼攻擊,因?yàn)樗梢栽谟脩舻臑g覽器觸發(fā)任意代碼,這些代碼可能會(huì)泄露用戶的cookie。

在cookie有變動(dòng)的時(shí)候驗(yàn)證cookie的內(nèi)容。

Yii實(shí)現(xiàn)了一個(gè)cookie驗(yàn)證機(jī)制,可以防止cookie被修改。啟用之后可以對cookie的值進(jìn)行HMAC檢查。

Cookie驗(yàn)證在默認(rèn)情況下是禁用的。如果你要啟用它,可以編輯應(yīng)用配置 中的組件中的CHttpRequest部分。

代碼示例:

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

一定要使用經(jīng)過Yii驗(yàn)證過的cookie數(shù)據(jù)。使用Yii內(nèi)置的cookies組件來進(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相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • CVE-2020-15148漏洞分析

    CVE-2020-15148漏洞分析

    這篇文章主要為大家介紹了CVE-2020-15148漏洞分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • destoon調(diào)用企業(yè)會(huì)員公司形象圖片的實(shí)現(xiàn)方法

    destoon調(diào)用企業(yè)會(huì)員公司形象圖片的實(shí)現(xiàn)方法

    這篇文章主要介紹了destoon調(diào)用企業(yè)會(huì)員公司形象圖片的實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下
    2014-08-08
  • PHP擴(kuò)展安裝方法步驟解析

    PHP擴(kuò)展安裝方法步驟解析

    這篇文章主要介紹了PHP擴(kuò)展安裝方法步驟解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • PHP CURL 內(nèi)存泄露問題解決方法

    PHP CURL 內(nèi)存泄露問題解決方法

    這篇文章主要介紹了PHP CURL 內(nèi)存泄露問題解決方法,CRUL長時(shí)間訪問HTTPS網(wǎng)站時(shí)有內(nèi)存泄露問題,本文經(jīng)過反復(fù)調(diào)試找到了解決方法,需要的朋友可以參考下
    2015-02-02
  • 詳解php如何對數(shù)組進(jìn)行排序

    詳解php如何對數(shù)組進(jìn)行排序

    這篇文章主要為大家詳細(xì)介紹了php如何對數(shù)組進(jìn)行排序,合并,截取替換等操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • php支付寶手機(jī)網(wǎng)頁支付類實(shí)例

    php支付寶手機(jī)網(wǎng)頁支付類實(shí)例

    這篇文章主要介紹了php支付寶手機(jī)網(wǎng)頁支付類實(shí)例,是基于Yii框架使用的支付寶接口類文件,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP調(diào)用C#開發(fā)的dll類庫方法

    PHP調(diào)用C#開發(fā)的dll類庫方法

    這篇文章主要介紹了PHP調(diào)用C#開發(fā)的dll類庫方法,包含一個(gè)完整的詳細(xì)的DLL制作步驟和PHP調(diào)用方法,需要的朋友可以參考下
    2014-07-07
  • Laravel 中創(chuàng)建 Zip 壓縮文件并提供下載的實(shí)現(xiàn)方法

    Laravel 中創(chuàng)建 Zip 壓縮文件并提供下載的實(shí)現(xiàn)方法

    這篇文章主要介紹了Laravel 中創(chuàng)建 Zip 壓縮文件并提供下載,本文通過兩個(gè)任務(wù),實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • PHP+MySQL實(shí)現(xiàn)在線測試答題實(shí)例

    PHP+MySQL實(shí)現(xiàn)在線測試答題實(shí)例

    本文通過實(shí)例主要給大家介紹如何使用jQuery+PHP+MySQL來實(shí)現(xiàn)在線測試題,包括動(dòng)態(tài)讀取題目,答題完畢后臺評分,并返回答題結(jié)果,感興趣的朋友跟隨小編一起看看吧
    2020-01-01
  • 簡單分析ucenter 會(huì)員同步登錄通信原理

    簡單分析ucenter 會(huì)員同步登錄通信原理

    UCenter是Comsenz旗下各個(gè)產(chǎn)品之間信息直接傳遞的一個(gè)橋梁,通過UCenter 站長可以無縫整合Comsenz系列產(chǎn)品,實(shí)現(xiàn)用戶的一站式登錄以及社區(qū)其他數(shù)據(jù)的交互。其實(shí)何止是comsenz系列產(chǎn)品,可以這么說整合了 ucenter 就等于整合了整個(gè)php 界的所有php 程序。
    2014-08-08

最新評論

日土县| 尉氏县| 永宁县| 聊城市| 江西省| 逊克县| 厦门市| 本溪市| 河北区| 永吉县| 山阴县| 股票| 麦盖提县| 卢湾区| 南郑县| 崇州市| 芜湖县| 莱阳市| 大方县| 青龙| 汝阳县| 济阳县| 西宁市| 定边县| 克拉玛依市| 都昌县| 印江| 普安县| 顺平县| 浦东新区| 公安县| 甘谷县| 三河市| 大竹县| 玉环县| 安远县| 民勤县| 莱芜市| 庐江县| 抚松县| 桂东县|