前端登录页如何防止暴力破解?
我最近在用 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>
要是实在没办法只能在前端先临时处理下,可以试试这样:
但说实话,这也就是个心理安慰,真正想安全还得靠后端。如果你们用的是WordPress,推荐安装Limit Login Attempts Reloaded插件,这个东西在后端做了很多事,包括IP封禁、自动锁定等功能,用了它基本不用操心了。
另外再加个验证码也行,不过用户体验会差一点。总之别全指望前端防护,真要防破解得前后端配合才行。