WEBアプリケーションのセキュリティの一つとしてCSRF対策(CSRFの詳細についはIPAを参照)が挙げられます。CakephpではCSRFコンポーネントを利用するのが通常でしょう。 そこで必要になるのが CSRFトークン。単にajaxを利用しようとすると、「CSRF token mismatch」エラーが発生します。そして、バージョンによる差異はあるかもですが、SecurityComponetエラーも発生。([Cake\Controller\Exception\AuthSecurityException] '_Token' was not found in request data.)エラー内容: リクエストデータにトークンがありまへんで Cakephp は Formヘルパーを利用し、$this->Form->create() すれば、自動でCSRFトークンを生成してくれます。よって、通
調べてみるとCsrfProtectionMiddlewareを全体的に無効化していたり、 ルーティング設定に混ぜ込んでいたりするものが多かったのですが 今回はそれ以外の方法で良さそうなものがあったので紹介します。 まずは結論から src/Application.phpでCsrfProtectionMiddlewareを whitelistCallbackメソッドでCSRF保護しないControllerを指定して読み込ませる。 バージョン CakaPHP 3.9.10 (CakaPHP 3.8系 でも使えると思います) ホワイトリスト登録 CakePHP4系だとCookBookに ホワイトリストコールバック機能を使用して、 CSRF トークンチェックを実行する URL をより詳細に制御できます。 とあって実装の仕方を見ても楽そうだったので、CakePHP3系でもできないかなーとコアファイルを
Overview CakePHP3のMigrationファイル及びTableクラスで、 MySQLのBIT型を扱おうとした際に、調査とひと手間の実装が必要だったのでメモっておく。 ちなみに経緯は以下のような感じ CakeアプリでDBにフラグ用カラムを追加したくなった 下記記事などを参照してBIT型にしようと思った MySQLに真偽値を格納する場合はbit(1)型のフィールドが最適 - Qiita 公式ドキュメントの Migrations - 3.x にはPhinxで扱える型リストにはBIT型の記述がなかった ただ調べたところ Feature Request: MySQL BIT type · Issue #1106 とか Fix MySQL BIT Column Type (#1106) by shbmira · Pull Request #1248 などがあるので利用できそうだった Mi
こんにちはPHP Matsuriでは色々とお世話になってる@kozoです。 この記事は2014年CakePHP Advent Calendarの11日目です CakePHP 3系からモデルは大きく変わり、戻り値が配列からオブジェクトになるとか、Modelが1ファイルだったものがTableとEntityに分かれるなど色々変わって非常に便利になってます! 今回は大きく変わったもう1個のfind(SELECT句)のSQLの組み立て方法について調べてみました。 find QueryBuilderの開始地点になり、SELECT用のQueryオブジェクトが生成されます。 QueryオブジェクトをメソッドチェーンでつなげることでSQLを組み立てます。 // 基本的な使い方 $this->Users->find() ->where(条件A) ->where(条件B) ->order(ソート条件A) ->o
ホーム / ハック / CakePHP3でのデバッグコードはdebug()を使うと良い
こんにちは。ライターの亀田です。 PHPには様々なフレームワークがあります。 中でもCakePHPは歴史も長く多くのプログラマーに愛されています。 最近はFuel,Laravelなどの新興勢力が台頭してきましたが、Cakeを愛好する人は少なくありません。 そのため、ニーズに応えて2.0系列から3.0系列へとバージョンアップを遂げてきました。 ここでは、特にModelに着目し、2.0と比較しつつ、3.0の特徴について説明していくことにします。 まず、 ・Modelとは で、Modelとは何かについて説明し、以下で、詳しくその詳細の機能について説明していきます。 特に、CakePHP2と3の違いについて説明します。 その後、 ・findでEntityを検索し表示する方法 ・saveでデータを保存する方法 ・バリデーション(validation)でデータをチェックする ・joinでテーブルを結合
CakePHP3 CakeDC/Usersで所有レコードのみ閲覧、更新、削除する権限設定方法 CakePHP3のユーザ管理プラグイン「CakeDC/Users」を使用して権限管理をする際の前提条件 この記事では、下記を実装するための解説です。 CakePHP3で、ユーザ管理プラグイン「CakeDC/Users」を使用してユーザ管理をするシステムを構築している。 その中で、ユーザAが登録した情報は、ユーザAが所有者として登録され、その登録情報はユーザAのみが見ることができ、更新、削除も所有者 Aのみが行える。 という機能を実装することを想定しています。 まず、CakePHP3にユーザ管理プラグイン「CakeDC/Users」を導入する方法については、下記の記事を参考にしてください。 CakePHP3のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説・3.6以降対応
公式サイト見てもよくわからなかったので手動で一個ずつ確認した。 まとめると以下のような感じ ●tablesテーブルがあるとすると、主キーは id と table_id が使える ●othersテーブルがあったとして、tablesテーブルのidが使いたい場合は table_id というカラムをつくるとcakephpが勝手に外部キー扱いにしてくれる ●主キー(プライマリーキー)は1つにしておく(複合キーにしない、外部キー設定してもエラーが出る) ●hoge_other_tablesのテーブルのviewは http://example.com/hogeOtherTables でアクセスできる ●hogeOtherTablesのテーブルのviewも http://example.com/hogeOtherTables になるので注意 ●othersテーブルに not_exist_id という物理名
CakePHP3でformを作った時に、例があんまりなかったり、2系の情報見てうまくいかなかったりしたのでめも 例 <?=$this->Form->create(null,['type' => 'post'])?> <ul class="list"> <?= $this->Form->input('reportType', [ 'type' => 'radio', 'options' => [ ['value' => 'blue', 'text' => '青'], ['value' => 'mint', 'text' => 'ミントグリーン'], ['value' => 'red', 'text' => '赤'] ['value' => 'white', 'text' => '白'] ['value' => 'purple', 'text' => '紫'] ['value' => 'yel
前提:httpが繋がる状態であること nginxのインストール 「amazon-linux-extras」 というAmazonのパッケージライブラリ?を使います。 好きなバージョンを入れたい場合は、yumなどでインストールを行なってください。 amazon-linux-extras listでインストールできるバージョンを確認 インストール済みのものは色がつきます。 $ amazon-linux-extras list 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12=latest enabled [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 postgre
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く