【问题标题】:How can I avoid a sequence of inputs followed in the angular application?如何避免角度应用程序中遵循的一系列输入?
【发布时间】:2018-10-23 16:57:40
【问题描述】:

我正在学习角度,我遇到了这个问题。如何通过连续多次输入表单来防止用户淹没程序..例如使用这个javascript:

javascript:for(var i=0;i<9999999;i++){ document.getElementByTagName("button")[0].click();

这是我的角度代码: 组件:

export class InsertTODO implements OnInit {
constructor(private angularFire: AngularFireDatabase) { }
ngOnInit() {
}
form_submit(f: NgForm) {
this.angularFire.list('todos').push(
  {
    name: f.controls.name.value
  }).then((t: any) => console.log('recorded data ' + t.key),
   (e: any) => console.log(e.message));
  f.controls.name.setValue('');
}

查看:

<h1> WorkZone TODO </h1>
<form #f="ngForm" (submit)="form_submit(f)">
  <input type="text" ngModel name="name" placeholder="TODO">
  <br/>
  <br/>
  <button type="submit">Insert</button>
  <button type="reset">Clear</button>
</form>

这是在 workzone.tk 上在线 部署在 Firebase 主机上

谢谢大家!

【问题讨论】:

  • 实施验证码,会有帮助
  • 这真是个好主意,谢谢。

标签: javascript angular validation submit


【解决方案1】:

阻止多个帖子并不容易,无论如何,如果您在应用程序(客户端)中进行限制,仍然有人可以使用一些自动化工具向您的网站发出多个重复请求。例如,如果您使用fiddler,您可以多次播放相同的请求。甚至可以使用可以重放任何请求的开发人员工具来实现这一点。

这不能在客户端处理。您只需要在服务器端处理。

以下是您可以尝试的几种方法。

  1. 在您的应用程序中实现CAPTCHA/re-CAPTCHA。这很容易 集成,你会发现Angular有很多插件可以使用。

  2. 您还可以考虑基于 IP 的限制,如果来自特定 IP, 您收到多个请求,您可以阻止它一段时间。

  3. 如果已经有相同的记录,您可以随时在服务器端/数据库端检查 存在,如果是则拒绝请求。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多