読者です 読者をやめる 読者になる 読者になる

NissyBlog

Life goes on.

PHPカンファレンス2015に行ってきました(その1) #phpcon2015

PHP

本日はPHPカンファレンス2015 - #phpcon2015に行って参りました。

一晩寝るといろいろと忘れそうなので、
自分が聞きに行ったセッションについて簡単に記録を残そうと思います。
今年はオープニングに間に合ったし、早起きできてよかったです。

PHPの今とこれから 2015

世界における最近のPHPの動向についてのご紹介
PHPの歩みやリリースサイクルのご紹介
  • リリースサイクル:1年
  • ライフサイクル:3年(bugfix:2年、セキュリティ修正のみ:1年)
PHP7 の改善のポイント
  • PHP7の大きな変更点は大幅高速化
    • PHP7はPHP5.5より二倍高速
  • スカラー型宣言と戻り型宣言を導入
    • Strictモードをonにすることで型チェックが有効になる
  • 致命的エラーを例外補足可能に
  • <==>演算子(スペースシップ演算子)の導入
PHP7の互換性に関する変更
  • エクステンション削除(ereg,mysql,mssql)
  • SAPI削除(22種類から7種類へ)
  • ASPタグ廃止(<% %>)
  • newオブジェクトの参照代入廃止
HHVM/Hackの進化
  • LTSリリース
  • PHP7より平均10~20%高速になった
PHPの未来
  • 7.1の開発が開始される
  • 高性能かつ現実的な解を継続的に提供する

今どきのSQLインジェクションの話題総まとめ

脆弱性の責任は発注者か開発者か
  • 日本で唯一のSQLインジェクション判例の話
  • 開発者側に責任が発生するという判例がある。
  • 受注者が最低限のセキュリティ対策を講じるのは専門家の責務として重過失と認定される場合がある。
    • 少なくともセキュリティ対策を提案しておけば過失相殺になる
  • 「安全なウェブサイトの作り方」記載の脆弱性や「徳丸本に記載されている脆弱性対策」は最低限対策した方がいい
PHP入門書の話題
SQLジェネレータの実装に起因するSQLインジェクション脆弱性を紹介
  • 仕様の考慮漏れが原因
  • パラメータをエスケープする/しないが不明確(Zend Framework)
  • パラメータとして連想配列が来ることを想定していなかった
  • 連想配列のキーが外部入力となることを想定していなかった
SQLジェネレータ利用者側の注意
  • ライブラリの仕様を理解する「マニュアルをちゃんと読む」
  • バリデーションは普通にやっときましょう