我有一個表單,並且現在,您可以鍵入任何JavaScript等等。任何XSS等。從Javascript保護HTML表單/攻擊
我該如何着手創建白名單,以便您只能發佈字符。
在某一點上,我想任何與http://
開始轉換爲
<a href="http://..."></a>
感謝
是這有效嗎? http://htmlpurifier.org/
我有一個表單,並且現在,您可以鍵入任何JavaScript等等。任何XSS等。從Javascript保護HTML表單/攻擊
我該如何着手創建白名單,以便您只能發佈字符。
在某一點上,我想任何與http://
開始轉換爲
<a href="http://..."></a>
感謝
是這有效嗎? http://htmlpurifier.org/
的jQuery或JavaScript是首選
哦,不,你不能這樣做,你看到了什麼?因爲即使你「消毒」使用JavaScript您的數據,沒有人的距離
換句話說,您必須在服務器端執行驗證/清理。 Javascript驗證可以提高用戶的體驗(例如,通過提供對無效輸入的即時反饋)。
但是,在許多高負載應用程序開發人員使用部分客戶端驗證(但所有輸入必須準備寫入數據庫)。因爲你將使用PHP,我建議你用htmlspecialchars(),mysql_real_escape_string()等解析你的$ _POST值。您必須使用正則表達式將任何以「http://」開頭的內容轉換爲鏈接(也可以使用explode('。',$ _POST ['yourInput']),這可以更容易爲你)。
非常有用的謝謝:)更新你的文章:mysql_real_escape_string在PHP 5.5.0中被棄用,它在PHP 7.0.0中被刪除。資料來源:http://php.net/manual/en/function.mysql-real-escape-string.php – 2017-01-18 06:36:40
你知道你不能使用客戶端代碼進行數據驗證 - 你的用戶可以關閉JS。所以,除非你運行服務器端JavaScript,否則你將不得不在服務器端使用另一種語言檢查腳本標記/壞字符的存在...... – tobyodavies 2010-11-17 08:17:02
謝謝,我現在意識到了。你能推薦任何預先構建的解決方案嗎? – switz 2010-11-17 08:33:53
你使用的服務器端腳本是什麼?它是PHP,.net。 perl,... – sathish 2010-11-17 08:36:24