當前正在完成我的評論系統的編碼,並且希望它能夠使用Stack Overflow如何處理他們的帖子等,我希望我的用戶能夠使用BOLD,Italic和Underscore只是,要做到這一點,我會用以下內容:剝離輸入以完成純文本
_文字_ *加粗* -Italic-
現在,首先我想知道剝離評論完全乾淨的任何一種方式標籤,html實體等,例如,如果用戶使用任何html/php標籤,他們將從輸入中刪除。
我目前使用Strip_tags,但即使已經做出濫用或blatent XSS /注入嘗試,但可以使輸出看起來非常討厭,我仍然希望純文本輸出完整,而不是因爲strip_tags似乎讓它變得絕對混亂。
接下來我會做的是用粗體的html標籤替換星號,等等,在剝掉html標籤內容的乾淨之後。
人們如何建議我這樣做,目前這是評論的sanitize函數
function cleanNonSQL($str)
{
return strip_tags(stripslashes(trim($str)));
}
在輸出用戶提供的內容之前,請務必使用'htmlspecialchars',它很好(不能有XSS)。有幾個優點(確保文本的編碼與你所說的「htmlspecialchars」相匹配,如果你將用戶文本放在HTML屬性值中,你必須注意第二個參數),但基本上它就是這樣。 – Jon 2012-03-04 13:32:53