bispap hotmail
bispa****@hotma*****
2011年 6月 23日 (木) 23:52:45 JST
ご返答ありがとうございます。 鈴木様のブログでは、「例外的」にエスケープせずに出力する変数に 外部からの入力が紛れ込む危険性を考慮して 「原則としてすべての変数に対してエスケープ処理などを施す」 としているのですね。杓子定規にとらえていました。 アプリケーションの規模が増大・複雑化したり、仕様変更があった場合に、 確かにエスケープ漏れが生じる可能性が大きくなるなと初心者ながらに納得できました。 原則を常に意識し、もし原則から例外的に外れる箇所にはコメントを必ずいれておく等の 対策をとっていこうと思います。 今回鈴木様のブログで示されたコード・注意喚起は、初心者ながらに大変重要で 有益なものだと感じたのですが、CodeIgniterユーザーガイド日本語版サイトに 掲載できればいいのになと思ったのですが、いかがでしょうか? 初心者は特にセキュリティに関する知識が少なく、さらにCodeIgniterに関する事だと ユーザーガイドのドキュメント以上の情報は、なかなか手に入れにくいと思います。 熟練者の方だと脆弱性などに気付く場合もあるかと思いますが、 「CodeIgniter 2.0.1 以前の XSS フィルタにも脆弱性がある」ということを メーリングリストを見て初めて知りました。 CIはバージョンアップがはやく、翻訳作業も大変そうなので恐縮なのですが 上記の件ご検討いただけると幸いです。 ---------------------------------------- > Date: Thu, 23 Jun 2011 17:02:09 +0900 > From: kenji****@gmail***** > To: codei****@lists***** > Subject: Re: [Codeigniter-users] サイト構築の際のセキュリティについて > > Kenji です。 > > > > > はじめまして > > PHP/CIの初心者です。 > > 初歩的な質問なのですが、ご回答いただけると幸いです。 > > > > 先日、鈴木様のブログ > > CodeIgniterのXSS対策はどうあるべきか?その2 > > http://d.hatena.ne.jp/Kenji_s/20110621/1308632827 > > > > にて拙い質問をさせていただいた者です。 > > 「CodeIgniter徹底入門」を読みながら独学をしているのですが、 > > > > 101ページ〜 > > 【4.3.4】レイアウト機能を持たせたビュー > > の章で、 > > > > 【コントローラーファイル】 > > function index() > > { > > $data['title'] = 'サンプル'; > > $data['contents'] = 'CodeIgniterのサンプルです。'; > > $data['header'] = $this->load->view('parts/header', $data, TRUE); > > $data['main'] = $this->load->view('parts/main', $data, TRUE); > > $data['footer'] = $this->load->view('parts/footer', '', TRUE); > > $this->load->view('layout', $data); > > } > > > > 【layout.php】 > > <?=$header?> > > <?=$main?> > > <?=$footer?> > > ------------------------------------------------------------- > > #header.php / main.php / footer.php 省略 > > > > のようにありまが、鈴木様のブログのコメント欄にて > > 原則として「すべての変数に対してエスケープ処理などを施す」 > > とのご指導を頂きました。 > > 上記のようなコードはあくまで学習用で、 > > 本番環境では避けるべきとの理解でよろしいでしょうか? > > ビューを分割してインクルードすることは、本番環境でもありうると思います。 > > この場合、二重にエスケープ処理などはしてはいけないので、インクルードする > 方のビューは処理しないとするしかないと思います。 > > layout.php は、分割されたビューファイルを出力しているだけなので、分割 > されているパーツをすべてきちんと処理しておけば、全体として処理漏れは > ありません。 > > > 例外的な扱いになってしまいますが、このようなケースも実際にアプリを作って > いくと、どうしても出てくるようにも思います。場合によりエスケープせずに > 出力させる場合も生じると思います。 > > エスケープしないでよいということが即座に判断できればいいので、コーディング > 規約としてそのように対応することを共有できればいいのではないでしょうか。 > > > // Kenji > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users -------------- next part -------------- HTMLの添付ファイルを保管しました... Télécharger