Уязвимость в валидации формы

Рейтинг: 0Ответов: 0Опубликовано: 12.05.2023

Всем привет недавно занялась программированием, вот сейчас делаю пет проект и там регистрация, я сделала валидацию формы, но она уязвима в том, плане, что её можно обойти через просмотр кода страницы в браузере путем изменения дата атрибута Код на javaScript

  function validate(RegularExpressions, input, borderCssClass, ValidMessage) {
  input.dataset.valid = 'false';
  input.addEventListener('blur', () => {
      const inputValue = input.value;
      if (RegularExpressions.test(inputValue)) {
        input.classList.remove(borderCssClass);
        input.previousElementSibling.classList.remove(ValidMessage);
        input.dataset.valid = 'true';
      } else {
        input.classList.add(borderCssClass);
        input.previousElementSibling.classList.add(ValidMessage);
        input.dataset.valid = 'false';
      }
    });
  }


  function senfForm() {
  form.addEventListener('submit', (e) => {
  e.preventDefault();
  if (inputName.dataset.valid === 'false' || inputEmail.dataset.valid === 'false' || inputPassword.dataset.valid === 'false') {
    return;
  }
  var formData = new FormData(form);
  var xhr = new XMLHttpRequest();
  xhr.open('POST', '../bd.php'); // Укажите здесь путь к обработчику формы на сервере
  xhr.onload = function() {
    if (xhr.status === 200) {
      // Если форма отправлена успешно, выводим сообщение об успехе
      alert('succses');
      form.reset(); // Очищаем поля формы
    } else {
      // Если произошла ошибка при отправке формы, выводим сообщение об ошибке
      alert('error');
    }
  };
  xhr.send(formData);
});

}

В общем функция валидации при успешном прохождении валидации добавляет дата атрибут к инпуту, А функция обработки формы проверяет дата-атрибут у инпута и если все инпуты имеют дата атрибут = true, то отправляет данные в базу данных, В общем можно изменить дата атрибут в просмотре кода элементов тем самым обойдя валидацию. Как исправить эту уязвимость?

Ответы

Ответов пока нет.