タグ

PHPに関するolisysのブックマーク (51)

  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

  • 5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!

    こんにちはこんにちは!! Webプログラミングしてますか! よく「PHPセキュリティがダメ」とか言われてるよね。 でもそれって、べつにPHPが悪いんじゃなくて、 たぶん、セキュリティとかが、まだよくわからない人が多いだけなんじゃないかな。 がんばって勉強しようと思っても、なんだか難しい理屈が並んでいたりするしね…。 なので今日は、セキュリティ対策について、 「これだけやっとけば、わりと安全になるよ」ってことを、初心者むけに、大雑把に書いてみます! 理屈がわからなくても、最初はコピペでも、 なにもやらないより、やったほうがきっとマシになる! 1. XSS対策 動的なものを表示するとき、全部エスケープすればokです! (NG) あなたの名前は <?= $name ?> ですね! ↓ (OK) あなたの名前は <?= htmlspecialchars($name, ENT_QUOTES) ?>

    5分でできるPHPセキュリティ対策 - ぼくはまちちゃん!
  • PHPでpngファイルのリサイズについての質問です。…

    PHPでpngファイルのリサイズについての質問です。 phpのバージョンはPHP4(4.4.8)となります。 透過pngファイルをリサイズすると透明部分が黒くなってしまいます。 以下は現在のファイルです。 <?php $file = "./p1.png"; $aaa = imagecreatefrompng($file); $bbb = imagecreatetruecolor(100, 100); imagecopyresized($bbb, $aaa, 0, 0, 0, 0, 100, 100, 500, 500); mb_http_output("pass"); imagepng($bbb,"./resize.png",100); ?> 追加する関数などあれば教えてください。

  • Cookieによるhashdos攻撃と対策

    このエントリでは、Cookieを用いたhashdos攻撃の可能性について検討し、実証結果と対策について報告します。 はじめに既に当ブログで報告の通り、hashdosと呼ばれる攻撃手法が公表されています。HTTPリクエストのパラメータ名に対するハッシュ値を故意に同一にした(衝突させた)ものを多数(数万程度)送信することにより、Webサーバーを数分程度過負荷にできるというDoS攻撃手法です。 先の記事でも説明しているようにPOSTパラメータ(HTTPリクエストボディ)に多数のパラメータを仕込む攻撃が典型的ですが、POSTパラメータ以外のパラメータを用いた攻撃についても検討しておかないと、防御漏れの可能性が生じます。 そこで、POSTパラメータ以外を用いた攻撃方法について検討します。 POST以外に多数のパラメータを仕込めるかPOST以外に多数のパラメータを仕込む場所があるでしょうか。候補となる

  • 安全を考えてPHPの実行時設定を調整する

    PHPを初期設定のまま使うと、いろいろ問題が起こる可能性があります。今回は、問題の発生を未然に防ぐ設定法をいくつか紹介します。(編集部) 初期設定のままでは良くないところもある ここ数回はPHP実行時の設定について解説しています。実行時設定を変更する方法として、PHPの設定ファイル(以下php.iniファイル)に設定を記述する方法と、Apache HTTP Server(以下Apache)の設定ファイルにPHPの設定を記述する方法の2つがあり、前回はその使い分けについて解説しました。 サーバ全体で標準の設定値としたいものはphp.iniファイルに、バーチャルホストやURLごとに変更したいものはApacheの設定ファイルに記述する、という使い分けの指針も示しました。 今回は、php.iniで設定できる項目、つまりサーバ全体にかかわる設定項目の中でも、初期設定のままにしておくことがあまり適切で

    安全を考えてPHPの実行時設定を調整する
  • isset() 関数にご用心! ( #phpadvent2011 Day 17 ) - omoonのブログ

    PHP Advent Calendar 2011 の 17 日目です。昨日はhajikamiさんの「http://my-rest.icca.jp/blog/2011/12/769/」でした。 みなさんこんにちは。17 日目担当の omoon です。普段は大阪で WEB アプリケーションを作ったりしている会社におりまして、PHP は触り始めて 10 年ぐらいです。 当はもっと早く記事を上げる予定だったんですが、急遽下のような仕事が入りまして遅くなりました。ごめんなさい。 さて、みなさんは配列の要素の存在確認ってどうされてますか? 僕は、PHP を始めてからずっと無条件で isset() 関数 を使っていたのですが、ついこの間、えー、うそん!的なハマりを体験いたしましたので、もうご存知の方には面白くともなんともない話だとは思いつつ、恥を晒す覚悟でまとめてみたいと思います。 isset() 関

    isset() 関数にご用心! ( #phpadvent2011 Day 17 ) - omoonのブログ
  • 米Facebook、PHPを高速にするJITコンパイラ「HipHop Virtual Machine」を発表 | OSDN Magazine

    米Facebookは12月10日、PHPのJITJust-In-Time)コンパイラ「HipHop Virtual Machine(hhvm)」を発表した。PHPコードを高速に実行するためのランタイム環境で、LinuxとFreeBSDに対応する。現在Facebook内のテスト環境で採用されているという。オープンソースで開発されており、ライセンスはPHPおよびZendライセンス。 hhvmはPHPの高速化を目指してFacebook社内で開発された仮想マシン技術。Facebookは先にPHPコードをC++コードおよびバイナリに変換するHipHop interpreter(hphpi)やHipHop compiler(hphpc)を開発、採用していたが、hhvmはそれをさらに発展させたものとなる。 hphpiやhphpcはPHPコードを「AST」と呼ばれる中間コードに変換した後にC++コードに

    米Facebook、PHPを高速にするJITコンパイラ「HipHop Virtual Machine」を発表 | OSDN Magazine
  • WordCamp Tokyo 2011 &amp; Bench東京情報

    田口元 百式ブログの毎日更新を10年+続けてわか... / 原一浩 クリーンな WordPress サイトの... / 星野邦敏 初心者向け WordCamp Toky...他...全18件

    WordCamp Tokyo 2011 &amp; Bench東京情報
  • 素のPHPをテンプレートエンジンとして使うときのコーディング規約

    プログラムとしてPHPを書くときのコーディング規約は、PEARやZendなど代表的なものがたくさんありますが、テンプレートエンジンとしてPHPを使う場合にはそのまま適用しにくいものです。 テンプレートエンジンのコーディング規約って、検索してもあまり見つからなかったので、個人的に採用しているものを晒してみます。あんまり語る人を見たことがないので、「俺はこうしてるよ」とか「ここキモくね?」とかご意見いただけるとうれしいです。 目指すところ 複雑なロジックをテンプレートに書かない / 書けないように規約で縛る 少しでも読みやすさを追求する できあがりのHTMLの美しさも追及する <%= $this->doctype() %> <html> <head> <%= $this->headMeta() %> <%= $this->headLink() %> <%= $this->headTitle()

    素のPHPをテンプレートエンジンとして使うときのコーディング規約
  • PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました - Yamashiro0217の日記

    PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました。 当日は、ほとんど寝ず、午前中は #nekkonという結婚式に参加してからの発表だったから辛かった。実質寝てねーからつれー。発表つれー。 内容としては架空の某システムの裏方に入った、 架空の人が、いかにレガシーコードと戦い、TDDやCIを適用していったか、 また、適用するにあたりどういう便利なツールを使ったか、 また、チームにそれらの文化を浸透させるためにどうしたか。 などといった内容となっています。 以下がプレゼンのスライドを Slideshareに上げたやつです。あとUSTの録画もありました。 http://www.ustream.tv/recorded/17177077 PHPカンファレンス2011 PHPとテストとCIと私〜愛するあなたのため〜View more pr

    PHPカンファレンス2011 で"PHPとテストとCIと私〜愛するあなたのため〜"というタイトルで発表してきました - Yamashiro0217の日記
  • Twitterと連携するFacebookアプリをPHPで作る

    Twitterと連携するFacebookアプリをPHPで作る:無料クラウドでできるFacebookアプリ開発入門(4)(1/5 ページ) SDK・Eclipse・コマンドの3パターンでPHPアプリを作る Facebook APIはFlash、PHPJavaなどのさまざまな環境から利用できます。稿では、クラウドプラットフォーム「Windows Azure」(以下、Azure)上で動くPHPを利用したFacebookアプリのサンプルプログラム(Facebook-Twitter連携アプリ)を開発する方法を、複数パターンの開発環境の構築といった基礎的なことから順を追って解説します。 稿は、日マイクロソフトのWebサイト「アプリ開発ぷらっとふぉーむ @ Windows Azure -- Windows Azure Platform」で紹介しているPDF資料のうち、以下の章を同社と著者の許諾を

    Twitterと連携するFacebookアプリをPHPで作る
  • クローラを作る技術と設計 (毎週のハンズオン勉強会資料)

    仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI

    クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
  • PHP+MySQLなオープンソースの超多機能ECサイト構築ソフトウェア「LiveCart」:phpspot開発日誌

    LiveCart - Free and Open Source PHP Shopping Cart Software PHPMySQLなオープンソースの超多機能ECサイト構築ソフトウェア「LiveCart」 管理画面もあって、SEOや多言語対応、決済対応、カテゴリ階層、Valid HTML+CSSなど、アピールポイントがかなり書かれていますがとにかく多機能。 デモページを見てもとりあえずショッピングカートとして問題なさそうな感じです。管理画面のデモも使えます カートへの追加はAjaxで追加されたりと、うっとうしくない程度にAjaxやJSも使われています 商品一覧もamazonっぽくて分かりやすいです。 テンプレートのカスタマイズはWYSIWYGで編集できちゃうところもクール 他にもECサイト構築ソフトウェアはあれど負けず劣らずの多機能っぷり。選択肢の一つとして覚えておいてもよさそうですね

  • 実用的になってきたPHP製、WebベースのIDE·WIODE MOONGIFT

    WIODEはWebベースのIDE。PHP/JavaScript/CSSの編集に対応している。編集後、FTPアップロードできるのが特徴。 WIODEはPHP/MySQL製のオープンソース・ソフトウェア。Webアプリケーションが隆盛になるにつれて徐々に注目を集めているのがWebベースの開発環境だ。これまでテキストファイルをローカルで修正してアップロードして…というのをWebブラウザ上で行ってしまおうという試みだ。 編集画面 もちろんプログラミング用のエディタがこれまで使っていたものと同じくらい使えないといけないだろうし、そもそもWeb上で開発するリスクもあるかも知れない。だが可能性を十分に感じさせるソフトウェアとしてWIODEをチェックしておきたい。 WIODEは2ペインのWebベースの開発環境だ。左側にファイル、フォルダの一覧が表示されて、右側で編集する。編集に対応したファイルとしては、PH

  • PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439)

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

    olisys
    olisys 2011/08/24
  • もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog

    たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ

    もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog
  • TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」:phpspot開発日誌

    TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」 2011年08月22日- HybridAuth, Open Source Social-Signle-Sign-On Solution for authentication through Facebook, Twitter, Google, Yahoo, MySpace, LinkedIn, AOL, Vimeo, FourSquare, OpenID and other Identity providers TwitterやFacebookへのログイン機能をこれ1個で実装できるPHPライブラリ「HybridAuth」 Facebook, Twitter, Google, Yahoo, Windows Live, MySpace, LinkedIn, FourSquare, O

  • PHP Extensionのスタブ生成ツール「PHPH」を作った - よしだ’s diary

    PHPファイルからPHP Extensionの雛形を生成するツール「PHPH」を作った。 CodeGen_PECLは、 ・実装するクラスのプロトタイプを、CodeGen_PECLの形式に沿ったXMLで作成。 ・メソッドの中身をXMLファイル内で実装。 ・PHP Extensionソースに変換。 PHPHは、 ・実装するクラスのプロトタイプを、PHPファイルで作成。 ・PHP Extensionソースに変換。 ・メソッドの中身をCファイル内で実装。 PHPH \ パッケージ \ Openpear http://openpear.org/package/PHPH (ここだけの話、CodeGen_PECLがあんまり好きじゃなく) 以下、現在最新のドキュメント。 PHPH - Cヘッダとスタブファイルジェネレータ phphは、PHPファイルからPHP Extension用のCヘッダファイルとCソー

    PHP Extensionのスタブ生成ツール「PHPH」を作った - よしだ’s diary
  • [Wordpress] マルチサイト化した別のブログを読み込む方法 | nm705.com

    MovableTypeでは親ブログのドメインを読み込むタグに、 <mt:Websites> <mt:WebsiteURL /> </mt:Websites> (参考:[備忘録] MT5でサイトのURLを読み込む方法) というのがあるのですが、Wordpressにも同様のタグが存在します。 <?php switch_to_blog(1) ?> <?php bloginfo('url'); ?> <?php restore_current_blog(); ?> switch_to_blog() の( ) 内にはブログIDを入力します。 commonフォルダに入れている画像(例えばロゴ)を呼びたい場合、 <?php switch_to_blog(1) ?> <img src="<?php bloginfo('url'); ?>/common/img/logo.gif"> <?php restor

  • FacebookのOGPを設定したのに、URLリンターが反映しないレアケース | Creazy!

    このブログのMTに、あるいはTumblrにもOGP設定してみたわけですが、ある環境でOGPがうまく反映されないケースがあったので紹介します。 OGPのタグについては、Open Graph protocol – Facebook開発者などを参考にしながら正しいコードが出力されていることを確認しているのに、URLリンターでチェックしてみると、設定した情報が全く反映されていないという事例がありました。URLリンターに反映されないので当然「いいね!」などを押しても想定した画像がサムネイルにならないなどしばらくハマってしまいました。 で、改めて色々調べたのですが、Facebookで「いいね!」したときやURLリンターでチェックしたときは、Facebookのクローラー(スクレイパー?)が対象のURLにアクセスしてきて情報を持っていく仕組みになっています。サーバのアクセスログを閲覧できるのであればログの

    FacebookのOGPを設定したのに、URLリンターが反映しないレアケース | Creazy!