なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
調査の結果、これらのPHPファイルが改ざんされたことにより、Webサイトからのレスポンス内に不正なコードが、閲覧者のアクセス毎に動的に挿入されていたことが判明しました。 改ざんされたPHPファイルによって不正なコードが挿入される仕組み 改ざんされたPHPファイルには、「//istart」および「//iend」というコメントに挟まれた、図 1のような不正なPHPコードが挿入されていました(不正なPHPコードが難読化されている場合も確認しています)。 この不正なPHPコードは、外部から取得したコードを挿入する機能を持っており、特定のURLから不正なコードを受け取り、特定の位置に挿入します。 図 1: 「//istart」および「//iend」に挟まれた不正なPHPコード 挿入される不正なコード Webサイトに閲覧者がアクセスすると、改ざんされたPHPファイル中の不正なPHPコードは、図 2のよ
PHPでMersenne Twister法で擬似乱数を生成する関数のmt_rand()にバグがあり出力がおかしい、という話が流れてきておもしろかったので簡単にまとめておく kusanoさんがmt_rand()の実装に9年以上前から1文字違いでバグがあったことを見つけて、数ヶ月後にマージされる(追記: 正確には、PHP版の実装が他と異なっているのは前から知られていたらしい*1 )PHPに送った1文字修正するプルリクエストがマージされた🎉 mt_rand()の返す値が元のメルセンヌツイスタと異なっていた。https://t.co/Z5WJhHVyNd— kusanoさん@がんばらない (@kusano_k) February 17, 2016 その後、生成される擬似乱数列が変わってしまうので、後方互換性を壊す変更は議論してからmergeすべきということでrevertされるこの前マージされた
新年明けましておめでとうございます。GMOメディアの流しエンジニア、山田コーダーです。さて、ようやく弊社でもPHP 5.3、5.4系のプロジェクトの5.6化が一段落してまいりました。PHP 5.6のリリースが2014年ですので今更感がありますが、「レガシーなPHPプロジェクトのバージョンアップに困っている」「使いたいライブラリーが5.3に対応してないからバックポートした」などという悲痛な声を目にしたこともあり、これからPHPのバージョンアップをされる方たちへのささやかな参考資料になればと思い、書かせていただきました。 さて、まずは本題に入る前に結果からお見せしようと思います。以下はNew Relic(アプリケーションのパフォーマンス監視サービス)のレスポンスタイムのグラフです。なおこのプロジェクトでは、ブラウザー表示用HTMLを出力するサーバー(Web 約10台)と、スマートフォンアプリ
仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModulephp5_module modules/libphp5.so ↓ LoadModulephp7_module modules/libphp7.so memcache extensionがインストールできないPHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
PHPスクリプトを記述する際に使われる<?phpタグの利用をオプションで有効無効を切り替えるようにするという仕様がPHPの開発コミュニティでの議論に挙がっています。 この仕様変更が実装された場合、PHPスクリプトには必ず<?phpのタグがあるという前提条件が変わる事になります。 まずこの議論がどのような形で行われているのでしょうか?ご存知でない方もいるかと思いますが、PHPの文法や機能へどのような変更を加えたいか、という議論はRFC (Request For Comment)という形でパブリックに行われています。Wikiページに仕様や背景、実際のパッチなどを添付し、開発者やユーザーからの投票を行った結果を元に実際にPHP本体への変更を行うかどうかが決定されています。 過去に実装された機能の際の例などと一緒に見てみましょう。 Array Short Syntax # 従来の記述の場合 $a

この投稿はPHP Advent Calendar 2013の13日目の記事です。昨日は@tanakahisateruのPHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪いでした。 現在twitterのタイムラインで、史上空前のSQLのエスケープブームが起こっています。 オレオレSQLセキュリティ教育は論理的に破綻している | yohgaki'sblog 「プリペアードクエリが基本だけど、動的にSQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 -Togetterまとめ エスケープとプレースホルダをめぐる議論 -TogetterまとめSQLインジェクション対策としてのプリペアドステートメントとエスケープについての議論 -TogetterまとめIPAの「安全なSQLの呼び出し方」が安全になっていた | yohgak

Shin xblog Advent Calendar 2013 の4日目です。 6分で分かるべく最近のPHP事情をざざざっとご紹介します。 過去のエントリはこちら。 6分でわかる最近のPHP ― 2012夏 5分でわかる最近のPHP – 2011夏 1.PHP 5.5 リリースPHP5系の新しいバージョンとして、PHP 5.5 が 2013年6 月にリリースされました。 新しい機能としては、ジェネレータや finally 句の、パスワードハッシュ関数、OPCache などが追加されています。 2013/12/04 現在では、5.5.6 が最新版となっています。PHP5.5 のコードキャッシュは APC から Zend OPcache へPHP:PHP 5.4.x からPHP 5.5.x への移行 – ManualPHP 5.5の新機能:さっくり理解するPHP 5.5の言語仕
このエントリはPHP Advent Calendar 2013 - Qiita [キータ]の1日目です。PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileがGitHub上だけでも300件以上と色々とあるのでまとめておこうと思います。 Search · Vagrantphp yandod/php5-nginx-vagrant-sample こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPやPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。 またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。 10up/varying-vagrant-vagrants 通称、「VVV」と呼

昨夜に、魔法少女アパッチ☆マギカ攻撃を観測しました。魔法少女アパッチ☆マギカとは、PoCのソースコードに Apache Magica by Kingcope とコメントされていることに由来しています(というか、私がそう訳しましたw)。 これは10月29日にPoCが発表されたPHP-CGI攻撃(CVE-2012-1823)の変種です。従来のPHP-CGI攻撃は、CGI版PHPが動作する環境で、PHPスクリプト(中身はなんでもよい)に対する攻撃でしたが、魔法少女アパッチマギカの方は、/cgi-bin/に置かれたPHP処理系(php-cgiなど)に直接攻撃するものです。CGI版PHPを設置する方法は複数ありますが、よく使われる方法としてApacheのリダイレクトによりPHPスクリプトをPHP処理系に実行させる方法があります。この場合、/cgi-bin/php-cgiなどとしてPHP処理系を公開
「PHP.net」のドメインがGoogleのSafe Browsing機能によってマルウェア感染サイトと認識された問題を巡り、同サイトは10月24日に掲載した更新情報で、調査の結果、サーバ2台が不正アクセスされていたことが分かったと報告した。PHP.netのユーザーのパスワードはリセットする措置を取る。 不正アクセスが見つかったのは、「www.php.net」「static.php.net」「git.php.net」をホスティングしていたサーバと、「bugs.php.net」をホスティングしていたサーバの2台。影響を受けたサービスはすべて、セキュアなサーバに移行させた。JavaScriptマルウェアは米国時間の10月22日から24日にかけて、php.netの「少数の」ユーザーに配信されていたという。 どのような手口で侵入されたのかは現時点で不明だが、Gitレポジトリが不正アクセスされてい

PHPカンファレンス2013でPHP開発環境をVagrantで作る発表を行ったのですが、具体的なVagrantfileが欲しいという声を頂いたので、GitHubに公開しました。 ご自身で構築するベースになれば良いと思うので、どう作れば良いの?と言う方は参考にしてみて下さい。 なお、このリポジトリの Vagrantfile は、開発PC内の VirtualBox 上で開発環境として動かすことを想定しています。セキュリティについては考慮されていないのでご注意下さい。 vagrant-lapp-sample https://github.com/shin1x1/vagrant-lapp-sample このリポジトリは、PHPアプリケーション(CakePHP)をイメージしています。構成は以下です。 CentOS 6.4 Apache 2.2PHP 5.4 PostgreSQL 9.3phpPg
比較的簡単にWebアプリケーションを構築することができるPHP。 プログラミングを始めたいと思った人が、初めて触るスクリプト言語としても人気です。PHPに限ったことではないですが、プログラミング言語にはフレームワークと呼ばれる、アプリケーションソフトを開発する際に必要とされる汎用的な機能をまとめて提供してくる便利なソフトウェアが存在します。 いわゆるアプリケーション開発の土台ですね。 フレームワークは様々な種類があり、それぞれに特徴もあったりするので、PHPを始めたばかりの学生にとってはどれを選んだらいいのかわからないのではないでしょうか。 今回は、PHPにフォーカスし、各フレームワークの違いや特徴などを紹介したいと思います。 フレームワークのメリットとデメリット フレームワークを使用する際は、最初にメリット・デメリットをしっかりと理解しておく必要があります。 大まかにまとめると、下記の

SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが,PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです.mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く