View Full Version : gridデータのサニタイジング
ak_ext
9 Mar 2009, 1:34 AM
jspの中にグリッドを埋め込んで
使おうと思っているのですが、グリッドの表示データを、
JSTLの<C:out のようにサニタイジングするには、
どのようにするのが、一番簡易なのでしょうか・・
思いついたのはDBからデータをとってきた後、グリッドに入れる前に
共通処理(jsの中)でサニタイジングする事を考えています。
amanoman
9 Mar 2009, 2:15 AM
リスクのある文字を表示したい場合の関数。
Ext.util.Format.htmlEncode
リスクのある文字を取り除く場合の関数。
Ext.util.Format.stripTags
ちなみに、gridに表示する場合は、columnModelのrenderに上記の関数をセットするのが簡単だと思います。
columnModelのサンプル
var cm=new Ext.grid.ColumnModel([
{
header:'会社名',
dataIndex:'Company',
width:200,
render:Ext.util.Format.htmlEncode
},{
header:'電話番号',
dataIndex:'tel',
width:150
}
ak_ext
9 Mar 2009, 10:20 PM
htmlEncode は「<」、「>」、「&」、「"」を変換できるのですね。
c:outタグは「<」、「>」、「&」、「'」、「"」が対象となっているのですが、
シングルクォートは別途replaceなどで置換してあげないとダメそうですね。。
storeに入れる時が良いのでしょうか・・
ak_ext
10 Mar 2009, 1:49 AM
htmlencodeでサニタイジングのサンプルを作ったのですが、
1行1列目のデータは><がそのまま出ているのですが、
サニタイジングされているのでしょうか。。。
ak_ext
10 Mar 2009, 4:20 AM
ただデータにリンクを張れなくなってしまいました。
これはhtmlencodeした場合はしょうがないですよね。
ただデータにリンクを張れなくなってしまいました。
これはhtmlencodeした場合はしょうがないですよね。
独自のrendererを用意して、その中でhtmlencodeしたり、htmlの加工をすれば基本的に何でもできますよ。
Powered by vBulletin® Version 4.1.5 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.