当前位置: 首页 > news >正文

网站设计的汕头公司/软文广告是什么意思

网站设计的汕头公司,软文广告是什么意思,个人做网站开发,女程序员可以干到多少岁一、纯前端验证码 场景 防止机器人或脚本高频提交&#xff0c;需用户完成验证后才能触发请求。 Vue 前端实现 <template><div><button click"showCaptcha">提交订单</button><div v-if"captchaVisible"><img :src"…

一、纯前端验证码
场景
防止机器人或脚本高频提交,需用户完成验证后才能触发请求。

Vue 前端实现

<template><div><button @click="showCaptcha">提交订单</button><div v-if="captchaVisible"><img :src="captchaImage" alt="验证码" /><input v-model="captchaInput" placeholder="输入验证码" /><button @click="verifyCaptcha">验证</button></div></div>
</template><script>
export default {data() {return {captchaVisible: false,captchaImage: "",captchaInput: "",captchaKey: "", // 后端生成的验证码唯一标识};},methods: {async showCaptcha() {// 向后端请求验证码const res = await this.$axios.get("/api/captcha/generate");this.captchaImage = res.data.image;this.captchaKey = res.data.key;this.captchaVisible = true;},async verifyCaptcha() {// 提交验证码到后端校验const res = await this.$axios.post("/api/captcha/verify", {key: this.captchaKey,code: this.captchaInput,});if (res.data.success) {this.captchaVisible = false;this.submitOrder(); // 验证通过后执行实际提交}},submitOrder() {// 实际业务请求this.$axios.post("/api/order/create");},},
};
</script>

C# 后端实现

[ApiController]
[Route("api/captcha")]
public class CaptchaController : ControllerBase
{private static Dictionary<string, string> _captchas = new Dictionary<string, string>();[HttpGet("generate")]public IActionResult GenerateCaptcha(){// 生成随机验证码(示例简化,实际需生成图片)var code = new Random().Next(1000, 9999).ToString();var key = Guid.NewGuid().ToString();_captchas[key] = code;return Ok(new {key = key,image = $"data:image/png;base64,{GenerateBase64Image(code)}" // 生成图片的Base64});}[HttpPost("verify")]public IActionResult VerifyCaptcha([FromBody] VerifyRequest request){if (_captchas.TryGetValue(request.Key, out var validCode) && validCode == request.Code){_captchas.Remove(request.Key);return Ok(new { success = true });}return Ok(new { success = false });}
}

二、禁用按钮
场景
防止用户重复点击提交按钮,前端临时禁用按钮。

Vue 前端实现

<template><button @click="handleSubmit" :disabled="isSubmitting">{{ isSubmitting ? '提交中...' : '提交订单' }}</button>
</template><script>
export default {data() {return {isSubmitting: false,};},methods: {async handleSubmit() {if (this.isSubmitting) return;this.isSubmitting = true;try {await this.$axios.post("/api/order/create");} finally {this.isSubmitting = false;}},},
};
</script>

三、调用限制(后端频率限制)
场景
限制客户端在固定时间窗口内对同一接口的调用次数。

C# 后端实现(基于内存缓存)

[ApiController]
[Route("api/order")]
public class OrderController : ControllerBase
{private static MemoryCache _requestCache = new MemoryCache(new MemoryCacheOptions());[HttpPost("create")]public IActionResult CreateOrder([FromBody] OrderRequest request){var clientIp = HttpContext.Connection.RemoteIpAddress.ToString();var cacheKey = $"rate_limit_{clientIp}";// 检查请求频率(示例:10秒内最多3次)if (_requestCache.TryGetValue(cacheKey, out int count) && count >= 3){return StatusCode(429, "请求过于频繁,请稍后再试");}// 更新计数器_requestCache.Set(cacheKey, count + 1, TimeSpan.FromSeconds(10));// 实际业务逻辑return Ok(new { success = true });}
}

四、假排队(前端模拟排队)
场景
通过前端动画或提示缓解用户等待焦虑,实际请求仍按正常流程处理。

Vue 前端实现

vue
<template><div><button @click="mockQueue">立即抢购</button><div v-if="isInQueue"><p>排队中,前方还有 {{ queuePosition }} 人...</p><div class="loading-animation"></div></div></div>
</template><script>
export default {data() {return {isInQueue: false,queuePosition: 0,};},methods: {async mockQueue() {if (this.isInQueue) return;this.isInQueue = true;this.queuePosition = Math.floor(Math.random() * 10) + 1; // 模拟随机队列位置// 模拟排队等待(实际请求在后台发送)await new Promise(resolve => setTimeout(resolve, 2000));try {await this.$axios.post("/api/purchase");this.isInQueue = false;} catch (error) {this.isInQueue = false;}},},
};
</script><style>
.loading-animation {width: 20px;height: 20px;border: 2px solid #ccc;border-top-color: #333;border-radius: 50%;animation: spin 1s linear infinite;
}@keyframes spin {to { transform: rotate(360deg); }
}
</style>

总结与对比
在这里插入图片描述

实际建议:

组合使用:验证码 + 后端限流可有效防御自动化攻击。

用户体验优先:禁用按钮和假排队适合提升用户感知。

监控与告警:结合日志监控异常请求模式(如Nginx或ELK)。

http://www.whsansanxincailiao.cn/news/30332568.html

相关文章:

  • 自适应网站怎么做m站/长沙优化排名
  • 网站免费建设/windows优化大师兑换码
  • 网站建设应用/搜索引擎优化实训报告
  • html5 房地产网站案例/厦门人才网官网登录
  • 珠海建站/营销网站建设服务
  • 个体户做网站去哪里做/seo排名优化的方法
  • 动态网站背景做多少合适/佛山seo代理计费
  • 本地网站后台管理建设/短视频seo排名
  • win10怎么做网站/58黄页网推广公司
  • 青海环保网站建设公司/网站排名seo教程
  • 贵阳市住房建设局网站/新乡seo优化
  • 什么专业可以做网站编辑/西安百度竞价托管公司
  • java做的网站怎么设置关闭和开启网站访问不了/源码交易网站源码
  • 建个人网站需要什么/重庆企业免费建站
  • iis配置网站无法访问/活动软文怎么写
  • 做网站公司怎么做/推广平台收费标准
  • 网站怎么做优化排名/推广信息哪个平台好
  • 网站标题是关键词吗/游戏推广对接平台
  • 个人淘客网站备案/互联网营销行业前景
  • 看视频做那个网站好/百度浏览器入口
  • 南阳 网站建设/十大网络舆情案例
  • 网站建设日期/公司网页制作需要多少钱
  • wordpress子站点/潍坊seo外包平台
  • 衢州 做网站/考研培训班集训营
  • 石家庄做网站的/郑州网站建设推广优化
  • 免费云建站/公司建设网站哪家好
  • 做网站联系我们模板免费/百度站长快速收录
  • 广东网站制作/百度搜索指数排行
  • 门户网站优化报价/免费网站推广软件
  • 建立主题网站的顺序是/优秀软文范例