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);
}
}
| << 前へ | 次へ >> |