タグ

phpに関するichi_Sのブックマーク (104)

  • 2010-06-10 - 24時間CakePHP

    注意 この実装はクッキーにユーザ名とパスワードを保持させていますが、パスワードを保持させるのは大変危険なので、実際のアプリケーションで動かす場合は時限つきAuthorizeトークンを発行してそれを保持させる実装にするなど、クッキー盗聴対応を必ずしましょう。 トークンを使う実装に修正しました。(16:25) この実装は、クッキー盗聴対策のため、トークンを発行し、それをクッキーに保存します。 CakePHPのクッキーコンポーネントは賢く、Security.ciperSeedというキーを元に復号可能な暗号化をクッキーに対し施しているため、直に読めることはないのですが、それでも解析されたら丸見えになります。これを避けるため、パスワードを直接保存することがないようにしましょう。 ワンタイムトークンを使う実装に修正しました。(18:51) いつも同じトークンを発行してしまうと、再生(リプレイ)攻撃の脆

    2010-06-10 - 24時間CakePHP
  • まちがった自動ログイン処理

    (Last Updated On: 2018年8月20日)問題:まちがった自動ログイン処理の解答です。このブログエントリは最近作られたアプリケーションでは「問題」にしたような実装は行われていないはず、と期待していたのですがあっさり期待を破られたのでブログに書きました。このブログの方が詳しく書いていますけが「Webアプリセキュリティ対策入門」にも正しい自動ログイン処理を書いています。 参考:自動ログイン以外に2要素認証も重要です。「今すぐできる、Webサイトへの2要素認証導入」こちらもどうぞ。HMACを利用した安全なAPIキーの送受信も参考にどうぞ。 間違った自動ログイン処理の問題点 まず間違った自動ログイン処理を実装しているコードの基的な問題点を一つ一つ順番にリストアップします。 クッキーにランダム文字列以外の値を設定している クッキーにユーザ名が保存されている クッキーにパスワードが保

    まちがった自動ログイン処理
  • CakePHP UNIONして取得したデータをページングする方法

    別にUNIONに限らず、生のSQLを投げて取得したデータは、何でも同じようにページングできる。 肝 ページングのために利用する新しいモデルを作成する そのモデルでは$usetable=falseに設定し、既存のテーブルとは関連付けしない。 そのモデルにおいて、paginate関数とpaginateCount関数をoverrideする。 コントローラー側では、既存のpaginateと同じ利用の仕方をする。但し引数として設定しても無視する項目がある。 サンプルコード 下記のサンプルコードはPHPMyScrumでのタスクとストーリーの横断検索機能の実装。 app/models/search.php class Search extends AppModel { var $useTable = false; var $base_sql = " SELECT ? as itemtype, resol

    CakePHP UNIONして取得したデータをページングする方法
  • CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました

    すでにご存知の方も多いと思うのですが、CakePHPに深刻なセキュリティホールが見つかりました。 SecurityComponentの実装に問題があり、結果、外部から任意のコードを実行させることができるという深刻な内容です。 セキュリティホールの概要や攻撃手順については以下のエントリが詳しいですので、ご一読を。 CakePHPPHP コード実行の脆弱性を使って CakePHP を焦がす なお、今回の問題はSecurityComponentを利用していない場合は発生しません。 もしSecurityComponentを利用している場合は、以下のいずれかの方法で早急に対策してください。 1. CakePHP1.2.9 or 1.3.6にアップグレードする。 この脆弱性を受けて修正バージョンが出ています。 CakePHP 1.3.6 and 1.2.9 released | The Bake

  • PHP5.3を活用したフレームワークのLithiumを触ってみたよ – その1 | We've only just begun

    Lithiumはphp5.3の機能をバリバリ使った新しいフレームワークです。 これまでぼくは、5.3の機能?何それ? という感じだったので、勉強にもなるかなと思い色々触ってみました。 ということで、まず、チュートリアルをやったまとめです。 1.lithium実行環境の用意 事前に用意する環境 ・php5.3 ・mysql5 OSはMacOS Xで試しました。 lithium自体は、gitで簡単に設置できます。 ↓からlithiumの公式サイトにユーザ登録して、git cloneで入手します。 http://rad-dev.org/users/add 今回はDocumentRootが/sitesであると仮定して、/sites/lithiumに設置します。 # cd /sites # git clone code@rad-dev.org:lithium.git (/sites/l

  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ
  • PHPでMongoDBを使ってみる - nazolabo

    5ヶ月ぶりの更新とかどういうことなの… MongoDBって何だ http://ja.wikipedia.org/wiki/MongoDB MongoDBのインストール バイナリが配布されているのでそれを使う http://www.mongodb.org/ 自分のプラットフォーム用バイナリを落として、/opt/mongoに入れると仮定。変なプラットフォームの人はgithubから拾ってくる。 あとデータフォルダがデフォルトで/data/dbとかという変なパスなので作る sudo mkdir -p /data/db PHP拡張を入れる sudo pecl install mongo あとphp.iniにextension=mongo.soを書く 起動 普通に実行してもいいけど http://gist.github.com/232227 このへんにinitスクリプトがあるので拾ってきてパスを書き換

    PHPでMongoDBを使ってみる - nazolabo
  • MongoDBをphpから操作する方法。 - @camelmasaの開発日記

    前回の記事でMongoDBをインストールしましたので、MongoDBphpから操作してみました。 CentOS5.4にMongoDBをインストールする方法! - @camelmasaの開発日記 testデータベース&testコレクションの作成 testデータベース&testコレクションの作成には下記のスクリプトを使用しました。 (Mongoクラスのコンストラクタは適切な値を設定して下さい。) <?php $mongo = new Mongo("192.168.80.139:27017"); $db = $mongo->selectDB("test"); $col = $db->createCollection("test"); $col->insert(array("test" => "test")); スクリプトを実行すると、/data/db内にデータベースファイルが作成されます。 -

    MongoDBをphpから操作する方法。 - @camelmasaの開発日記
  • PHPの文字化けを本気で解決する - ぎじゅっやさん

  • cakePHP cycle-helper: alternating row colors with cake | Functino

    It’s been a long time since my last posting. Today I’m going to show you my cycle-helper for cakePHP. If you haven’t read my other posts on alternating row colors, do so now: Alternate Table Rows in CakePHP (and ZF, Rails, Smarty) The cycle-helper is easy to use and install and if your familiar with the rails cycle-helper you already know how it works…. So: how does it look when you use my helper

  • PHPでリフレクション

    こんにちは、小川です。たまには文句でも書いてみます。 先日ふと「スパイシーチキン」という単語を聞いて、昔のアシアルブログを思い出しました。 スパイシーチキンという単語を便りに検索をしてみると、スパイシーチキンの絶頂期は2006年から2007年の初めごろ。 僕は2006年の12月18日にアシアルにアルバイトとして入社したため、スパイシーチキン時代のアシアルを知っています。 むしろ、スパイシーチキンがあったからこそアシアルに入社したといっても過言ではありません。 しかし、今はどうでしょう。日常が垣間見えるのは、おおよそ月に1度投稿される阿部さんのブログくらい・・・。 symfonyの話しかしない人もいるし。そんなだからいつまでたっても彼女ができないんですよ! ああ、、、あの頃のアシアルブログはどこへいってしまったのでしょうか。 やはりここはアシアルブログ再建のためにも、再度スパイシーチキンに登

    PHPでリフレクション
    ichi_S
    ichi_S 2010/10/15
  • CakePHP Behaviorでバリデーション周りの効率化を図る : エクスギア Blog

    CakePHPでバリデーションを使う際、標準(CakePHP1.2)のままでも十分開発はできますが、大きめのプロジェクトや複数のプロジェクトでも汎用的かつ効率的に使えるようにできないかと検討しました。 バリデーション改善の目的 エラーメッセージを日語化し共通化・デフォルト化したい 独自バリデーションメソッドを共通化したい ルール配列を簡単に記述したい(項目が多いとソースが長くなり過ぎて見通しがよくない) バリデーションの前に自動で整形処理をしたい(半角英数変換やカタカナ変換など) 実装にあたって バリデーションメソッドの共通化については、 cakephperさんの日記:よく使う独自バリデーションルールをプラグインのbehaviorにまとめる に記載してありますように、プラグインのbehaviorで管理するほうが良いと思いますが、今回は弊社で過去に実装した通常のbehavior(Bas

  • Behavior の適用範囲を広げる $mapMethods | へびにっき

    (CakePHP 1.2.5) ビヘイビアに定義されたメソッドは、モデル自身のメソッドであるかのように呼び出すことができます。 class FooBehavior extends ModelBehavior { function foo($model){ /* ... */ } } class Bar extends AppModel { var $actsAs = array('Foo'); } // in Controllers $this->Bar->foo(); しかしこの方法では Dynamic Finder のように動的に名前が変化するメソッドは実装できません。 ModelBehavior クラスの $mapMethods プロパティを使用すると、この制約を乗り越えることができます。$mapMethods は配列で、次のような構造をしています:

  • CakePHP - Build fast, grow solid | PHPフレームワーク

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    CakePHP - Build fast, grow solid | PHPフレームワーク
  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • 「iPhone 11/11 Pro/11 Pro Max」は見た目がどう進化したのか前モデルも含めて徹底比較 - GIGAZINE

    近年ではGoogleの「Gemini Nano」やAppleの「Apple Intelligence」など、大規模言語モデルやパーソナルAIをスマートフォンに統合する動きが強まっており、これに伴ってデバイスの優れた冷却技術に対する需要も高まっています。アメリカの半導体開発企業のxMEMSが、スマートフォンやタブレットなどのデバイスに搭載可能な冷却チップを開発しました。 xMEMS | Active Micro Cooling | XMC-2400 https://xmems.com/products/microcooling/ xMEMS XMC-2400: The World’s First 1mm-Thin Active Micro Cooling Fan on a Chip - YouTube 1st-of-its-kind 'cooling chip' could prevent

    「iPhone 11/11 Pro/11 Pro Max」は見た目がどう進化したのか前モデルも含めて徹底比較 - GIGAZINE
  • APC(Alternative PHP Cache)再び - Do You PHP?

    PECLに登録されているAPC(Alternative PHP Cache)は、PHPの中間コードのキャッシュや最適化を行う拡張モジュールです。APCは前に触ったことがあり、それがいつだったか調べてみたら、なんと2002年3月!使っていた環境は、PHP4.1.1+APC1.1.0。。。にもかかわらず、何だかGIGAZINEからリンクされているようで、リンク先としては結構恥ずかしいかも。。。 ということで、再度ざっとまとめることにしました。 PECL :: Package :: APC 使用した環境 まずは確認環境ですが、CentOS4.4+PHP5.2.0です。PHPは以下のようなconfigureオプションを付けてソースからbuildしています。 ●PHP5.2.0のconfigureオプション--with-apxs2=/usr/local/apache2/bin/apxs \ --pr

  • blog.katsuma.tv

    1.2だとBasic認証対応ページを作るのも超簡単です。 対応させたいControllerにSecurityコンポーネントを適用 まずSecurityコンポーネントを利用します。 class HogeController extends AppController { var $name = 'Hoge'; var $uses = array('Hoge'); var $components = array('Security'); ... } 認証情報を追加 beforeFilterに認証に必要な情報を追加します。 function beforeFilter(){ parent :: beforeFilter(); $this->Security->loginOptions = array('type'=>'basic'); $this->Security->loginUsers = a

  • CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う : エクスギア Blog

    CakePHP1.2から新たにBehavior(振る舞い)クラスが実装され、モデルに共通の処理を定義することが可能になりました。 今回はBehaviorを使ってモデルの各メソッドの結果を自動的にキャッシュするクラス(CacheBehavior)を検討してみました。 CakePHPでは標準でビューキャッシュをサポートしていますが、Cacheクラスを利用することで簡単にキャッシュ機能を組み込むことができます。 ソースコードは少し長いので、一番最後に記述することにします。 CacheBehaviorの目的 CakePHPでの開発では、 ・まず動作するアプリケーションを構築する ・パフォーマンス上ボトルネックになっている部分のチューニングを行う という手法が一般的だと思います。 そこで、CacheBehaviorはチューニング時に実装していくことを想定し、構築時のソースコードになるべく

  • PHPでのCSV出力について

    こんにちは、中川です。 今日は、PHPでのCSV出力について書いてみようと思います。 CSV出力といえば、カンマ区切りの1行ずつのデータで出力すれば・・・と、簡単なイメージもありますが、実はいろいろと細かい対策が必要な処理のひとつです。 ■データ内の改行 データ内に改行文字がある場合、そのデータは「"」(ダブルクォーテーション)で囲う。 (例)

    PHPでのCSV出力について