AipoのAKStrigFieldにおけるgetValue()メソッドとtoString()メソッドについて。 どちらもvalueの値を返すメソッドなのだが、異なる点があるのでこちらにまとめる。
getValue()メソッドは以下のように定義されており、純粋にvalueの値を返す。
public String getValue() { return value; }
一方、toString()メソッドは下記のように定義されておりサニタイジング(valueの値を文字列に変換)してから値を取る。
public String toString() { return ALStringUtil.sanitizing(value); }
サニタイズを行わないとWebサイトに設置された入力フォームなどから、悪意のあるスクリプトコードが入力されると、その文字列が解釈・実行されることで様々な被害に遭う恐れがある。 サニタイズを行い、スクリプトコードを単なる文字列として扱うことでクロスサイドスクリプティングによる攻撃(上記のような攻撃)の危険性を下げることができるので必ず覚えておきたい。