僞造跨站(zhàn)懇求引見
僞造跨站(zhàn)懇求比拟難以防備,而且危害宏大(dà),攻擊者能夠經過這種方式惡作(zuò)劇(jù),發spam信息,删除數(shù)據等等。這種攻擊常見的表現方式有(yǒu):
僞造鏈接,誘惑用戶點擊,或是讓用戶在不知情的狀況下訪問
僞造表單,誘惑用戶提交。表單能夠是躲藏的,用圖片或鏈接的方式假裝。
比拟常見而且也很(hěn)低(dī)價的防備手腕是在一切可(kě)能觸及用戶寫操作(zuò)的表單中參加一個(gè)随機且變換頻繁的字符串,然後在處置表單的時(shí)分對這個(gè)字符串停止檢查。這個(gè)随機字符串假如和(hé)當前用戶身份相關聯的話(huà),那(nà)麽攻擊者僞造懇求會(huì)比拟費事。
yahoo對付僞造跨站(zhàn)懇求的方法是在表單裏參加一個(gè)叫.crumb的随機串;而facebook也有(yǒu)相似的處理(lǐ)方法,它的表單裏常常會(huì)有(yǒu)post_form_id和(hé)fb_dtsg。
随機串代碼完成
我們依照這個(gè)思緒,山(shān)寨一個(gè)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表示這個(gè)随機串的有(yǒu)效時(shí)間(jiān)。
應用示例
結構表單
在表單中插入一個(gè)躲藏的随機串crumb
<input type=\"hidden\" name=\"crumb\" value=\"<?php echo Crumb::issueCrumb($uid)?>\">
處置表單 demo.php
對crumb停止檢查
<?php if(Crumb::verifyCrumb($uid, 僞造跨站(zhàn)懇求引見
僞造跨站(zhàn)懇求比拟難以防備,而且危害宏大(dà),攻擊者能夠經過這種方式惡作(zuò)劇(jù),發spam信息,删除數(shù)據等等。這種攻擊常見的表現方式有(yǒu):
僞造鏈接,誘惑用戶點擊,或是讓用戶在不知情的狀況下訪問
僞造表單,誘惑用戶提交。表單能夠是躲藏的,用圖片或鏈接的方式假裝。
比拟常見而且也很(hěn)低(dī)價的防備手腕是在一切可(kě)能觸及用戶寫操作(zuò)的表單中參加一個(gè)随機且變換頻繁的字符串,然後在處置表單的時(shí)分對這個(gè)字符串停止檢查。這個(gè)随機字符串假如和(hé)當前用戶身份相關聯的話(huà),那(nà)麽攻擊者僞造懇求會(huì)比拟費事。
yahoo對付僞造跨站(zhàn)懇求的方法是在表單裏參加一個(gè)叫.crumb的随機串;而facebook也有(yǒu)相似的處理(lǐ)方法,它的表單裏常常會(huì)有(yǒu)post_form_id和(hé)fb_dtsg。
随機串代碼完成
我們依照這個(gè)思緒,山(shān)寨一個(gè)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表示這個(gè)随機串的有(yǒu)效時(shí)間(jiān)。
應用示例
結構表單
在表單中插入一個(gè)躲藏的随機串crumb
<input type=\"hidden\" name=\"crumb\" value=\"<?php echo Crumb::issueCrumb($uid)?>\">
處置表單 demo.php
對crumb停止檢查
___FCKpd___2
POST[\'crumb\'])) { //依照正常流程處置表單 } else { //crumb校(xiào)驗失敗,錯誤提示流程 }
企業網站(zhàn)建設解決方案 營銷型網站(zhàn)建設解決方案 行(xíng)業門(mén)戶網站(zhàn)建設解決方案 外貿網站(zhàn)解建設決方案 品牌形象網站(zhàn)建設解決方案 購物商城網站(zhàn)建設解決方案 政府網站(zhàn)建設解決方案 手機網站(zhàn)建設解決方案 教育培訓網站(zhàn)建設解決方案 珠寶高(gāo)端奢飾品網站(zhàn)建設解決方案 房(fáng)地産、地産項目網站(zhàn)建設解決方案 集團、上(shàng)市企業網站(zhàn)建設解決方案 數(shù)碼、電(diàn)子産品網站(zhàn)建設解決方案 美容、化妝品行(xíng)業網站(zhàn)建設解決方案
10年專業互聯網服務經驗 重慶最專業網站(zhàn)團隊 資深行(xíng)業分析策劃 B2C營銷型網站(zhàn)建設領先者 最前沿視(shì)覺設計(jì)、研發能力 時(shí)刻最新技(jì)術(shù)領先研發能力 具有(yǒu)完備的項目管理(lǐ) 完善的售後服務體(tǐ)系 深厚的網絡運營經驗
中技(jì)互聯一直秉承專業、誠信、服務、進取的價值觀,堅持優秀的商業道(dào)德,以用戶最終價值為(wèi)導向,向用戶提供優質産品和(hé)優質服務,從而赢得(de)了用戶的信賴。始終以不懈的努力、更高(gāo)的目标來(lái)要求自己。
主營業務:網站(zhàn)建設 | 重慶網站(zhàn)建設 | 重慶網站(zhàn)設計(jì) | 重慶網站(zhàn)制(zhì)作(zuò) | 重慶網頁設計(jì) | 重慶網站(zhàn)開(kāi)發
CopyrightZJCOO technology Co., LTD. All Rights Reserved.
渝ICP 備11003429号