Comment Bug

這個問題自Kirin接觸到WordPress之後就有,當你在發表Comment時,如果打了個單獨的小於(<)符號(通常拿來組表情如:~”~),後面的字就完全斷掉。

所以,每當打了長長的Comment之後,卻因為第二行或者其中某行中有大於冒號小於的表情,導致後面落落長完全不見蛋,你應該會非常驚訝!然後再留個一篇新的Comment說道:「嗚~剛剛打的一大段怎麼不見了?」…不過大家也沒辦法,這是系統的缺陷。

問題的根源在於kses.php裡面所執行的過濾函式,當你寫完Comment按下”發表”之後,所有的資料送進資料庫之前會交給kses過濾一下,結果你的嘰嘰喳喳就因為多了個那個小於剩下沒幾個字。WordPress這個過濾的函式並非由開發團隊從頭開始造輪子,而是套用kses這個專案。Project Info裡面這樣說道:

kses is an HTML/XHTML filter written in PHP. It removes all unwanted HTML elements and attributes, and it also does several checks on attribute values. kses can be used to avoid Cross-Site Scripting (XSS), Buffer Overflows and Denial of Service attacks.

WordPress對這個函式做了些微的修改(改個名稱而已,不讓函式名稱相衝突),並且用的是kses 0.2.1版本。Kirin曾試著把版本改成最新的0.2.2,問題依然存在,而Kirin也不知道怎麼修…試著找Bug List,看來該專案並不熱絡,User並不多…
嗯~為了防止惡意的使用者破壞網站,過濾是必要的手段,大家就忍受一下不方便吧!況且,我們也可以用全形來打這表情符號,對吧!


Comments

One response to “Comment Bug”

  1. 可以用wp_grin加入表情符號圖片讓訪客留言時點選,
    就不會因為自行輸入符號被過濾掉。