當前位置:
首頁 > 知識 > 技術分享:Cookie 防偽造 防修改

技術分享:Cookie 防偽造 防修改

主要防止非法用戶修改cookie信息,以及cookie的超時時間

傳統cookie存儲,Cookie(name, value),value很容易就被篡改。

防修改cookie存儲,Cookie(name, value 「」 signToken 「」 saveTime 「」 maxTime)

signToken :簽名密鑰 由md5(value saveTime maxTime 」自定義密鑰「)生成

saveTime:cookie創建時間

maxTime:cookie超時時間

設置Cookie

public static void put(HttpServletResponse response, String key, String value, int maxTime) {

String pwdKey = white_yu; //自定義密鑰

String saveTime = System.currentTimeMillis() ;

String signToken = md5(pwdKey, saveTime, maxTime , value);

String cookieValue = signToken saveTime maxTime

value;

Cookie cookie = new Cookie(key,cookieValue);

cookie.setMaxAge(maxTime);

response.addCookie(cookie);

}

獲取Cookie

public static String getCookie(String cookieValue) {

String pwdKey = white_yu; //自定義密鑰

if (StringUtils.isNotBlank(cookieValue)) {

String cookieStrings[] = cookieValue.split();

if (null != cookieStrings 4 == cookieStrings.length) {

String signToken = cookieStrings[0];

String saveTime = cookieStrings[1];

String maxTime = cookieStrings[2];

String value = cookieStrings[3];

String sign = md5(pwdKey, saveTime, maxTime, value);

// 保證 cookie 不被人為修改

if (sign.equals(signToken)) {

long stime = Long.parseLong(saveTime);

long maxtime = Long.parseLong(maxTime) * 1000;

// 查看是否過時

if ((stime maxtime) - System.currentTimeMillis() 0) {

return value;

}

}

}

}

return null;

}

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 千鋒JAVA開發學院 的精彩文章:

Kotlin技術分享-異常
MariaDB10.3 系統版本表 有效防止數據丟失

TAG:千鋒JAVA開發學院 |