橫向越權:橫向越權指的是攻擊者嘗試訪問與他擁有相同許可權的使用者的資源
縱向越權:縱向越權指的是乙個低級別攻擊者嘗試訪問高階別使用者的資源
對於縱向越權,我們可以通過設定使用者角色,為不同的角色提供不同的許可權來避免。
對於橫向越權,就比較麻煩了,橫向越權可能出現的場景有:在使用者忘記密碼重置密碼時,回答對了問題進入密碼重置階段時,如果知道其他使用者的使用者名稱,很容易改變此使用者的密碼,然後就可以進行越權訪問了。
這種情況下為了防止橫向越權,我們可以使用快取來進行輔助,當問題回答正確時,我們在快取中儲存一對由使用者名稱和乙個唯一的數字組成的資料,然後返回放入的唯一資料。在重置密碼時我們的引數不僅需要使用者名稱和密碼還需要前面生成的唯一數字,根據使用者名稱在快取中取出對應的數字,如果取出的數字和引數中傳入的想等,則證明重置的當前使用者的密碼,否則不是,且不予以重置。
重置密碼回答問題
public serverresponsecheckanswer(string username, string question, string answer)
return serverresponse.createbyerror("使用者答案錯誤");
}
重置密碼
public serverresponseforgetresetpassword(string username, string passwordnew, string forgettoken)
serverresponse validresponse = this.checkvalid(username, const.username);
if(validresponse.issuccess())
//使用cache而不使用session是因為當應用程式結束時,如果快取的失效時間未到,則下次啟動程式時,快取資料依然存在
//但是seesion中的資料只儲存在一次會話中,session容易丟失不夠安全,而cache不會出現這種問題
string token = tokencache.getkey(tokencache.token_prefix+username);
if(stringutils.isblank(token))
if(stringutils.equals(token, forgettoken))
}else
return serverresponse.createbyerror("密碼更新失敗");
}
橫向越權 縱向越權問題解決
橫向越權 橫向越權指的是攻擊者嘗試訪問與他擁有相同許可權的使用者的資源 縱向越權 縱向越權指的是乙個低級別攻擊者嘗試訪問高階別使用者的資源 對於縱向越權,我們可以通過設定使用者角色,為不同的角色提供不同的許可權來避免。對於橫向越權,就比較麻煩了,橫向越權可能出現的場景有 在使用者忘記密碼重置密碼時,...
橫向越權與縱向越權
橫向越權 橫向越權指的是攻擊者嘗試訪問與他擁有相同許可權的使用者的資源 縱向越權 縱向越權指的是乙個低級別攻擊者嘗試訪問高階別使用者的資源 如何防止橫向越權漏洞 可通過建立使用者和可操作資源的繫結關係,使用者對任何資源進行操作時,通過該繫結關係確保該資源是屬於該使用者所有的。對請求中的關鍵引數進行間...
橫向越權 縱向越權安全漏洞
橫向越權 攻擊者嘗試訪問與他擁有相同許可權的使用者的資源 縱向越權 低級別攻擊者嘗試訪問高階別使用者的資源 橫向越權場景 1 在使用者忘記密碼重置密碼時,回答對了問題進入密碼重置階段時,如果知道其他使用者的使用者名稱,很容易改變此使用者的密碼,然後就可以進行越權訪問了。public serverre...