参考にさせて頂いたページ
フォーム送信とForm Helper(2/5):初心者のためのCakePHP2.0 プログラミング入門
前回記述した SampleController.php を編集
前回記述したSampleController.phpを修正していく。
前回は使わなかったけど、
//App::uses( クラス名 , パッケージ名 );
App::uses('AppController', 'Controller');
App::uses('Sanitize', 'Utility');
が既に書いてある。
今回こそはSanitizeを利用するので、UtilityパッケージのSanitizeクラスを使用する記述が必要。
編集箇所としては
$this -> set("text1", $text1);
だったところを
$this -> set("text1", Sanitize::stripAll($text1));
に変更する。
テキストフォームに入力された文字列は、出力する前にサニタイズする事で、悪意のあるプログラムなんかを無効にできるらしい。
テキストフォームから
<div>test</div>
とか
<?php echo('<div>test</div>'); ?>
とか
<?php echo('test'); ?>
とか
<script>alert('test');</script>
とか入力してみたけど、あんまりその効果のほどはわからないので、また後日検索するなりしないとなー。
とりあえずjsのalertは実行されなかった。
ここまでの 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);
}
}
今回はここまで。