App::uses('Sanitize', 'Utility');サニタイズの方法は、クラスにいくつものメソッドとして用意されていますが、とりあえずは「怪しいものは全部無効化する」のがよいでしょう。下に、先ほどのサンプルの修正をあげておきました。サニタイズを行なっているのがこの部分です。
$this -> set("text1", Sanitize::stripAll($text1));Sanitize::stripAllは、引数に渡したテキストからホワイトスペース、スクリプト、イメージ、スタイルシートなどの情報を全て取り除いて無効化します。とりあえず、これだけ覚えておけば、送信されたテキストを安全に扱えるでしょう。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※SampleController.php 修正 <?php App::uses('AppController', 'Controller'); App::uses('Sanitize', 'Utility'); class SampleController extends AppController { public function index() {} public function form() { $text1 = $this -> data["text1"]; $check1 = isset($this -> data["check1"]) ? "On" : "Off"; $radio1 = $this -> data["radio1"]; $this -> set("text1", Sanitize::stripAll($text1)); //★ $this -> set("check1", $check1); $this -> set("radio1", $radio1); } }
<< 前へ | 次へ >> |