1
我的一個模塊使用filter_xss
去除標籤,並且已將「fb:profile-pic」設置爲允許的標籤。但是,filter_xss不會允許具有名稱空間的標籤(因此冒號)。防止filter_xss剝離facebook-namespaced標籤
有沒有解決這個辦法嗎?或者,這是一個filter_xss中的錯誤,不能正確識別冒號作爲標記名稱的一部分?
我的一個模塊使用filter_xss
去除標籤,並且已將「fb:profile-pic」設置爲允許的標籤。但是,filter_xss不會允許具有名稱空間的標籤(因此冒號)。防止filter_xss剝離facebook-namespaced標籤
有沒有解決這個辦法嗎?或者,這是一個filter_xss中的錯誤,不能正確識別冒號作爲標記名稱的一部分?
所以不是一個完美的「答案」,但我通過(gasp!)修補核心來解決問題。在模塊/濾波器/ filter.module,線1059:
if (!preg_match('%^(?:<\s*(/\s*)?([a-zA-Z0-9:-]+)([^>]*)>?|(<!--.*?-->))$%', $string, $matches)) {
^^
Added colon and hypen here.
我加入冒號和hypens作爲允許的字符在代碼,以 「A-ZA-Z0-9」 沿。現在只需要記住在所有核心更新之後應用此修補程序。
[這是一個錯誤](http://drupal.org/node/1328768)我很害怕,2011年11月報告。看起來它目前未分配,所以沒有提示何時/如果它將被修復:( – Clive 2012-01-04 17:57:26
剛剛注意到,如果你看[Drupal 6的'filter_xss()'],你可能實際上已經評論過這篇文章了(http://api.drupal.org/api/drupal/modules--filter--filter。 module/function/filter_xss/6)和['filter_xss()'for Drupal 7](http://api.drupal.org/api/drupal/includes--common.inc/function/filter_xss/7)看到它們是相同的,所以問題仍然存在Drupal 6 – Clive 2012-01-04 17:59:27
謝謝克萊夫,我現在必須進行破解工作。 – 2012-01-04 18:46:34