我最近開始在我的「文章輸入」頁面上使用NicEdit。但是,我有一些關於安全性和防止濫用的問題。如何清理NicEdit的HTML POST值?
第一個問題: 我目前在我的數據庫類中用「mysql_real_escape_string()」來清理每個輸入。此外,我使用「htmlspecialchars(htmlentities(strip_tags($ var))」來清理HTML值。
如何在將數據添加到數據庫時清理「HTML輸入」,或者我的工作方式是完美的?
第二個問題: 當我在做這個問題,有一個問題:「類似的標題」所以我readed它曾經這是有人在談論「被濫用的HTML輸入」惹了有效的模板。 (例如,只是輸入)
它也可能出現在我的當前系統上。應該如何處理PHP?
Ps。我想繼續使用NicEdit,所以使用BBCode系統應該是最後的建議。
謝謝。
我會閱讀文章。我擔心可以將JavaScript代碼寫入HTML的用戶,或將用戶重定向到具有基本HTML重定向的注入(例如病毒鏈接)。他們仍然可以將自己的HTML包含到NicEdit文本區域,爲什麼它應該被信任? – Aristona
的確,但這是允許*選擇性* HTML輸入的一個普遍問題。如果你完全不信任你的用戶,只需HTML就可以逃脫一切。如果你信任你的用戶(比如說,因爲它只有你),只需按原樣使用文本即可。兩者之間的任何事情都是混亂的,IMO最好使用諸如Markdown之類的特殊標記語言來解決問題,該標記語言將轉換爲HTML。選擇性地清理HTML是很複雜的,最好使用像[HTML Purifier](http://htmlpurifier.org/)這樣的庫。 – deceze