2011-10-30 56 views
-1

我將數據導入到數據庫中的文本字段。然而,當我嘗試輸入Mysql的改變了我的HTML標籤失去作用

<strong> Hi There </strong> 

我發現它在表(使用PHP myadmin)作爲

"&lt;strong&gt; Hi There &lt;/strong&gt;" 

,顯示它在我前面的網頁作爲

<strong> Hi There </strong> 

顯然不是預期的結果。

任何想法嗎?我正在使用常規文本格式。

+1

你確定它的MySQL這樣做,而不是PHP?它看起來像你用來寫入數據庫的任何方法是消毒輸入以防止SQL注入。 –

+1

很可能MySQL沒有這樣做,它可能是調用PHP中的'htmlentities()'的結果 – Clive

+0

您是否在使用任何'wysiwyg'插入數據? – yoda

回答

1

呀。這裏發生的是簡單的編碼,因此存儲的表單是安全的。在將其顯示在網頁上之前,將它傳遞給PHP內建html_entity_decode()。

需要注意的是,如果這種情況沒有發生,那將是對別人很容易輸入自己的HTML,不應該有HTML(如用戶名),然後他們可以修改網站的字段。

+0

謝謝。我將不得不考慮這一點,因爲我對PHP很陌生。這確實很有意義。我感謝你指點我在正確的地方,因爲我迷失了那一個。 – user1020339

0

當處理被保存在數據庫或顯示在您的內容中回來,你應該總是知道的XSS攻擊不同的用戶輸入。更好的安全然後抱歉...

用戶名: 有最小&最大長度的檢查,沒有了ASCII範圍&的嚴格無HTML或特殊字符像<>;'"%從一開始&端部修整的空間。如果輸出到表單總是使用htmlspecialchars()

密碼: 具有用於最小&最大長度的檢查,通過具有在租賃1個國會大廈和一種α-炭作保證器。保存到數據庫時始終進行加密&不使用md5。如果輸出到形式,如果不使用type="password"屬性始終使用htmlspecialchars()

電子郵件: 檢查它是一個有效的電子郵件地址。

主點評,帖子提交方面: 地帶所有的JavaScript,HTML和/或允許用戶如果需要的圖片,鏈接插入BB碼,然後格式化時顯示BB代碼轉換爲有效的HTML。