不是“哪里做”,而是“两端都要做”,各司其职
一、核心结论:两端协作,不可偏废
| 端 | 核心职责 | 防护目标 |
|---|---|---|
| 前端 | 用户体验层拦截 | 防止用户短时间内多次点击按钮 |
| 后端 | 数据安全层兜底 | 防止恶意请求、网络重放、绕过前端 |
一句话原则:前端保体验,后端保安全。后端是最后一道防线,必须做。
二、前端防重复提交(Vue)
2.1 方案一:按钮级防抖/节流(最常用)
<template> <el-button :loading="submitLoading" :disabled="submitLoading" @click="handleSubmit" > { { submitLoading ? '提交中...' : '立即提交' }} </el-button> </template> <script setup> import