男人吃奶摸下挵进去好爽,日日躁夜夜躁狠狠躁,freesexvide0s性欧美高清,高清freexxxx性国产,无码人妻一区二区三区一,乱人伦中文字幕成人网站在线,亚洲欧美综合一区二区三区 ,神马影院在线视频观看
知識學堂
  • ·聯系電話:+86.023-75585550
  • ·聯系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 網站建設知識
本站教您如何防止偽造跨站請求
更新時間:2011-09-03 | 發布人:本站 | 點擊率:744

偽造跨站請求介紹

  偽造跨站請求比較難以防范,而且危害巨大,攻擊者可以通過這種方式惡作劇,發spam信息,刪除數據等等。這種攻擊常見的表現形式有:

  偽造鏈接,引誘用戶點擊,或是讓用戶在不知情的情況下訪問

  偽造表單,引誘用戶提交。表單可以是隱藏的,用圖片或鏈接的形式偽裝。

  比較常見而且也很廉價的防范手段是在所有可能涉及用戶寫操作的表單中加入一個隨機且變換頻繁的字符串,然后在處理表單的時候對這個字符串進行檢查。這個隨機字符串如果和當前用戶身份相關聯的話,那么攻擊者偽造請求會比較麻煩。

  yahoo對付偽造跨站請求的辦法是在表單里加入一個叫.crumb的隨機串;而facebook也有類似的解決辦法,它的表單里常常會有post_form_id和fb_dtsg。

  隨機串代碼實現

  咱們按照這個思路,山寨一個crumb的實現,代碼如下:

<?php class Crumb {                                                                                                        CONST SALT = "your-secret-salt";                                                               static $ttl = 7200;                                                                                                 static public function challenge($data) {         return hash_hmac('md5', $data, self::SALT);     }                                                                                                                   static public function issueCrumb($uid, $action = -1) {         $i = ceil(time() / self::$ttl);         return substr(self::challenge($i . $action . $uid), -12, 10);     }                                                                                                                   static public function verifyCrumb($uid, $crumb, $action = -1) {         $i = ceil(time() / self::$ttl);                                                                                     if(substr(self::challenge($i . $action . $uid), -12, 10) == $crumb ||             substr(self::challenge(($i - 1) . $action . $uid), -12, 10) == $crumb)             return true;                                                                                                    return false;     }                                                                                                               } 

  代碼中的$uid表示用戶唯一標識,而$ttl表示這個隨機串的有效時間。

  應用示例

  構造表單

  在表單中插入一個隱藏的隨機串crumb

<form method="post" action="demo.php"> <input type="hidden" name="crumb" value="<?php echo Crumb::issueCrumb($uid)?>"> <input type="text" name="content"> <input type="submit"> </form> 

 

  處理表單 demo.php

  對crumb進行檢查

<?php if(Crumb::verifyCrumb($uid,    偽造跨站請求介紹
  偽造跨站請求比較難以防范,而且危害巨大,攻擊者可以通過這種方式惡作劇,發spam信息,刪除數據等等。這種攻擊常見的表現形式有:
  偽造鏈接,引誘用戶點擊,或是讓用戶在不知情的情況下訪問
  偽造表單,引誘用戶提交。表單可以是隱藏的,用圖片或鏈接的形式偽裝。
  比較常見而且也很廉價的防范手段是在所有可能涉及用戶寫操作的表單中加入一個隨機且變換頻繁的字符串,然后在處理表單的時候對這個字符串進行檢查。這個隨機字符串如果和當前用戶身份相關聯的話,那么攻擊者偽造請求會比較麻煩。
  yahoo對付偽造跨站請求的辦法是在表單里加入一個叫.crumb的隨機串;而facebook也有類似的解決辦法,它的表單里常常會有post_form_id和fb_dtsg。
  隨機串代碼實現
  咱們按照這個思路,山寨一個crumb的實現,代碼如下:
<?php class Crumb {                                                                                                        CONST SALT = "your-secret-salt";                                                               static $ttl = 7200;                                                                                                 static public function challenge($data) {         return hash_hmac('md5', $data, self::SALT);     }                                                                                                                   static public function issueCrumb($uid, $action = -1) {         $i = ceil(time() / self::$ttl);         return substr(self::challenge($i . $action . $uid), -12, 10);     }                                                                                                                   static public function verifyCrumb($uid, $crumb, $action = -1) {         $i = ceil(time() / self::$ttl);                                                                                     if(substr(self::challenge($i . $action . $uid), -12, 10) == $crumb ||             substr(self::challenge(($i - 1) . $action . $uid), -12, 10) == $crumb)             return true;                                                                                                    return false;     }                                                                                                               }
 
  代碼中的$uid表示用戶唯一標識,而$ttl表示這個隨機串的有效時間。
  應用示例
  構造表單
  在表單中插入一個隱藏的隨機串crumb
<form method="post" action="demo.php"> <input type="hidden" name="crumb" value="<?php echo Crumb::issueCrumb($uid)?>"> <input type="text" name="content"> <input type="submit"> </form>
 
 
  處理表單 demo.php
  對crumb進行檢查
___FCKpd___2
 
POST['crumb'])) {     //按照正常流程處理表單 } else {     //crumb校驗失敗,錯誤提示流程 }

分享到: QQ空間 新浪微博 開心網 人人網
主站蜘蛛池模板: 久久婷婷国产综合精品| 亚洲精品成人网久久久久久| 最新亚洲人成无码网www电影| 好爽轻点太大了太深了| 性欧美长视频免费观看不卡| 中国老头和老妇tube| 漂亮人妻被强了bd影片| 在线 | 一区二区三区四区| 加勒比hezyo黑人专区| 99久久婷婷国产综合亚洲| 粉嫩大学生无套内射无码卡视频| 免费免费啪视频观看视频| 公与淑婷厨房猛烈进出视频| 欧美牲交黑粗硬大| av无码久久久久不卡蜜桃| 大地资源二在线视频观看| 毛片无码一区二区三区a片视频| 国产午精品午夜福利757视频播放| 真实单亲乱l仑对白视频| 啦啦啦免费视频在线观看| 日产电影一区二区三区| 免费人成网站在线观看不卡| 国产极品美女到高潮| 韩国三级中文字幕hd| 浮力影院50826| 亚洲成av人片在线观看天堂无| √新版天堂资源在线资源| 国产欧美日韩精品丝袜高跟鞋| 樱桃视频高清免费观看在线| 7777奇米四色眼影| 国产熟人av一二三区| 出租屋勾搭老熟妇啪啪| 色护士极品影院| 蜜臀av片| 国产亚洲av人片在线观看| 吃奶还摸下面动态图gif| 吃奶还摸下面动态图gif| 欧美牲交40_50a欧美牲交aⅴ| 公天天吃我奶躁我的在| 野花高清在线观看免费全集7| 亚洲 自拍 另类 欧美 综合|