我對字符編碼感到困惑。與html編碼混淆
我知道人們以不同的方式做事,但許多人建議您在輸入數據庫時將輸入存儲在數據庫中,然後在閱讀時根據您打算使用的內容進行處理。這對我有意義。
因此,如果用戶輸入一個單引號,雙引號或符號,小於,大於號,這些將在我的數據庫寫爲'「分別& <>。
現在,讀數據php,我通過HTMLPurify運行文本,以捕捉任何注入問題。
我還應該htmlencode嗎?如果我不這樣做,一切似乎都沒問題(在Chrome和Firefox中),但我不確定這是否正確並將它在其他瀏覽器中正確顯示?
如果我使用htmlentities與E NT_QUOTES和htmlspecialchars,我開始得到這些字符的代碼,我相信這是我應該看到的,如果看看頁面源,但不是在用戶看到的頁面上。
問題是,沒有做編碼,我看到了我想看到的東西,但是在我的腦海裏有這樣的小竅門,我沒有正確地做它!
這可能會被標記爲脫離主題,因爲它完全基於意見。您可能想要用代碼示例來更改具體的問題。 – Difster
將用戶輸入存儲爲「原樣」,但在輸出之前對其進行消毒(例如,如果要防止XSS)。你不需要HTML編碼任何東西。 – Terry
將數據作爲實際數據 - 即,如果它是通過HTML,將其忽略。然後其他應用程序可以使用它。 –