タグ

PHPに関するblythegirlsのブックマーク (109)

  • PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました
  • PHPカンファレンス2012でphp-timecopについてLT発表しました - hnwの日記

    9月15日に開催されたPHPカンファレンス2012でLT発表してきました。以下が発表資料です。 発表資料:「php-timecopを実戦投入してみた」(slideshare版)(PDF版) ただ、利用シーンがイマイチわからないという声を何件か頂戴しましたので、稿で改めて補足します。僕が想定している利用シーンは次の3つです。 非エンジニアが、時刻に依存する手動テストを行う場合 この場合、ステージング環境で利用することになると思います 例:20時からセールが始まるのを、19時時点で動作確認したい エンジニアが、時刻に依存する手動テスト・自動テストを行う場合 例:絶妙なタイミングで日またぎや年またぎが起こる状況を再現させたい パラノイアなエンジニアが、date関数の第二引数が省略されたコードを見てブチ切れた場合 社内のニーズとしては1番目だったので伝えるには一番わかりやすいかと思ったんですが、

    PHPカンファレンス2012でphp-timecopについてLT発表しました - hnwの日記
  • PHPのおそるべきバグレポート | スラド IT

    タイムリーなことに、ちょっと前にSquirrelMail を PHP5.4 に対応させた [srad.jp]のですが、原因を一言出言うと「htmlspecialchars の仕様変更のせいで、Shift_JISやEUC-JPで表示するサイトでは、エンコーディングを明示的に指定しないhtmlspecialcharsの結果が空になる」というものです。 機械的な置換で容易に修正対応はできましたが、そんな泥臭いパッチをSquirrelMailの方に投げる気にもなれず、もうまさにPHPの仕様の変更を「仕様バグ」だと主張したい気分です… EUC-JP/Shift_JISのサイトは、PHP5.3を使い続けるか、UTF-8になんとか移行するか、どちらかがまあ建設的な対応でしょうね。 ていうか、mbstring を入れてる場合、内部に internal_encoding という設定があるんだから、文字エンコ

  • PHPの入門書を書くことになりました&レビュアー募集のお知らせ

    PHPの入門書をソフトバンククリエイティブさん出すことになりました。かねがね、PHPの入門書がよろしくないという問題意識を持ち、かつ色々な場でお話ししておりましたが、またしても「言い出しっぺの法則」が発動して、自分で書くことになりました。 PHPの入門書を(たぶん)10冊以上読んで(あるいは眺めて)、以下のような感触を持っています。 ものすごく初歩的なは悪くないが、行き着くゴールが極めて限定される SQLなどまで行き着く入門書は、後述する欠点を持つ傾向がある 中級者・上級者向けについては、良いものが出て来た PHP入門書の欠点というのは以下のようなものです。私の読んだPHP入門書は、次のいずれかに該当します。 執筆者のスキルが低いために説明やサンプルの品質が低い 執筆者のスキルは高いはずだが、説明のスキルが低く、不正確 執筆者のスキルが高く説明も正確だが、初心者には難しく入門書でなくなっ

  • PHPのロケールに関するまとめ - hnwの日記

    5/3 17:45追記:t_komuraさんに指摘いただいた関数と、さらに僕が調べ直したものを含め、「ロケール設定に従う関数一覧」に25個ほど追加しました。かなり見落としがありましたね…。 PHPのロケール*1まわりについて調査したので、これをまとめてみます。 この記事は「ロケールの影響を受ける関数 - Sarabande.jp」を掘り下げたものです。masakielasticさん、ナイスな記事をありがとうございます。 PHPの文字列型と文字エンコーディング 他のモダンなLL言語と異なり、PHPは文字列の文字エンコーディングに関して何も仮定せず、単なるバイト列として管理しています。つまり、文字エンコーディングの取り扱いは各関数の実装に委ねられています。 下記の通り、これはマニュアルにも記述があるのですが、実に残念なことです。 残念ながら、PHP の各関数が文字列のエンコーディングを判断する

    PHPのロケールに関するまとめ - hnwの日記
  • PHP 5.4.1リリースのポイント - Opensource days

    PHP 5.4.1(及びPHP 5.3.11)が2012/4/27(日時間)にリリースされました。リリースのポイントを以下にまとめます。 ファイルアップロード機能に関する脆弱性の修正(PHP 5.4.1/PHP 5.3.11で修正) 詳細は以下を参照ください:Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172) 以前から指摘されていたバグとのことですが、複数ファイルアップロード機能における変数パーサに余分な角括弧([,])の処理に関する不備があり、特殊な入力を行うことで、変数名($_FILES['foo']['name'])をContent-Typeで指定したMIME型で上書きされてしまうというものです。PHPの場合、C

    PHP 5.4.1リリースのポイント - Opensource days
  • PHPのescapeshellcmdを巡る冒険

    以前、ブログ記事「PHPのescapeshellcmdの危険性」にて、escapeshellcmd関数の「余計なお世話」によって危険性が生まれていることを指摘しましたが、その後大垣さんによって修正案が提示され、結局「それはマニュアルの間違い」ということで決着が着いたようです。ところが、この議論とは別のところで、escapeshellcmdはPHP5.4.0で挙動が少し変わっていることが分かりました。 経緯 2011/1/1 徳丸が「PHPのescapeshellcmdの危険性」を書いて、クォート文字がペアになっている場合にエスケープしないという仕様が余計なお世話であり、危険性が生じていることを指摘 2011/1/7 大垣さんがブログエントリ「phpのescapeshellcmdの余計なお世話を無くすパッチ」にて修正案を提示 2011/10/23 廣川さんが、大垣さんのパッチ案を少し修正して

  • PHP勉強会@東京 #58 で「入門PHP5.4」の話をしました - 肉とビールとパンケーキ by @sotarok

    久しぶりのPHP勉強会でしたね!僕も通常のPHP勉強会での発表は久々だった気がします。 というわけで、入門PHP5.4という題で発表してきました。 第58回PHP勉強会@東京 - events.php.gr.jp 発表資料&リンク集 Speaker Deck にあげました。 が、Speaker Deck だと、リンクがリンクにならないので、リンク集だけ補足でこちらにおいておきます! PHP 5.3.x から PHP 5.4.x への移行 http://www.php.net/manual/ja/migration54.php PHP 5.4: The New Bits http://speakerdeck.com/u/dshafik/p/php-54-the-new-bits Begin your love affair with traits http://slidesha.re/ssK

    PHP勉強会@東京 #58 で「入門PHP5.4」の話をしました - 肉とビールとパンケーキ by @sotarok
  • WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

    新年あけましておめでとうございます。今年もボチボチやっていきます。 稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お

    WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記
  • Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策

    28C3(28th Chaos Communication Congress)において、Effective Denial of Service attacks against web application platforms(Webプラットフォームに対する効果的なサービス妨害攻撃)と題する発表がありました(タイムスケジュール、講演スライド)。 これによると、PHPをはじめとする多くのWebアプリケーション開発プラットフォームに対して、CPU資源を枯渇させるサービス妨害攻撃(DoS攻撃)が可能な手法が見つかったということです。この攻撃は、hashdos と呼ばれています。 概要PHPなど多くの言語では、文字列をキーとする配列(連想配列、ハッシュ)が用意されており、HTTPリクエストのパラメータも連想配列の形で提供されます。PHPの場合、$_GET、$_POSTなどです。 連想配列の実装には

  • pusakabet

    PUSAKABET Link Daftar Situs Terpercaya Slot Yang Mudah Win Sekarang Ini Pusakabet Link Daftar merupakan permainan dari Situs Slot Nusantara yang murah meraih suatu kemenangan yang pasti. Pusakabet saat ini telah menjadi platform judi online yang begitu viral karna menjadi suatu pilihan yang tepat untuk para new member.

    pusakabet
  • PHP 5.4から配列定義は超簡単に、そして落とし穴も – yohgaki's blog

    (Last Updated On: 2018年8月13日)PHP 5.4 Advent Calender 2011用のエントリです。(まだ空きがあるので是非どうぞ) このエントリを書いているのは11/23です。初めの方から重いネタだと後の方が苦労する(?)ので軽い話です。 PHP 5.3までの動作 現時点ではPHP Manualの配列のページには記載されていませんが、配列の定義が簡略化されます。まず現状の配列の定義方法は <?php $a = array('foo'=>123, 'bar'=>456, 789); var_dump($a); こんな感じですね。これを実行すると $ ../php-src-5.4/php arr.php array(3) { ["foo"]=> int(123) ["bar"]=> int(456) [0]=> int(789) } このような出力になります。

    PHP 5.4から配列定義は超簡単に、そして落とし穴も – yohgaki's blog
  • PHP5.4のhtmlspecialcharsに非互換問題

    第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_

  • PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days

    PHP 5.4 beta 2が出ているところですが、ソースコード(html.c)を見ていて、XSS対策で使用される htmlspecialchars()の文字コード指定がPHP 5.3とは異なる動作をすることに気が付きました。 内部文字コード(mbstring.internal_encoding)が使用される以下のようなシチュエーションです。 <?php // test.php echo htmlspecialchars("foo",ENT_QUOTES,""); mbstring.internal_encoding="SJIS-win"と指定することにします。(推奨はできませんが、)外字対応(絵文字対応)でCP932を使用したい場合を想定しています。 PHP 5.3で実行 php53/sapi/cli/php -d mbstring.internal_encoding="SJIS-win

    PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days
  • 浮動小数点数の丸め処理を見比べてみる - hnwの日記

    各種プログラミング言語には、切り上げ・切り捨て・四捨五入など浮動小数点数を丸める関数が何種類もあります。こうした丸め処理を利用する際、「ceilとfloorどっちがどっちだっけ?」「マイナスの数が来た時の挙動って大丈夫なんだっけ?」などと不安になることはないでしょうか。 僕が丸め関数を使うときは、バグが無いかどうか他の場所以上に警戒します。というのも、これらの関数は境界値ピッタリだった場合の挙動とマイナスの数に対する挙動がそれぞれ違っており、勘違いや考え漏れから境界値バグを作り込みやすいためです。僕と同じ感覚の人も多いのではないでしょうか。 稿では、こうした関数の挙動が一目でわかる便利なグラフを紹介します。このグラフは『WEB+DB PRESS Vol.57』に掲載いただいた僕の記事「PHP転ばぬ先の杖 第2回 数値の正しい扱い方 ― 浮動小数点数、巨大な整数」でも紹介したものです。以下

    浮動小数点数の丸め処理を見比べてみる - hnwの日記
  • Ustream.tv: ユーザー phpstudy: 徳丸本に学ぶ 安全なPHPアプリ開発の鉄則 2011 - 徳丸 浩, Recorded on 11/09/10. コンピュータ

    Closing rec 視聴数: 35 2011/09/10 18:29 Lightning Talk rec 視聴数: 15 2011/09/10 17:21 徳丸に学ぶ 安全なPHPアプリ開発の鉄則... rec 視聴数: 24 2011/09/10 16:30 Microsoft? PHP ~ 3rd... rec 視聴数: 1 2011/09/10 16:04 phpcon2011a 09/10/11... rec 視聴数: 0 2011/09/10 16:01 phpcon2011a 09/10/11... rec 視聴数: 3 2011/09/10 15:54 phpcon2011a 09/09/11... rec 視聴数: 2 2011/09/10 15:26 phpcon2011a 09/09/11... rec

  • 9月10日PHPカンファレンス2011で講演しました

    ► 2020 (4) ► 9月 (1) ► 7月 (1) ► 6月 (1) ► 1月 (1) ► 2019 (3) ► 5月 (1) ► 3月 (1) ► 2月 (1) ► 2017 (4) ► 11月 (1) ► 9月 (1) ► 5月 (1) ► 4月 (1) ► 2016 (5) ► 11月 (1) ► 10月 (1) ► 9月 (1) ► 7月 (1) ► 3月 (1) ► 2015 (2) ► 10月 (1) ► 7月 (1) ► 2014 (1) ► 8月 (1) ► 2013 (2) ► 12月 (1) ► 8月 (1) ► 2012 (11) ► 12月 (2) ► 10月 (1) ► 6月 (2) ► 5月 (1) ► 4月 (3) ► 3月 (1) ► 1月 (1) ▼ 2011 (2) ► 10月 (1) ▼ 9月 (1) 9月10日PHPカンファレンス2011で講演

  • 当日レポート[随時更新] | gihyo.jp

    9月10日、大田区産業プラザPiOにて「PHPカンファレンス2011」が開催されます。稿では、イベントの各セッションの模様を随時更新の形式でレポートしていきます。 会場設営が大分終わり、参加者の皆さんを待っているメイントラックのホールです。 今年のスタッフTシャツです。 会場に来られない方のために、ベストエフォートでUstreamによる中継が行われています。各トラックのチャンネルは以下のとおりです。 メイントラック ギークトラック テックトラック 廣川類さん「基調講演」 PHPカンファレンス2011は、PHPユーザー会の廣川類さんによる基調講演で幕を開けました。 まずは「PHPの歩み」として、PHPがブレイクしたきっかけとなったバージョン4から現在の5.3についてのおさらい、そして次期バージョンの5.4についての解説が続きます。PHP 5.4では、10~15%のパフォーマンス改善、コー

    当日レポート[随時更新] | gihyo.jp
  • PSR-0 を和訳してみた - hnwの日記

    先週の土日にPHPMatsuriに行ってきました。ナイスなイベントでしたね。その感想はまた改めて書きますが、Nate Abeleによるセッション「Practical PHP 5.3」で触れられていたPSR-0を適当に訳してみました。これはPHP5.3の名前空間とクラス名に関する標準化の試みで、少なくともZendFrameworkとsymfonyの中の人が関わっているようです。 うまく訳出できなくて苦し紛れのところもあるので、修正すべき箇所があれば教えてください。 元の文章は http://groups.google.com/group/php-standards/web/psr-0-final-proposal にあります。以下はその和訳です。 PSR-0 最終提案 以下で、オートローダーの相互利用性を確保するための必須要件について記述します。 必須要件: 名前空間とクラスの完全な名前とし

    PSR-0 を和訳してみた - hnwの日記
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

    PHP5.3.7のcrypt関数には致命的な脆弱性があります。最悪のケースでは、任意のパスワードでログインできてしまうという事態が発生します。該当する利用者は、至急、後述する回避策を実施することを推奨します。 概要 PHPのcrypt関数は、ソルト付きハッシュ値を簡単に求めることができます(公式リファレンス)。crypt関数のハッシュアルゴリズムとしてMD5を指定した場合、ソルトのみが出力され、ハッシュ値が空になります。これは、crypt関数の結果がソルトのみに依存し、パスワードには影響されないことを意味し、crypt関数を認証に用いている場合、任意のパスワードでログインに成功する可能性があります。 影響を受けるアプリケーション crypt関数を用い、ハッシュアルゴリズムとしてMD5を指定しているアプリケーション。 環境にも依存しますが、デフォルトがMD5の場合もあります。筆者のテスト環境