csrf是cross site request forgery的縮寫,乍一看和xss差不多的樣子,但是其原理正好相反,xss是利用合法使用者獲取其資訊,而csrf是偽造成合法使用者發起請求。
在xss危害——session劫持中我們提到了session原理,使用者登入後會把登入資訊存放在伺服器,客戶端有乙個使用者標識存在cookie中,只要使用者不關閉瀏覽器或者退出登入,在其有效期內伺服器就會把這個瀏覽器傳送的請求當作當前客戶,如果這時候使用者被欺騙,使用瀏覽器開啟了某些惡意**,裡面就會包含一些不是使用者希望傳送的請求,伺服器也會把這些請求當作是當前客戶傳送的請求,這時候使用者的個人資訊、資金安全、如果使用者許可權高整個站點都可能會受到危害。
在網上找了張很能說明這個過程
在某個論壇管理頁面,管理員可以在list.php頁面執行刪除帖子操作,根據url判斷刪除帖子的id,像這樣的乙個url
http://localhost/list.php?action=delete&id=12當惡意使用者想管理員傳送包含csfr的郵件,騙取管理員訪問在這個惡意網頁中只要包含這樣的html語句就可以利用讓管理員在不知情的情況下刪除帖子了
這個利用了img的src可以跨域請求的特點,這種情況比較少,因為一般**不會利用get請求修改資源資訊
是不是**利用post修改資訊就安全了呢,還拿剛才例子,改成post修改的
<?php但是惡意**這麼寫一樣可以攻擊$action=$_post['action'];
$id=$_post['id'];
delete($action,$id);
?>
1. 使用post,不使用get修改資訊
2. 驗證碼,所有表單的提交需要驗證碼,但是貌似用起來很麻煩,所以一些關鍵的操作可以
3. 在表單中預先植入一些加密資訊,驗證請求是此表單傳送
跨站請求偽造 CSRF
跨站請求偽造 csrf 顧名思義就是在其他非法 呼叫了正常 的介面,攻擊的方法是在頁面中包含惡意 或者鏈結,攻擊者認為被攻擊的使用者有權訪問另乙個 如果使用者在那個 的會話沒有過期,攻擊者就能執行未經授權的操作。大多數 rails 程式都使用 cookie 儲存會話,可能只把會話 id 儲存在 co...
CSRF跨站請求偽造
前面說到xss跨站指令碼攻擊,現在來個複雜度更高一點的csrf跨站請求偽造 首先說一下rsrf的幾個要點 1.rsrf是通過各種方法 站內發布鏈結,qq郵箱發布鏈結等 讓登入使用者觸發請求,在使用者不覺察的過程中對使用者資料進行篡改,進而實現攻擊 2.通過xss可以獲取到使用者的session id...
CSRF 跨站請求偽造
csrf cross site request forgery 中文是跨站請求偽造。csrf攻擊者在使用者已經登入目標 之後,誘使使用者訪問乙個攻擊頁面,利用目標 對使用者的信任,以使用者身份在攻擊頁面對目標 發起偽造使用者操作的請求,達到攻擊目的。舉個列子 假如a站為受信任的銀行 其中有個銀行轉賬...