Используя JQuery, как я могу запретить пользователям вводить скрипт или HTML в поля ввода? - PullRequest
1 голос
/ 12 июня 2011

По сути, мне нужно иметь возможность убрать скрипт и html из полей ввода перед обработкой. Я использую JQuery, и надеялся найти, что есть стандартный способ сделать это. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 12 июня 2011

Ваш HTML:

<input class="striphtml" name="name" />

Ваш JS:

$(document).ready(function() {
  // strip all html when text in input changes
  $(".striphtml").change(function(){
      $(this).val( $(this).text() );
  });
});

Результат:

<p>This is a test.</p>

будет заменено на:

&lt;p&gt;This is a test.&lt;/p&gt;

Внимание: Как уже упоминалось в SLaks, вы ДОЛЖНЫ проверить свои ВХОДЫ на стороне сервера !!!

1 голос
/ 12 июня 2011

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

0 голосов
/ 12 июня 2011

Вам вообще не следует этого делать.

Вместо этого вам следует избегать содержимого на сервере.
Таким образом, вы можете принимать злонамеренный ввод (или < символов), неему вред.

0 голосов
/ 12 июня 2011

Вот отличный учебник для того, что вам нужно.Как сказал SLaks, сделайте это на стороне сервера.Очистить ваш ввод

Учебное пособие

Вы можете выполнить некоторые регулярные выражения с конкретными символами, но это может помочь лишь немного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...