设置一个 HttpOnly 的 cookie 意味着该 cookie 不能通过客户端脚本(如 JavaScript)进行访问。这是一个安全措施,通常用于减少某些类型的攻击,如跨站脚本攻击 (XSS)。

以下是如何在不同的上下文中设置 HttpOnly cookie:

1. 在 HTTP 响应中:

如果你正在使用纯 HTTP/HTTPS(没有特定的后端语言或框架),你可以在 HTTP 响应的 Set-Cookie 头中设置 HttpOnly 属性:

Set-Cookie: mycookie=myvalue; HttpOnly;

2. 使用特定的后端语言或框架:

  • PHP:

    setcookie('mycookie', 'myvalue', 0, '/', '', false, true);
    
  • Node.js (Express.js):

    res.cookie('mycookie', 'myvalue', { httpOnly: true });
    
  • Python (Flask):

    response.set_cookie('mycookie', 'myvalue', httponly=True)
    
  • Python (Django):

    response.set_cookie('mycookie', 'myvalue', httponly=True)
    
  • Java (Servlet):

    Cookie myCookie = new Cookie("mycookie", "myvalue");
    myCookie.setHttpOnly(true);
    response.addCookie(myCookie);
    

3. 在 Web 浏览器扩展中(如 Chrome Extensions):

如果你使用 chrome.cookies.set API 设置 cookie,你可以设置 httpOnly 属性为 true:

chrome.cookies.set({
    url: 'https://www.example.com',
    name: 'mycookie',
    value: 'myvalue',
    httpOnly: true
});

请注意,当你设置一个 HttpOnly 的 cookie,你不能再通过 JavaScript 的 document.cookie 在客户端读取或修改它。这就是 HttpOnly 属性的目的:防止客户端脚本访问某些敏感的 cookie,从而增加安全性。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐