タグ

CakePHPに関するotomexのブックマーク (10)

  • CakePHP 1.2.x, 1.3.x, 2.x の Paginate / PaginatorComponent に SQL インジェクション可能な脆弱性

    CakePHP 1.2.x, 1.3.x, 2.x の Paginate / PaginatorComponent に SQL インジェクション可能な脆弱性 CakePHP(1.2.x 以降全て)の Paginate / PaginatorComponent にて SQL インジェクション可能な脆弱性が見つかりました。 すでに cakephper さんの blog でも注意勧告されていますが、 連休中にリリースされた情報ということで見落としている人もいると思うので、こちらでも。 内容 この脆弱性を悪用すると Paginate / PaginatorComponent にて SQL インジェクションが可能となります。 現在は影響の大きさを考慮して、公式サイトでは脆弱性の詳細は明らかにされていませんが(一定期間、ユーザのアップグレードを待って公開するようです。)、私が開発環境で試したところ、S

  • CakePHPで、MySQLとPostgreSQL両方を使いつつ、さらに違う文字コードに対応する方法 | zaru blog

    めったにないタイプですが、つい先日すでに存在しているデータベースを使用して新しいサイトを立ち上げるという案件がありました。しかもMySQLUTF-8だけど、PostgreSQLはEUC-JP…。おぉう。というわけで、CakePHPでサクっと両方のデータベースに対応してみました。 モデルの作成 config/database.php class DATABASE_CONFIG { //MySQL_DB var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'id', 'password' => 'pass', 'database' => 'name', 'prefix' => '', ); //PostgreSQL_DB var $pg = ar

  • CakePHP1.3にSearch Pluginをいれてラクラク検索しよう【1/2】

    CakePHPには便利な機能が山盛りで、中でもページネータ(以下ページャ)はかなりの使用頻度があるんじゃないだろうか。 データベースの特定のテーブルを一覧表示する際なんか、数千件を1ページに収めるわけにもいかず、かといって先頭の10件だけを表示するなんてアホらしすぎるわけだ。 ページャというのは、1ページ10件、残りは次のページ!的な振る舞いをするコンテナのことだ。 CakePHPではこのページャをヘルパを使っていろいろなスタイルで表示できるんだけど、一つ困ったことがある。それはなにか!? 独自の検索フォームと絡めるとき、検索結果を維持したままページ移動ができないという点だ。 検索フォームの「名前」に「太郎」と入力して「検索」ボタンクリック 「名前」に「太郎」が含まれるリストの1ページ目が表示 ページャで2ページ目へ移動 「名前」に「太郎」が含まれる条件がクリアされ、何も検索してない状態の

    CakePHP1.3にSearch Pluginをいれてラクラク検索しよう【1/2】
  • CakePHP セキュリティ対策について考える(SQLインジェクション、XSS、CSRF) | hijiriworld Web

    Posted on: 2011/11/18 CakePHP セキュリティ対策について考える(SQLインジェクション、XSS、CSRF) 概要 SQLを使って不正にデータベースを操作する攻撃 攻撃例 ユーザー名とパスワードを入力してログインする処理があるとする。 username と password の組み合わせが、データベースのものと一致すれば認証するという仕組みだとする。 SELECT * FROM users WHERE username='$username' AND password='$password' ここで、($username: admin, $password: ' OR 'a'='a)と入力すると、SQLは以下のようになる。 SELECT * FROM users WHERE username='admin' AND password='' OR 'a'='a' こ

  • CakePHP 比較演算子インジェクションに注意

    @deprecated この情報はCakePHP1.2betaまでのものです。1.2RC1についてはこの方法は有効ではありません。詳しくはCakePHP 1.2RC1からは比較演算子をキーに書くをどうぞ。 CakePHPのモデルで検索条件を指定する場合は比較演算子に注意が必要です。 検索条件では↓な感じで条件値の他にSQLの比較演算子を入れることができます。 <?php class UserController extends AppController { funtion index($id) { $id = is_numeric($id) ? $id : 0; // $id より大きなidを持つレコードを取得 $list = $this->findAll(array('id' => '> ' . $id)); $this->set('list', $list); } } ?> これを見

  • Cake Phpでの安全なサイトの作り方1(Sqlインジェクション)

    7. 例1 $data = $this->Sample->findAll('id=' . $value); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL の条件が「 WHERE id=1 or 1=1 」となり、 全てのデータが取得できてしまいます。 8. 例2 ( CakePHP1.1 の場合) $conds = array('id' => '= ' . $value); $data = $this->Sample->findAll($conds); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL 文は「 WHERE `id` = '1 or 1=1' 」という感じになり、 例1の様な全件取得はなくなります。 ※ 「 '= ' 」の用に

    Cake Phpでの安全なサイトの作り方1(Sqlインジェクション)
  • https://www.multiburst.net/sometime-php/2009/02/cakephp-12-sql-injection/

  • CakePHPの防御力を試す1〜SQLインジェクション〜 - すたら日記

    【CakePHP 1.3.2】 CakePHPのデフォルトの状態で、どこまでセキュリティ対策が 施されているのかを実験します。 【実験方法】デバッグを"2"に設定し、予想される攻撃によってどのような SQLが生成されるのかを確認します。 【/app/config/core.php】 Configure::write('debug', 2); 1. SQLインジェクション 【実験環境】下記の3つのメソッドについて、CakePHPの対応を見てみます。 read() find() findById() 【コントローラ】 function view($id){ //【1】 $this->data = $this->User->read(null, $id); //【2】 $this->data = $this->User->find('first', array('conditions'=>arr

    CakePHPの防御力を試す1〜SQLインジェクション〜 - すたら日記
  • CakePHP開発者が知るべき10のこと

    先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail

  • 1週間でトリビア共有サイト”trivist”を作ってみた

    ここのところ、ブログの更新もツイッターのつぶやきも完全にストップしていました。 集中力のない@tfmagicianにしては珍しいことです。 何をしていたか。 こんなウェブ・サービスを作っていましたよ。 『trivist』おもしろいトリビア・雑学を紹介! 実はこれ、作成期間1週間です。 シンプルなサイトなので、恐らく、開発に慣れた人なら1週間は余裕でしょう。 今日は、まだフレームワークを使った開発、あるいはウェブ・サービスの開発自体に慣れていない人に向けて、高速開発に関するtipsを紹介します。 高速開発とは何か考える まず、高速開発を可能にする”最強最大の魔法“を考えましょう。 それはこれです。 コーディングしない コーディングしないで、システムが出来ればなんと良いことか! これはエンジニアにとって、当たり前のことです。 しかし、これを念頭に置くのと置かないのでは、まるで開発速

  • 1