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