タグ

PHPに関するytokuのブックマーク (8)

  • モダンPHPチュートリアル (LLまつり版)

    レガシーなプラクティスを捨ててモダンなコードを。

    モダンPHPチュートリアル (LLまつり版)
    ytoku
    ytoku 2013/08/27
  • 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_

    ytoku
    ytoku 2011/11/08
  • 実例で学ぶPHP拡張モジュールの作り方 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    実例で学ぶPHP拡張モジュールの作り方 記事一覧 | gihyo.jp
    ytoku
    ytoku 2011/09/02
  • PHP5.3.7のcrypt関数のバグはこうして生まれた

    昨日のブログエントリ「PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)」にて、crypt関数の重大な脆弱性について報告しました。脆弱性の出方が近年まれに見るほどのものだったので、twitterやブクマなどを見ても、「どうしてこうなった」という疑問を多数目にしました。 そこで、このエントリでは、この脆弱性がどのように混入したのかを追ってみたいと思います。 PHPのレポジトリのログや公開されているソースの状況から、PHP5.3.7RC4までこのバグはなく、PHP5.3.7RC5でこのバグが混入した模様です。RC5はPHP5.3.7最後のRelease Candidateですから、まさに正式リリースの直前でバグが入ったことになります。 バグの入る直前のソースは、ここの関数php_md5_crypt_rから参照することができます。以下に、おおまかな流れを図示します。まずはバ

    PHP5.3.7のcrypt関数のバグはこうして生まれた
  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

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

  • CentOS 5.6のPHP 5.3にpearがないのでphp-pearをどうにかする - あっきぃ日誌

    前のエントリーの続き。まずは自己引用。 php-pearが5.1/5.3両対応なのかと思ったのですが、PEARがやたらWARNINGを吐くので、多分ダメなんだと思います。 そんなことはなかったらしく、Warningが吐かれまくっていてもpearコマンドのupgradeで最新のPEARにできました。2chのCentOSスレの人ありがとう!確かに、なんか大量に吐かれているとはいえ、Warningだもんなぁ(されどWarning?)。 以下、新規にCentOS5.6を入れた場合のpearのアップグレード手順です。こんな強引な方法で大丈夫か? # pear upgrade --force Archive_Tar # pear upgrade --force Console_Getopt # pear upgrade PEARアップグレード前後のバージョン番号は次の通りです。 パッケージ アップグレ

    CentOS 5.6のPHP 5.3にpearがないのでphp-pearをどうにかする - あっきぃ日誌
  • おそらくはそれさえも平凡な日々: PHPの正規表現と文字列

    PHPで正規表現を扱う上で、正規表現パターンの記述で迷ってしまっている人が多い気がする。 PHPが文字列を生成する その文字列を正規表現エンジンに渡す と言う2段階の手順があり、そこがやや複雑なので混乱を招く部分があるのだと思う。 混乱を防ぐためには、その手順をしっかり追って、正規表現リテラルとして指定している文字列をechoしたらPHPがどのように出力するかを考えてみると良い。 例えば以下のようなコードがあったとする。 preg_match('/\\d/','3d'); まず、preg_match()の第一引数になっている正規表現パターンをechoで出力するとどうなるかを考える。 echo '/\\d/'; #/\d/ なので、/\d/が正規表現エンジンに渡されると分かる。なので、上記のパターンはマッチする。 さらに混乱を招きやすくしているのが、PHPの文字列の仕様で、特にバックスラッシ

    ytoku
    ytoku 2010/03/16
    Pythonでも同様の挙動だが、Pythonでは 誤入力時にそのまま表示されるからデバッグ時に気づきやすい という位置づけであって、推奨するようなことはしていないみたい。なによりraw文字列がある。
  • FacebookのXHPを導入してみた - おぎろぐはてブロ

    XHPとは、 Today, I'd like to take to this opportunity to share with you a project that's quickly becoming a cornerstone of front-end PHP development at Facebook. XHP is a PHP extension which augments the syntax of the language to both make your front-end code easier to understand and help you avoid cross-site scripting attacks. XHP: A New Way to Write PHP | Facebook ということで、フロントエンドのコードを書きやすく理解しやすいものにし

    FacebookのXHPを導入してみた - おぎろぐはてブロ
    ytoku
    ytoku 2010/02/11
    「このコンテキストの中で、$_POSTを参照すると、自動でエスケープする仕様」 ではなくて$_POSTでなくともエスケープされる。 <span>{"<>"}</span> よい仕様だと思う。
  • 1