- 2009年8月29日 5:22 PM
- CakePHP
投稿内容を検証する(サニタイズとヴァリデーション)
まずは投稿されるデータの内容にJavaScriptとかHTMLタグとかがあって、これが機能してしまって不具合というか、よろしくないことが発生してはいけないので、そういう「効かれると好ましくない」タグを無害化(サニタイズ)することにする。
本当はコントローラかモデル側で処理(Sanitize)したかったんだけど、コントローラでやろうとしたら、記事一覧ではSanitizeできてるんだけど、記事本体にとぶとそうなってなかったり(addアクションではやれたのに、viewアクションで同じように出来ず)してうまく処理できなかったので、結局ユーザ側に出力する段階(ビューファイル)のほうで実装した。(エントリ記事一覧ページの/app/views/entries/index.ctpとエントリ本体の/app/views/entries/view.ctp)
とりあえず「clean」を使ったけど、エントリ本体ページのコンテンツ内では、imgタグとaタグは利用できるように変更したいと思うちょります。(オレ個人で利用するので、よく使いそうな外部へのリンクやFlickr等の外部サイトからの画像の読み込みは可能にしておきたい)
clean :: データのサニタイズ(Data Sanitization) :: CakePHPによる作業の定石 :: マニュアル :: 1.2 Collection :: The Cookbook
▼app/views/entries/index.ctp
ブログエントリ一覧
";
echo "
▼app/views/entries/view.ctp
オレ専用ブログHomeへ
投稿日時:
とりあえずこれでいいかなと思ったら、改行コードも強制的に「¥n」に変換されちゃうから、nl2br(改行コードを
タグに変換する)関数が使えなくなってしまうということに気がついてしまった。
サニタイズというのも、自分が思うようにやろうとするのはなかなか大変なんだと、こうやって自身で実践してみて初めて実感できるもんだなぁ。
エントリ本体でのcontentsでは具体的にサニタイズするタグを決めてやったほうがいいのか(これならnl2br使えるだろう)、それともサニタイズ処理の後で「¥n」を改行タグに置き換えるような処理を、例えば正規表現とかでやったほうがいいのかな。
んー、、今日もそんなに進まなかったけどリアルに色々学んだ気がする。なるほどなるほど。
秀和システム
売り上げランキング: 174026

初心者向け
深く書かれていて便利である
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://showzine.info/blog/2009/08/cakephp%e3%81%a7%e3%82%aa%e3%83%ac%e5%b0%82%e7%94%a8%e3%83%96%e3%83%ad%e3%82%b0%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-vol-%ef%bc%93.html/trackback
- トラックバックの送信元リスト
- CakePHPでオレ専用ブログを作ってみる vol.3 - SHOWJIN*BLOG より
