2015-07-28 1 views
0

Я знаю, что некоторые символы не допускаются в атрибуте value входа формы. Например, если я заключу этот атрибут в один конец, я не могу безопасно использовать одинарные кавычки в нем. Есть ли другие символы, которые я не могу использовать в этом атрибуте?Какие символы допустимы в атрибуте value входа формы

+0

Вы не можете использовать одиночную кавычку внутри атрибута, используя одинарную кавычку, просто потому, что она закрывает атрибут до того, как вы это понимаете, и путайте парсер HTML. Это не означает, что одиночные кавычки не разрешены. У вас есть атрибут с двойными кавычками и одинарной кавычкой внутри, или их избежать, чтобы они не закрывали атрибут. Я не знаю ни одного символа, который не разрешен для этого атрибута – GillesC

ответ

1

HTML 5

Если не указано иное, атрибуты HTML элементов может иметь любое строковое значение, включая пустую строку. За исключением случаев, когда явно указано, нет никаких ограничений на то, какой текст может быть указан в таких атрибутах.

HTML 5

Значение атрибута содержание дает значение по умолчанию элемента ввода. Когда атрибут content value добавляется, устанавливается или удаляется, если флаг грязного значения элемента управления является ложным, пользовательский агент должен установить значение элемента в значение атрибута content value, если он есть, или пустая строка в противном случае, а затем запустить алгоритм дезактивации текущего значения, если он определен.

Таким образом, ограничений нет, но значение может быть изменено алгоритмом дезактивации стоимости.


Например, если я прилагаю этот атрибут в одном конце, я не могу смело использовать одинарные кавычки в нем.

Вы можете. Вы просто не можете использовать литерал одинарные кавычки. Вы должны использовать символьные ссылки.

+0

& также должен быть экранирован – Tivie

+0

@Tivie. Правила, в которых '&' должны быть экранированы в HTML, согласованы в значениях атрибутов и из них. – Quentin

0

Пользователь может написать во входной строке браузера любое значение, js будет автоматически сбрасывать кавычки, когда вы помещаете небезопасную строку в значение ввода. Но если печать значение с помощью PHP, как это:

<input type='text' value='<?php echo $_POST['someField']; ?>' name='someField'> 

У вас будет исключение безопасности XSS (если вы передаете «> тревога (» некоторые '), на вход и представить его, вы будете иметь JS оповещения) You можно использовать функцию PHP htmlspecialchars($_POST['someField'], ENT_QUOTES)

2

Некоторые другие символы, такие как»0„приведет к проблемам при использовании в поле значения», и & должны быть экранированы

персонажа с кодом.“ - в он будет использоваться в любом месте внутри html-документа. Могут быть другие управляющие символы с проблемами (как Ctrl-Z), но я не знаю.

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