我正在爲客戶端實現TinyMCE,以便他們可以通過他們網站的管理面板中簡單,熟悉的界面來編輯前端內容。TinyMCE,PHP和MySQL:安全性和轉義性問題
我以前從未使用過TinyMCE,但注意到您可以插入任何您想要的標記,並且可以愉快地將其保存到MySQL數據庫中,假設您在通過TinyMCE運行之前不會逃脫TinyMCE的內容查詢。
你甚至可以插入單引號,並讓它完全打破你的SQL查詢。
但當然,當我確實轉義內容時,像段落標籤這樣的良性表現形式被轉換爲HTML實體,所以WYSIWYG編輯器的全部內容都被擊敗了,因爲實體在顯示時會吐出來存儲在前端的內容。
那麼有沒有一種方法可以「選擇性地」從TinyMCE中「跳出」內容,以保持像P和BR這樣的無辜標籤,但可以擺脫像SCRIPT,IFRAME等危險的標籤?我真的不希望使用str_replace()或其他方式手動編碼和解碼它們,但我寧願不給我的客戶端一個大的安全漏洞。
謝謝。