移动端登录后Cookie不安全,怎么设置才防窃取?

上官金梅 阅读 27

我最近在用 Vue 做一个移动端的登录功能,后端返回了 Set-Cookie,但我发现这些 Cookie 在 Chrome DevTools 里能直接看到,而且没加 Secure 或 HttpOnly。我担心用户在公共 Wi-Fi 下被中间人攻击偷走 Cookie,试过在 axios 请求里手动带 withCredentials,但好像没啥用。

请问在 Vue 项目里,是不是应该让后端设置 Cookie 的安全属性?还是前端也能控制?下面是我现在的登录请求代码:

<script>
import axios from 'axios';
export default {
  methods: {
    async login() {
      const res = await axios.post('/api/login', {
        username: 'test',
        password: '123456'
      }, { withCredentials: true });
      console.log('登录成功');
    }
  }
}
</script>
我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
志鸽 ☘︎
Cookie的安全属性只能后端控制,前端改不了。你需要在后端设置Set-Cookie时加上Secure(仅HTTPS)和HttpOnly(禁止JS读取)这两个属性,同时必须用HTTPS不然Secure不生效。前端withCredentials只是让浏览器带Cookie发送,跟安全属性没半毛钱关系。
点赞
2026-03-16 18:07