2011-05-08 69 views

回答

15

是的,這是必要的。

否則,輸入數據中的</textarea>會混淆您的標記。

<textarea> <--------------------------- Your tag 

    </textarea> <------------------------ User input  
    <script>alert("Hello!");</script> <-- User input, XSS injection 

</textarea> <-------------------------- Your tag 
+0

:)感謝您的光輝榜樣! – kwichz 2011-05-08 12:50:16

+0

但是在textarea上,只是提示,如何編碼「新行」? \ n嗎? CHR(13)? – kwichz 2011-05-08 14:58:07

+0

@kwichz'\ n'應該做的。 – 2011-05-08 15:01:42

4

textarea元素被定義爲包含PCDATA,所以標籤不被允許在裏面,實體仍然被解碼。

瀏覽器將執行錯誤更正,但錯誤更正是首先不存在錯誤的可靠替代品。

某些錯誤不會被糾正(因爲它們不是語法錯誤),例如當您希望數據爲&lt;</textarea>時。

即使您決定某些錯誤對您而言可接受,那麼當您使用驗證程序執行基本QA時,您將產生噪音,從而可能會掩蓋您關心的錯誤。

所以總之,是的,有必要轉義具有特殊含義的字符。但是,只要你的字符編碼是直的,htmlspecialchars就足夠了。