Как я могу избежать последовательности входов в угловом приложении?

1

Я учусь угловатой, и я столкнулся с этой проблемой. Как я могу предохранить пользователя от наводнения программы, введя форму несколько раз подряд. Например, используя этот 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

Всем спасибо!

  • 1
    Реализуйте CAPTCHA, это поможет
  • 0
    Это действительно хорошая идея, спасибо.
Теги:
angular
validation
submit

1 ответ

0
Лучший ответ

Невозможно остановить несколько сообщений, если вы ограничены в своем приложении (на стороне клиента), но кто-то может использовать какой-либо автоматизированный инструмент, чтобы сделать несколько дублирующихся запросов на ваш сайт. Например, если вы используете fiddler, вы можете воспроизводить один и тот же запрос сколько угодно раз. Даже это возможно с помощью инструмента разработчика, где вы можете воспроизвести любой запрос.

Это не может быть обработано на стороне клиента. Вам нужно обращаться только на стороне сервера.

Ниже приведены некоторые из подходов, которые вы можете попробовать.

  1. Внесите CAPTCHA/re-CAPTCHA в ваше приложение. Это очень легко интегрировать, и вы найдете много плагинов в Angular для использования.

  2. Вы также можете думать о ограничении на основе IP, если с определенного IP-адреса вы получаете несколько запросов, вы можете заблокировать его в течение некоторого времени.

  3. Вы всегда можете проверить на стороне сервера /db, если такая же запись уже существует, если да, то отклоните запрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню