2015-07-28 53 views
0

我知道某些字符在表單輸入的值屬性中是不允許的。例如,如果我將這個屬性單獨封閉,我不能安全地在其中使用單引號。有沒有其他字符我不能在這個屬性中使用?表單輸入的值屬性中允許使用什麼字符

+0

您不能在使用單引號的屬性中使用單引號,因爲它在您解析並混淆HTML解析器之前會關閉該屬性。這並不意味着不允許使用單引號。用雙引號和單引號在內的屬性是好還是轉義他們,所以他們不關閉屬性。我不知道任何不允許使用該屬性的字符 – GillesC

回答

1

HTML 5

除非另有規定,屬性HTML元素可以具有任意的字符串值,包括空字符串。除非明確指出,對於可以在這些屬性中指定哪些文本沒有限制。

HTML 5

值內容屬性給出了輸入元素的默認值。當值內容屬性被添加,設置或刪除時,如果控件的髒值標誌爲false,則用戶代理必須將該元素的值設置爲值內容屬性的值(如果有),或者空字符串否則,然後運行當前值清理算法(如果已定義)。

所以沒有限制,但價值可能會被價值淨化算法改變。


舉例來說,如果我用單接近這個屬性,我無法安全地在它使用單引號。

你可以。您只能使用文字單引號。你必須使用字符引用。

+0

&也應該被轉義 – Tivie

+0

@Tivie - 在HTML中需要轉義的規則與屬性值一致和不一致。 – Quentin

0

用戶可以在瀏覽器的輸入中寫入任何值,當您將不安全的字符串放入輸入值時,js也會自動轉義引號。但是,如果你使用PHP這樣的打印值:

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

您將有XSS安全異常(如果你通過「>警報(」一些');到輸入並提交它,你將有JS警報) 你可以使用PHP函數 htmlspecialchars($_POST['someField'], ENT_QUOTES)

2

其他一些字符,例如」,0‘將導致問題在值字段中使用時」,和&應逸出

與代碼值的字符。’ - 如它將會在html文檔中的任何地方使用 可能有其他控制字符有問題(如Ctrl-Z),但我不知道。

相關問題