タグ

ブックマーク / hnw.hatenablog.com (10)

  • CloudFlareのCNAME FlatteningをGitHub Pagesで使ってみた - hnwの日記

    (03/04 08:15 追記)今回のDNS設定変更でGitHub Pagesで提供しているCDNが使えるようになったことを追記しました。 今回はDNS方面の話題です。僕ははてなダイアリー以外にhttp://hnw.jp/という古めかしいサイトも管理しています。サイトの実体はGitHub Pagesで、これまでAWSのRoute 53でカスタムドメインの設定をしていました。 ところで、このサイトが2月の頭から1ヶ月ほど見えなくなっていました。原因は僕がGitHubからのメールを読み飛ばしており、DNS設定の変更を怠っていたためです。これに懲りて、今後DNS設定を二度といじらなくて済むようRoute 53からCloudFlareに引っ越してみました。その顛末を紹介します。 GitHub Pagesのカスタムドメイン設定 GitHub Pagesを普段使っていない人も多いと思いますので、まずは

    CloudFlareのCNAME FlatteningをGitHub Pagesで使ってみた - hnwの日記
    Tomohiro
    Tomohiro 2015/03/05
  • GitHubユーザーのSSH鍵6万個を調べてみた - hnwの日記

    (2015/1/30 追記)時期は不明ですが、現時点のgithub.comはEd25519鍵にも対応しています。 (2016/5/31 追記)「GitHubにバグ報告して賞金$500を頂いた話」で紹介した通り、既に弱い鍵はGitHubから削除され、新規登録もできなくなっています。 GitHub APIを利用して、GitHubの31661アカウントに登録されているSSH公開鍵64404個を取得してみました。抽出方法*1が適当すぎて偏りがあるような気もしますが、面白い結果が得られたと思うのでまとめてみます。 SSH鍵の種類 鍵の種類 個数 割合 RSA鍵 61749 (95.88%) DSA鍵 2647 (4.11%) ECDSA鍵 8 (0.01%) 約6万個の鍵のうち、8個だけECDSA(楕円DSA)鍵が見つかりました!常用しているのか試しに登録してみただけなのかはわかりませんが、何にせよ

    GitHubユーザーのSSH鍵6万個を調べてみた - hnwの日記
    Tomohiro
    Tomohiro 2014/07/10
  • PHP 5.3.4以降ではヌルバイト攻撃が成立しにくくなった - hnwの日記

    今回はWebセキュリティの話題です。実はid:t_komuraさんの記事で既報なんですが、案外知られていない気がしたので改めて紹介します。 PHPアプリケーションに特化した攻撃手法として、ヌルバイト攻撃というものがあります。PHPの大半の関数がヌル文字\0(0x00)を文字として認識する一方、Cの関数を直接呼び出すような一部関数では文字列の終端文字として機能することがあり、このねじれを利用する攻撃のことを言います。 特に、これまではディレクトリトラバーサル脆弱性やLFI(Local File Inclusion)脆弱性との組み合せでヌルバイト攻撃が言及される印象がありました。例えば次のような状況です。 <?php function __autoload($class_name) { require 'lib/' . $class_name . '.php'; } $obj = new $_

    PHP 5.3.4以降ではヌルバイト攻撃が成立しにくくなった - hnwの日記
    Tomohiro
    Tomohiro 2012/10/28
  • phpenv+php-build環境の構築と運用 - hnwの日記

    (2013-03-25追記)下記PHPのビルドにはgcc、autoconf、automake、libtool、bison、re2c、libmcrypt、jpeg、libpng、flex(PHP 5.2.17のみ)などのインストールが必要です。 PHPのバージョンを色々揃えたいというニーズは多くの人がお持ちだと思います。これを解決する方法の一つにphp-buildがあります。このツールとphpenvを組み合わせて使うことで、様々なバージョンのPHPを楽に扱うことができます。 これら2つのツールについては既に他の方も紹介されていますが、両ツールの最新バージョンに追随したい場合など、少々わかりにくい点がある気がします。また、インストール方法も何種類か流儀があり、どうするのがベストか悩んでいる人もいるのではないでしょうか。 稿ではphpenv+php-buildを僕がどう使っているかを紹介します

    phpenv+php-build環境の構築と運用 - hnwの日記
    Tomohiro
    Tomohiro 2012/08/30
  • HerokuのBuildpackを利用してmbstringが有効なPHPサーバを立ててみた - hnwの日記

    HerokuといえばRubyのPaaSという印象が強いのは僕だけでしょうか。しかし、Herokuの現在の最新環境であるCedarでは下記の7つのプラットフォームをサポートしているんだそうです。(出典:The Celadon Cedar Stack | Heroku Dev Center) Clojure Facebook Java, Spring or Play Node.js Python or Django Ruby or Rails Scala このうちFacebookだけが異彩を放っているんですが、説明を読んでみるとFacebookアプリに特化したもののようで、バックエンドの言語としてはRuby, Node.js, Python, PHPが使えるらしいです。(出典:Getting Started with Your Facebook App on Heroku | Heroku D

    HerokuのBuildpackを利用してmbstringが有効なPHPサーバを立ててみた - hnwの日記
    Tomohiro
    Tomohiro 2012/06/05
  • WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

    新年あけましておめでとうございます。今年もボチボチやっていきます。 稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お

    WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記
    Tomohiro
    Tomohiro 2012/02/09
  • GitHubへpull requestする際のベストプラクティス - hnwの日記

    みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、

    GitHubへpull requestする際のベストプラクティス - hnwの日記
    Tomohiro
    Tomohiro 2011/12/14
  • PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記

    PHPのstrtotime関数やDateTimeクラスは、様々なフォーマットの日付文字列を解釈し、時刻として取り扱うことができます。たとえば次のような文字列を解釈することができます。 "Wednesday July 23rd, 2008"(=2008年7月23日) "first Wednesday July 23rd, 2008"(=2008年7月30日、PHP5.1.0以降) "first Wednesday of July 23rd, 2008"(=2008年7月2日、PHP5.3.0以降) こうした日付の解釈はPHP独自の実装です*1。当初はGNUの日付記法に準拠していたようですが*2、今や別物といっていいでしょう。にもかかわらず、これまで解釈ルールの詳細を説明するドキュメントが存在しない状態が続いていました。 そのため、仕様を推測する根拠はstrtotime関数のサンプルコードとP

    PHPの日付文字列の解釈ルールがドキュメント化されました - hnwの日記
  • PSR-0 を和訳してみた - hnwの日記

    先週の土日にPHPMatsuriに行ってきました。ナイスなイベントでしたね。その感想はまた改めて書きますが、Nate Abeleによるセッション「Practical PHP 5.3」で触れられていたPSR-0を適当に訳してみました。これはPHP5.3の名前空間とクラス名に関する標準化の試みで、少なくともZendFrameworkとsymfonyの中の人が関わっているようです。 うまく訳出できなくて苦し紛れのところもあるので、修正すべき箇所があれば教えてください。 元の文章は http://groups.google.com/group/php-standards/web/psr-0-final-proposal にあります。以下はその和訳です。 PSR-0 最終提案 以下で、オートローダーの相互利用性を確保するための必須要件について記述します。 必須要件: 名前空間とクラスの完全な名前とし

    PSR-0 を和訳してみた - hnwの日記
  • PHP 5.3の無名関数を試してみた - hnwの日記

    何番煎じかわからないですが、PHP 5.3からは無名関数が実装されたということで、試しに使ってみました。 見なくても何となく使えるようなものだと思いますが、ドキュメントが「PHP: 無名関数 - Manual」にありますので、ざっと目を通した方がいいと思います。 僕は「どうせ無名関数って中身はcreate_functionなんでしょ?」と思っていたんですが、Closureクラスを使って実装されているなんてことも書いてあります。PHPにしてはマトモっぽくて意外に感じました。 コールバック関数としての無名関数 PHPには引数としてコールバック関数を要求する関数がありますが、PHP5.3.0からは無名関数を引数にしても動くようになりました。 無名関数は、普段の関数と同じノリで「function」から書き始めればOKです。関数宣言との違いは関数名を書かない点だけで、引数やタイプヒンティングについて

    PHP 5.3の無名関数を試してみた - hnwの日記
  • 1