2017-01-19 4 views
1

Я использую рамки PHP codeigniter. Я использовал jQuery validations, как показано нижеУдаление идентификатора формы с помощью элемента проверки удаляет проверки JQuery

$('#form_id').validate({ 
    rules here, 
    messages here 
}); 

У меня есть вопрос, связанный с безопасностью. Если я удаляю идентификатор формы, проверяя элемент, то проверки jquery не запускаются. Я знаю, что это может быть обращение, используя проверки на стороне клиента. но просто подумайте, есть ли другое решение, поэтому пользователь не может удалить форму id

+1

данные должны быть дезинфицированы и проверены на стороне сервера. Всегда. Проверка клиентской стороны данных - хороший инструмент, чтобы быстрее отображать ошибки для пользователя, но никогда не доверять этим «проверенным» данным. – Dacklf

ответ

1

Я не думаю, что есть способ, чтобы кто-то не удалял HTML-код, но вы можете проверить, есть ли там идентификатор формы и входные данные первый, до конца своих валидаций ..

Что-то вроде:

$("form").submit(function(event){ 
    if ($(this).attr("id") != 'form_id') { 
     event.preventDefault(); 
     alert("Missing or Altered Form ID"); 
    } 
    if (this.FirstName === undefined) { 
     event.preventDefault(); 
     alert("Missing Input Fields"); 
    } 
}); 

** FirstName этого имя входа:

<input type="text" name="FirstName" value="Mickey"> 
+0

Спасибо. Хорошее решение. Он работает так, как ожидалось. – hrishi

1

из клиентской стороны причины валидация необходима, но когда дело доходит до «Безопасность», вы не доверяете пользователю. Как вы упомянули, пользователь может отправлять любые данные в качестве подтвержденных данных. Таким образом, лучшим решением является проверка тех же данных во время проверки на стороне сервера/сервера.

В Codeigniter поставляется с хорошей библиотекой проверки вы можете увидеть here

Для вашей точки

любое другое решение так что пользователь не может удалить идентификатор формы

, предположив вас просят это связано с Java-скриптами, ответ НЕТ. Поскольку Java-скрипт выполняется на стороне клиента/в браузере пользователей, и есть способы изменить или удалить идентификатор формы, чтобы мы были вне досягаемости, контролируя пользователя, редактирующего наш скрипт, поэтому мы не можем гарантировать, что мы получаем от пользователя и решение делает проверку подлинности на заднем плане, как я упоминал выше, и надеюсь, что это поможет.

Смежные вопросы