我有一個基於用戶輸入註冊用戶的腳本。這使用準備好的語句和白名單來防止sql注入。但我很難理解XSS的預防。如果您不輸出html,是否需要htmlspecialchars?
據我瞭解,你只需要防止XSS如果你是輸出到HTML頁面?這是什麼意思???
即時猜測與此註冊頁面並不適用,因爲我不輸出HTML的網頁?是對的嗎?
如果我是爲了防止XSS,做我用用htmlspecialchars?
我有一個基於用戶輸入註冊用戶的腳本。這使用準備好的語句和白名單來防止sql注入。但我很難理解XSS的預防。如果您不輸出html,是否需要htmlspecialchars?
據我瞭解,你只需要防止XSS如果你是輸出到HTML頁面?這是什麼意思???
即時猜測與此註冊頁面並不適用,因爲我不輸出HTML的網頁?是對的嗎?
如果我是爲了防止XSS,做我用用htmlspecialchars?
通常是正確的,如果您有任何返回的值顯示在頁面上,或者如果要插入信息到數據庫中供以後檢索和顯示(如用戶配置文件信息),您將要使用htmlspecialchars。
對我來說,當我進行用戶註冊時,如果他們在輸入字段中未能輸入正確的值,我會重新顯示頁面並輸入它們的值。在這種情況下,我用htmlspecialchars編碼。
如果在任何時候,您計劃將數據庫中的信息重新顯示到網頁中(如配置文件等所提及的),則應使用htmlspecialchars。
更好的安全比抱歉,我總是說 - 從未信任用戶輸入
基本上,XSS當你正在服用的用戶輸入未進行消毒並顯示在您的網頁發生。
例如:用戶輸入
<script>alert('hello you are hacked');</script>
在一個文本框,並在您的網頁上顯示這是註冊像
Hello, $username
後,這個突然被變成
Hello, <script>alert('hello you are hacked');</script>
這是一種形式的XSS
之一的effiecient辦法,以防止XSS是這樣
echo htmlspecialchars($varname, ENT_QUOTES, 'UTF-8');
據我瞭解,你只需要防止XSS如果你是 輸出HTML到頁面上?這是什麼意思???
XSS是由服務器向客戶端輸出HTML(實際上是Javascript)時發生的攻擊,當它不意味着這樣做時(顯然,當HTML是由惡意用戶特製和提供的) 。
我猜這個註冊頁面不適用,因爲我是 不輸出HTML的網頁?是對的嗎?
如果您不是輸出什麼來自用戶輸入您是安全的。
如果我是爲了防止XSS,我使用
htmlspecialchars
?
是的,這就足夠了。
如果您要插入數據以供稍後顯示,那麼稍後在顯示時間時最好使用'htmlspecialchars'。 – Jon 2012-04-10 23:50:52