2010-01-24 30 views
1

使用PHP,哪種函數最適合與$ _GET []值一起使用,以使它們安全瀏覽器?

我已經閱讀了幾個htmlspecialchars()和htmlentities()。如果其中一個被使用或者是否有另一個更好的功能?

回答

4

使用htmlspecialchars就足以對HTML特殊字符進行編碼。 htmlentities僅當您要使用無法使用您使用的字符編碼進行編碼的字符時才需要。

但要確保指定quote_style參數,當你想使用的屬性值的輸出與單引號引用一樣:

echo "<input type='text' value='".htmlspecialchars($_GET['foobar'], ENT_QUOTES)."'>"; 

,當你指定字符集參數利用編碼比ISO 8859-1之外的字符:

echo htmlspecialchars($_GET['foobar'], ENT_QUOTES, 'UTF-8'); 
1

用htmlspecialchars()應適用於所有的$ _GET變量,你輸出到您的網頁。

2

您使用htmlspecialchars()來顯示$_GET變量,並使用urlencode()來對它們進行編碼。

0

如果你這樣做只是爲了安全(刪除<腳本>的等),而不是因爲你需要確保字符編碼正確(雖然這肯定是一個問題),它可能值得看看strip_tags ,這將完全移除標籤,而不僅僅是編碼<和>符號。這在某些情況下會更好一些 - <b> hello </b >將變成「hello」,而不是將標記轉換爲可見。