前端js操作Cookie超详细介绍与实战案例

  目录

  1 前言

  1.1 详细介绍

  1.2 Cookie的工作流程

  通过使用Cookie,服务器可以在不同的HTTP请求之间保持会话状态、记录用户首选项、实现购物车功能、进行用户跟踪等。然而,Cookie也有一些限制,包括存储容量的限制、跨域访问的限制以及安全性方面的考虑。

  值得注意的是,由于隐私和安全的考虑,最近几年来,浏览器对Cookie的限制和隐私保护机制也有所增加,例如同源策略、Cookie的SameSite属性和用户对Cookie的控制选项等

  2 如何减小Cookie使用风险

  在开发中,减少Cookie的风险是确保用户隐私和提高安全性的重要方面。以下是一些减少Cookie风险的最佳实践:

  除了上述最佳实践,密切关注最新的Web安全标准和更新,并遵循相关的安全建议和建议也是非常重要的。同时,定期进行安全性评估和漏洞扫描,以确保系统和Cookie的安全性。

  3 实战操作

  3.1 设置 Cookie

  function setCookie(name, value, expires, path, domain, secure) {

  let cookieString = name + "=" + encodeURIComponent(value);

  if (expires) {

  let expirationDate = new Date();

  expirationDate.setTime(expirationDate.getTime() + expires * 24 * 60 * 60 * 1000);

  cookieString += "; expires=" + expirationDate.toUTCString();

  }

  if (path) {

  cookieString += "; path=" + path;

  }

  if (domain) {

  cookieString += "; domain=" + domain;

  }

  if (secure) {

  cookieString += "; secure";

  }

  document.cookie = cookieString;

  }

  3.2 获取 Cookie

  function getCookie(name) {

  let cookieName = name + "=";

  let cookies = document.cookie.split(';');

  for (let i = 0; i < cookies.length; i++) {

  let cookie = cookies[i].trim();

  if (cookie.indexOf(cookieName) === 0) {

  return decodeURIComponent(cookie.substring(cookieName.length));

  }

  }

  return null;

  }

  3.3 删除 Cookie

  function deleteCookie(name, path, domain) {

  if (getCookie(name)) {

  document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";

  }

  if (path) {

  document.cookie = name + "=; path=" + path;

  }

  if (domain) {

  document.cookie = name + "=; domain=" + domain;

  }

  }

  3.4 测试

  // 设置名为"username"的Cookie,有效期为7天,路径为根路径

  setCookie("username", "有勇气的牛排", 7, "/");

  // 获取名为"username"的Cookie的值

  let username = getCookie("username");

  console.log(username); // 输出: "JohnDoe"

  // 删除名为"username"的Cookie

  deleteCookie("username");

  总结

  到此这篇关于前端js操作Cookie超详细介绍与实战案例的文章就介绍到这了,更多相关前端js操作Cookie内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: