Community Builderのフィルタ機能で、日本語を設定するとうまく抽出されない。
検索にヒットしない原因は、
フィルタの文字列をs(`cb_memo` =’%u30B6′)という形式で保存している
この%u30B6を数値文字参照(& #12470;のように)変換していて、
この数値文字でSQLを検索しているのでデータが該当しない
数値文字参照に変換しているのは
comprofiler.class.phpのutf8RawUrlDecode関数
●修正方法
■エスケープしている箇所
admin.comprofiler.html.php
の
moveOption3関数
if(condition!=” && condition!=null) condition=”‘”+escape(condition)+”‘”;
↓
if(condition!=” && condition!=null) condition=”‘”+(condition)+”‘”;
と、escapeをとってしまえばうまくいく
この修正により、エスケープしなくなりますので、 sqlで利用できないような文字列は使用できない
>確認したいんですが、修正により、エスケープされなくなるというのは、セキュリティ上は、あまり良くないってことでしょうか??
いえ。管理画面なので、セキュリティは大丈夫と思います。
参考:http://joomla.bamboo-waves.com/content/view/10/11/lang,english/