前端登录页如何防止暴力破解?

世博🍀 阅读 34

我最近在用 Vue 做一个后台登录页面,担心有人用脚本反复试密码。现在只做了简单的表单校验,但不知道怎么加防暴力破解的机制,比如输错几次就锁定或者加验证码?

试过在前端计数错误次数,但发现刷新页面就清零了,根本没用。后端同事说他们没做相关接口,让我先在前端想想办法……这真的能防住吗?

<template>
  <form @submit.prevent="handleLogin">
    <input v-model="username" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <button type="submit">登录</button>
  </form>
</template>

<script>
export default {
  data() {
    return { username: '', password: '' };
  },
  methods: {
    handleLogin() { /* 调用登录 API */ }
  }
}
</script>
我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
开发者瑞腾
前端防暴力破解确实不太靠谱,刷新页面就清零了,这根本挡不住真正的攻击者。建议你赶紧找后端同事,让他们做登录次数限制和锁定机制。

要是实在没办法只能在前端先临时处理下,可以试试这样:

data() {
return {
username: '',
password: '',
failedCount: 0,
localFailedStore: JSON.parse(localStorage.getItem('failedCount')) || 0
};
},
methods: {
handleLogin() {
if (this.localFailedStore >= 5) {
alert('尝试次数过多,请稍后再试');
return;
}
// 登录验证逻辑...
if (!loginSuccess) {
this.localFailedStore++;
localStorage.setItem('failedCount', this.localFailedStore);
}
}
}


但说实话,这也就是个心理安慰,真正想安全还得靠后端。如果你们用的是WordPress,推荐安装Limit Login Attempts Reloaded插件,这个东西在后端做了很多事,包括IP封禁、自动锁定等功能,用了它基本不用操心了。

另外再加个验证码也行,不过用户体验会差一点。总之别全指望前端防护,真要防破解得前后端配合才行。
点赞
2026-03-30 11:01