PHP

mbstring.encoding_translation有効時にhashDoS脆弱性

PHP

すでに徳丸氏がTwitterでコメントされていますが、PHPの過去のバージョン全てにおいてmbstring.encoding_translationをOn(有効)にした際にmax_input_varsによる制約が無効になってしまうという問題がありました。max_input_varsはユーザ入力変数の最大数を指…

PHP 5.4.1リリースのポイント

PHP

PHP 5.4.1(及びPHP 5.3.11)が2012/4/27(日本時間)にリリースされました。リリースのポイントを以下にまとめます。 ファイルアップロード機能に関する脆弱性の修正(PHP 5.4.1/PHP 5.3.11で修正) 詳細は以下を参照ください:Fixed bug #54374 (Insufficient v…

帰ってきた青マンモス本

PHP

なつかしの青マンモス本がついに帰ってきます。 今回は重量感満点だった前作にくらべて大幅にダイエットし、表紙もおだやかな感じになりました。内容は、PHP 5.3/5.4対応となり、時代の流れにあわせて全面的に見直しをしています。いつの間にかPHP 5.4の開発…

PHP 5.3.10 緊急リリース: hashDoS対策でエンバグ

PHP

Suhosinなどで有名なStefan Esser氏からの指摘で、PHP 5.3.9でhashDoS対策として導入された設定オプションmax_input_vars関連の処理に不備により、リモートから任意のコードを実行される可能性がある深刻なバグが発生していることが明らかになりました。昨日…

PHP 5.4におけるhtmlspecialchars()の問題

PHP

PHP 5.4 beta 2が出ているところですが、ソースコード(html.c)を見ていて、XSS対策で使用される htmlspecialchars()の文字コード指定がPHP 5.3とは異なる動作をすることに気が付きました。内部文字コード(mbstring.internal_encoding)が使用される以下のよう…

Google+ API をPHPから使ってみる

PHP

Google+ APIが一般公開された(Getting Started on the Google+ API - Google+ Developers Blog)のを受けて、PHPでアクセスしてみました。 シンプルなOAuth2のBEARERトークンなのでcurlエクステンションで書いてみても良いのですが、以前作った簡易OAuth2クラ…

mbstring(libmbfl)で携帯絵文字サポート:Unicode 6.0に含まれない文字

絵文字サポートに関する続きです。当初、Unicode 6.0とのマッピングが定義されない文字(iモードのロゴなど)は、使用頻度も低いと思われるため、サポートしない方針でしたが、リクエスト頂いたため、Unicode 6.0の私用面との相互変換を定義することにしまし…

mbstring/libmbflへのgb18030サポート追加

GB18030 のサポート 大国中国のオフィシャルな文字コードということで以前から気にはなっていたのですが、夏休みということでトライしてみました。 なにしろ、Unicodeのコードポイントを超える150万字をサポートする世界最大と言っても良いかもしれない文字…

mbstring/libmbfl モバイル用UTF-8

Unicode 6.0 モバイル用UTF-8の相互変換を可能としました。実際のコードをテストするには、github.com のlibmbfl のレポジトリか、svn.php.netからPHP 5.4または5.5の開発用ソースコードを取得ください。以下、仕様等について記述します。 UTF-8-Mobileの必…

mbstring/libmbfl 正しいUTF-8チェックの強化

非最短形式UTF-8などのmbstringでUTF-8のチェックが甘いという指摘がでてからかなり立ちますが、PHP 5.4に向けて、対策を考えてみました。libmbfl 1.3.1 からは、UTF-8の変換や検出時に行われる文字コード範囲検出において整形式であることを確認するチェッ…

** libmlfl(mbstring)への絵文字のサポート追加

Unicode 6.0に携帯電話の絵文字が正式に組み込まれ、Mac OS Lion等でもサポートされるなど、使う機会も増えてきたということで、mbstringに携帯電話のShift_JIS絵文字コードのサポートを組み込んでみました。現時点で、githubのlibmbfl開発コード、PHPのHEAD…