表单输入的value属性中允许使用哪些字符

时间:2015-07-28 09:16:31

标签: html html-form

我知道表单输入的value属性中不允许使用某些字符。例如,如果我将此属性单独封闭,我就无法安全地使用单引号。我可以在此属性中使用其他任何字符吗?

3 个答案:

答案 0 :(得分:3)

HTML 5

  

除非另有说明,否则HTML元素的属性可能包含任何字符串值,包括空字符串。除非明确说明,否则对此类属性中可指定的文本没有限制。

HTML 5

  

value content属性给出input元素的默认值。当添加,设置或删除值内容属性时,如果控件的脏值标志为false,则用户代理必须将元素的值设置为值content属性的值(如果有),否则为空字符串,然后运行当前值清理算法(如果已定义)。

所以没有限制,但价值可能会被价值清理算法改变。

  

例如,如果我将此属性单独封闭,我就不能安全地使用单引号。

你可以。您无法使用 literal 单引号。你必须使用字符引用。

答案 1 :(得分:2)

应该转义其他一些字符,例如','和&amp ;.

代码值为“0”的字符在值字段中使用时会出现问题 - 如果在html文档中的任何位置使用它将会出现问题。 可能有其他控制字符有问题(如Ctrl-Z),但我不知道。

答案 2 :(得分:0)

用户可以在浏览器的输入中写入任何值,当你将不安全的字符串放入输入值时,js也会自动转义引号。但如果您使用这样的PHP打印价值:

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

你将有xss安全例外(如果你传递'&gt; alert('some');进入输入并提交它,你将有js警报) 你可以使用PHP功能 htmlspecialchars($_POST['someField'], ENT_QUOTES)