タグ

PHPに関するcubed-lのブックマーク (102)

  • 文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2010年9月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPカンファレンス2010にて「文字コードに起因する脆弱性とその対策」というタイトルで喋らせていただきました。プレゼンテーション資料をPDF形式とslideshare.netで公開しています。 文字コードのセキュリティというと、ややこしいイメージが強くて、スピーカーの前夜祭でも「聴衆の半分は置いてきぼりになるかもね」みたいな話をしていたのですが、意外にも「分かりやすかった」等の好意的な反応をtwitter等でいただき、驚くと共に喜んでいます。土曜にPHPカンファレンスに来られるような方は意識が高いというの

  • 興味深いPHPインジェクション | NCSIRTアドバイザリ | 情報セキュリティのNRIセキュア

    興味深いPHPインジェクション (SANS Internet Storm Center Diary 2010/8/31より) SANSインターネットストームセンターのハンドラであるBojan Zdrnjaが、興味深いPHPインジェクションについて伝えている。(掲載日:米国時間 2010年8月31日) ここ最近、PHPインジェクションという攻撃が一気に知名度を上げている。Webサーバのログを確認すれば、PHPインジェクションに関する多数のリクエストを発見できるはずだ。それらは大抵、ボットが既知の(そしてあまり知られていない)脆弱性を悪用できるか試しているだけだ。 様々なPHPインジェクションの脆弱性を悪用する興味深い試みを、読者の一人が自身のWebサイトでキャプチャする事に成功したそうだ。キャプチャにはmod_securityを使用した。リモートのPHPスクリプトが読み込まれるように、変数を

  • PDOにおけるSQLインジェクションの危険性とその回避についてまとめ

    PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生しうるという徳丸氏のブログ内容に対し、識者がその回避方法について試し、報告しています。

    PDOにおけるSQLインジェクションの危険性とその回避についてまとめ
  • ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2010年7月1日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 追記(2011/06/19) ここに来て急にブクマが追加されはじめていますが、このエントリを書いてから状況が改善しています。PHP5.3.6(2011/03/17)にて、PDOでもデータベース接続の文字エンコーディングを指定できるようになりました。この版で、UNIX版のPHPでは解決しましたが、Win

    ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
  • PHPで作るOAuthプロバイダ作成サンプルコード:phpspot開発日誌

    Writing an OAuth Provider Service - Rasmus' Toys Page PHPで作るOAuthプロバイダ作成サンプルコードがPHPファウンダーのRasmus氏によってエントリ化されてます。 Twitterみたいに、開発者向けにOAuthプロバイダを公開してAPIでサイトの機能を公開する際に使えるので覚えておくと便利かもしれませんね。 peclのoauthエクステンションによって実行できるので、インストールも楽チンで、インストール後はコードを元に比較的容易に実装できそうです。 関連エントリ PECLのoAuthエクステンションを使ってPHPTwitterにログインするサンプル例 PHPからOAuth認証が出来るPEARライブラリ「HTTP_OAuth」

  • PHPアプリケーションのセキュリティーチェックシートPDF:phpspot開発日誌

    Definitive PHP security checklist | sk89q PHPアプリケーションのセキュリティーチェックシートPDFが公開されています。 入力、ファイルアップロード、認証、セッション、データベース等のジャンル別に多数のチェックが掲載されていて、自分の弱そうな部分の確認にもよさそうです。 こういう網羅されたチェックシートはありそうで無かった気がしますね。 関連エントリ PHPチートシート集 PHPでのフィルタリング&エスケープ時のチートシート

  • マッチするはずの正規表現がマッチしない現象 - T.Teradaの日記

    今日は、PHPでよく使用される正規表現エンジンであるPCRE(Perl Compatible Regular Expression)の、余り知られていない(と思う)制約について書きます。 プログラム 題材は下のPHPプログラムです。 <?php header('Content-Type: text/html; charset=latin1'); $url = $_REQUEST['url']; if (preg_match('/^(.*?):/s', $url, $match)) { $scheme = $match[1]; if ($scheme !== 'http' && $scheme !== 'https') { exit; } } echo '<a href="'. htmlspecialchars($url). '">link</a>'; 外部から受け取った「url」パラメータ

    マッチするはずの正規表現がマッチしない現象 - T.Teradaの日記
  • おそらくはそれさえも平凡な日々: PHPの正規表現と文字列

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

    cubed-l
    cubed-l 2010/03/26
    えぇ
  • PHP6開発 UTF-16化を断念、5.3へロールバック | エンタープライズ | マイコミジャーナル

    PHP: Hypertext Preprocessor PHPの次期メジャーバージョンはPHP6になるとみられてきたが、問題を打破するために開発ブランチを5.3ベースへ巻き戻すという対処が実施された。Rasmus Lerdorf氏がphp.internals: PHP 6においてPHP6 Unicodeの実装が失敗したことを伝えている。PHP6ではエンジン内部の処理がUTF-16に統一される計画になっていたものの、関係者からはこの方針は間違っているのではないかという指摘もあった。今回実装が行き詰まったことで、PHPはUnicodeに対して新しいアプローチをとることになる。 このあたりの事情がFuture of PHP 6 - Johannes Schluterにまとまっている。紹介されている内容をまとめると次のとおり。 これまでの取り組み PHP6で取り組む基的な内容として、PHPエンジ

    cubed-l
    cubed-l 2010/03/17
  • 【CakePHP】使用しない方が良い・できないメソッド等の一覧 | ECWorks Blog

    CakePHP1.3もRC1となり、いよいよ1.2からの移行を気で考えた方が良い時期に差し掛かってきました。 さて、1.2から1.3になることで、いくつかの新機能が搭載されていく(つまりメソッドが増える)のですが、反対に無くなっていくものもあるので注意が必要です。 たまたまTwitterでこれに関連する話題があったので、ついでなので調べてみました。 1.2.6のソースコードに書かれている「推奨しない」機能は次の通りです。 ■cache() (basics.php) 「Cache::write()」を使用します。 ■&Set::get() (set.php) Setは静的に使うことが推奨されています。 このためget()で設定値を入手しようとするとワーニングが出ます。 ■Xml::compose() (xml.php) Xml::toString()のラッピングです。 ■Email::_l

    cubed-l
    cubed-l 2010/03/02
  • TokyoTyrantをPHPで使う際に便利な資料と実装コードサンプル:phpspot開発日誌

    TokyoTyrantをPHPで使う際に便利な資料がスライドシェアで公開されてました。 TokyoTyrant をご存知の方も多いと思いますが、一応、知らない方に説明をすると、TokyoCabinet という高速なkey-valueストア型のデータベース操作ライブラリがあって、これのネットワークインタフェースになります。 mixi の最終ログイン時刻保存などに使われているそうで、1秒で10000回もの保存・読み出しクエリをマシンたった1台で処理できた実績があります。 データをファイルに保存するので、サーバを落としてもデータは保持され、なおかつmemcachedと同程度のパフォーマンスを発揮できるという物凄いものです。 これをPHPから扱うためにはどうするか、という際に参考に出来る資料となってます。 非常によくまとまっていたのでご紹介させて頂いてます。 資料によると、当然ながらPHP Ext

    cubed-l
    cubed-l 2010/02/22
  • PHPをよりセキュアに、使いやすくする·XHP MOONGIFT

    XHPはPHP拡張のオープンソース・ソフトウェア。PHPは習得コストが低く、反面機能は多数あることもあって多くの開発で用いられている。だがその手軽さもあってか、開発者のスキルによっては適切なエスケープ処理などがされておらず、セキュリティホールにつながりやすい欠点もある。 XHPを使った書き方。なお筆者環境ではエラーになってしまった。 そんなPHPを多数の場面で使っているFacebookでも同様の問題があったのだろう。彼らはプログラマの教育だけではなく、システム面からも補助できるようにした。それがXHP、PHPの機能拡張(Extension)として提供されるソフトウェアだ。 XHPはベースはPHPの素のままに書くことができる。ただしHTMLタグをダブルクォートなどで囲まないのが特徴だ。そして{と}で$_POSTなどの変数が利用できる。そこでは自動的にエスケープ処理が行われるので安全に変数が利

    PHPをよりセキュアに、使いやすくする·XHP MOONGIFT
    cubed-l
    cubed-l 2010/02/18
  • パスワード認証

    ウェブ狂の詩 - @takejune web制作に関する覚え書き このブログの公開は終了しました

    パスワード認証
  • Loading......

    秒专业推荐,开屏体育【亚洲实力平台-安全保障】 立即前往

    cubed-l
    cubed-l 2010/02/05
    気に留めておく
  • RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記

    PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !var.empty? ... # Rubyそれだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!! if ($var) ... # PHP if var && !var.empty? ... # Rubyここで、「空文字列が偽になるような言語仕様こそク

    RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記
    cubed-l
    cubed-l 2010/02/01
    さすがはロシアだ
  • PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記

    PHPerの問題点はPHPしか知らずに的外れなことを言うことだ」と、Javaしか知らなくて的外れなことを言っている連中にすら言われちゃってるPHPerのみなさん、こんにちは。 PHPは「使える道具」であることは事実です。しかし同時に言語仕様がウンコなのも事実。 ここでは、個人的にウンコだと思っているPHPの仕様を挙げてみたよ! htmlspecialchars() の名前が長すぎる これはほんとウンコ。おまえWebアプリのための言語やろが!なんでこの関数の名前がこんなに長いねん!こんだけ長かったらめんどくさがって echo $var としてまうやろが!WordPressのthemeでHTMLエスケープ忘れが多いのはおまえの名前が長すぎるせいだ! そんなわけで、全PHPerはこんな関数を定義するといいと思うよ。 ## echo $var; よりも短く h($var); と書ける! func

    PHPの言語仕様がウンコな理由個人的トップ10 - kなんとかの日記
    cubed-l
    cubed-l 2009/11/29
  • PHPをDisってるブログエントリを集めてみた - kなんとかの日記

    スクリプト言語の範疇に入らないかもしれない言語を使っているPHPerのみなさん、こんにちは。 PHP歴史は、Disられ罵られバカにされ続けた歴史です。 日は、その歴史を紐解いてみたいと思います(一部、PHP擁護派のエントリも含んでいます)。 なおここで紹介していない記事で、ほかに紹介してほしいものがあれば、教えてください。 あと引用は一部のみなので、元記事の全文を読むことを強くお勧めします。 2006年 PHPプログラマ in YAPC::Asia 2006 Tokyo - 0330 (twk @ ふらっと) では、PHPの世界に帰ります。Perlの人はRubyをうらやみHaskellにおどろきPHPを軽蔑すると言う文化になっているようです。 このころには、すでにPHPは軽蔑される存在だったようです。 昔、2ちゃんとかでよくあった、Perl = C++ , PHP = VBってな感じ?

    PHPをDisってるブログエントリを集めてみた - kなんとかの日記
    cubed-l
    cubed-l 2009/11/27
  • PHPのなにが素晴らしいって - キングダムぶろぐ

    いや違うね。 PHPが素晴らしいんじゃなくて、 他があまりにもイケてなさすぎるんだよね。 たとえばさー ちょっとしたWEBサービス立ち上げたくてレンタルサーバーかりたとしても パッと使えるのって、ふつうPerlPHPくらいのもんでしょ。 だれもかれもがサーバー環境のセットアップの知識と余裕があるわけじゃないしね。 それで、PerlPHPの選択になって結局みんながPHPを選ぶわけなんだけど なんでかって? ・普通に使うとPHPの方が遙かに早い え、mod_perl使えばはやいよって? バカなの? PHPは何も考えなくても早いんだよ。 ・Perlはユニコード普通に使おうとするとハマる 難しいこと考えずに手軽に扱えるようにならない限り誰も使わないよね こんな簡単なことなのに やれ文法がなんだだとか思想がどうとか Perl は利用しているユーザー含め質が低すぎるからうんこ。 っておばあちゃんが

    PHPのなにが素晴らしいって - キングダムぶろぐ
    cubed-l
    cubed-l 2009/11/19
    何に反応した話なのか把握してない
  • PHPを使って3分で作る3キャリア対応ケータイサイト | ke-tai.org

    PHPを使って3分で作る3キャリア対応ケータイサイト Tweet 2009/11/17 火曜日 matsui Posted in ソフト紹介, 全キャリア対応 | 28 Comments » 日は3分で3キャリア対応ケータイサイト作れてしまうというPHPスクリプト、「らくらくケータイ3キャリアコンバーター(仮名)」を作成してみましたので、そのご紹介をさせていただきます。 先日のPHP勉強会で発表させていただきました。 ご参加いただいた皆様、当にありがとうございました。 発表資料をアップしてありますので、まずはこちらをご覧ください。 PHPを使って3分で作る3キャリア対応ケータイサイト View more documents from ketaiorg. ということで、「3分で作る」とは謳っているものの、ドコモ用に作られたHTMLを他キャリア用にコンバートするだけの、実に簡素な作りです。

  • not found

    cubed-l
    cubed-l 2009/11/06