DedeCMS的HTML自定義字段字符被過濾問題
在dedecms后臺頻道模型增加自定義字段,一般HTML文字編輯器能解決用戶編輯問題,當(dāng)然還包括純單行或多行文本編輯。但發(fā)現(xiàn)dedecms會自動過濾掉某些敏感的字符,比如style樣式,百度地圖js調(diào)用問題。下面主要圍繞著兩個問題分享一下個人的經(jīng)驗(yàn)。
建立自定義字段可以參考dedecms如何添加自定義字段與前臺調(diào)用內(nèi)容
HTML文字樣式編輯亂碼問題
dedecms默認(rèn)的文本編輯器雖然不太美觀,但是最簡潔,我更換過百度神器:ueditor,功能強(qiáng)大,滿足了絕大用戶的編輯需要,但是替換的時候還需要二次開發(fā),比如上傳圖集問題,點(diǎn)不了本地上傳的按鈕等,所以還是選擇用默認(rèn)的文本編輯器。
自定義的HTML編輯器功能強(qiáng)大,但是還是不如默認(rèn)模型的文本編輯器,為了數(shù)據(jù)安全,比如用在評論的地方,會過濾掉某些敏感詞,或者某些非法竊取數(shù)據(jù)的代碼。dede使用includehelpersilter.helper.php進(jìn)行過濾,被過濾的可以找到如下字段:
$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
根據(jù)實(shí)際需要刪除style即可,就可以解決HTML文本編輯器的樣式亂碼問題。
百度地圖js失效問題
百度地圖生成器地址(http://api.map.baidu.com/lbsapi/createmap/index.html),設(shè)置完了之后點(diǎn)擊復(fù)制代碼,多余的代碼可以不要,只需要復(fù)制 <script type="text/javascript"> 到 </script >之間的代碼即可,其他代碼,根據(jù)實(shí)際情況直接寫在內(nèi)容頁模板里面,這里需要注意的是百度需要提供開發(fā)密鑰,站長們?nèi)ド暾埦秃昧?,直接寫在?nèi)容模板里。把顯示地圖的區(qū)域代碼放在適合的位置,代碼如下:
<!--百度地圖容器,樣式根據(jù)實(shí)際情況修改,id默認(rèn)為map--> <p style="width:700px;height:550px;border:#ccc solid 1px;font-size:12px" id="map"></p>
接下來就把js部分全部復(fù)制粘貼到自定義的文本框內(nèi),如果怕字符數(shù)限制,可以自己調(diào)大點(diǎn)。

把工作做完了之后,在前臺能看到一切正常,會發(fā)現(xiàn)再次進(jìn)入編輯的時候,某些字符會被過濾,比如:title,script等,變成sc<x>ript等亂七八糟的字符,讓地圖顯示失效。同樣按照上述,
$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
刪除title、script、javascript。但是第二次進(jìn)去編輯的時候,前臺地圖仍然失效,通過文本對比工具發(fā)現(xiàn),還有“,”逗號也被過濾了。在朋友的幫助下,還是圍繞includehelpersilter.helper.php這個文件下功夫。
在大概68行
$val = preg_replace('/([-,-,-])/', '', $val);
改成
$val = preg_replace('/([-|-|-])/', '', $val);
問題得到解決。但不知道是否涉及到安全問題,如果不刪除上述這些字段,還有其他實(shí)現(xiàn)方法。其實(shí)地圖亂碼應(yīng)該修改68行的代碼就足夠了,在includehelpersilter.helper.php發(fā)現(xiàn)以下這個字段,把它刪除就能解決樣式亂碼問題。

上一篇:DEDE專題節(jié)點(diǎn)ID不能出現(xiàn)重復(fù)的解決方法
欄 目:dedecms
下一篇:織夢最新發(fā)表的文章標(biāo)題顯示紅色字體
本文標(biāo)題:DedeCMS的HTML自定義字段字符被過濾問題
本文地址:http://www.jygsgssxh.com/a1/dedecms/15741.html
您可能感興趣的文章
- 08-05Dedecms文件目錄結(jié)構(gòu)解說(能知道織夢每個文件有什么用)
- 08-05Dedecms5.7版ckeditor網(wǎng)頁編輯器添加中文字體
- 08-05織夢DedeCMS獲取當(dāng)前欄目文章數(shù)量
- 08-05織夢模板如何添加和調(diào)用自定義字段的方法
- 08-05DedeCMS后臺模塊列表顯示空白的解決辦法
- 08-05DedeCMS自定義字段圖片調(diào)用的問題{dede:img ...}解決方法
- 08-05織夢DedeCMS調(diào)用顯示discuz里面主題的方法
- 08-05常用的織夢dedecms安全設(shè)置集合整理
- 08-05dedecms教程:上傳圖片相對路徑改成絕對路徑方法
- 08-05DedeCMS會員投稿自動加積分改為投稿審核后加積分




