タグ

2011年8月24日のブックマーク (7件)

  • Railsの人気テストフレームワーク6選!

    前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、テストを使ったリファクタリングについて解説していきます 少し時間が空いてしまいましたが、前回は具体的なWebアプリを例にして簡単なコードレビューをしました。今回からは、そのWebアプリに対してテストを書いてリファクタリングする具体的な方法について解説していきます。 今回はまず、Ruby on Railsで人気のあるテストフレームワークの数々についてご紹介します。 最近のテストフレームワークトレンド Hamlの作者として知られるHampton Catlin氏が行った「Hampton's Third Ruby Survey, 2010」の中に、テストに関するいくつかの興味深い結果があります。好きなテストフレームワークは何ですかという質問に対する答えをグラフにすると以下の通りです。 これを見ると「ビヘイビア駆動開発(

    Railsの人気テストフレームワーク6選!
    WINGS
    WINGS 2011/08/24
  • もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog

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

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

    日経BPから4月4日発売予定の『はじめて学ぶ最新サイバーセキュリティ講義 「都市伝説」と「誤解」を乗り越え、正しい知識と対策を身につける』の監訳を担当したので紹介させていただきます。 書の原書は、ユージーン・H・スパフォード、レイ・メトカーフ、ジョサイヤ・ダイクストラの3名の共著として書かれた「Cybersecurity Myths and Misconceptions」で、米国Amazonのレビューでは4.6の高評価を得ています。また、「インターネットの父」ことヴィントン・サーフ氏が書に前書きを寄せています(後述)。 はじめにサイバーセキュリティは、その短い歴史にも関わらず、神話や都市伝説に満ちています。古典的なものとして、書の冒頭では、「ウイルス対策企業が自社製品を売るためにマルウェアを作って拡散した」が紹介されています。 書は、このようなセキュリティの都市伝説や神話をとりあげ

  • ぼくが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インジェクション)
  • java.util.concurrentパッケージを用いたマルチスレッドプログラミングについて

    はじめに Java SE 6時点では、マルチスレッドプログラミングを行う素材として、当初から持つThreadクラスと、Java 5で追加されたjava.util.concurrentパッケージがあります。また、Swing GUI上でスレッドを扱うjavax.swing.SwingWorkerクラスもJava SE 6から追加されています。 Java SE 6におけるスレッドの生成方法 java.lang.Threadクラスのインスタンスをnewで生成し、start()メソッドを呼ぶ java.util.concurrent.Executorインタフェースを実装するクラスのインスタンスを取得し、execute()などの別スレッドで実行を依頼するメソッドを呼ぶ javax.swing.SwingWorkerクラスのサブクラスを定義し、そのインスタンスをnewで生成し、Swingスレッド(Eve

  • Asset Pipelineを備えたRails 3.1のリリースに向けて、その根幹を担うSprocketsをちょっと触っておくことにした。 - Sooey

    Asset Pipelineを備えたRails 3.1のリリースに向けて、その根幹を担うSprocketsをちょっと触っておくことにした。 JavaScript dependency management and concatenation: Sprockets SprocketsはRubyで書かれたJavaScriptプリプロセッサで、複数のJavaScriptソースファイルを1つにまとめるのが主な機能。それによって以下のようなメリットがある。 複数のサイトやアプリケーションで共通するコードを再利用可能な形で切り出した構成にできる JavaScriptプラグインという単位でCSSや画像もまとめることができる JavaScriptファイルを1つにまとめてブラウザに読ませることによる高速化 HTTPリクエストの回数を減らすことができる JavaScriptをコメント付きの複数のファイルおよび

    WINGS
    WINGS 2011/08/24
  • ASCIIcasts - “Episode 265 - Rails 3.1の概要”

    265: Rails 3.1の概要  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto Rails 3.1の最初のベータ版がリリースされました。今回から数回にわたって新機能を紹介していきます。今回のエピソードでは、環境のセットアップ方法について説明し、その後で新機能の概要を見ていきます。 Rails 3.1をインストールする Rails 3.1 beta gemをインストールする前に、rvmを使用してgemsetを作成し、インストールする環境をその他の環境から隔離してRails 3.0のインストール環境に影響を与えないようにします。次のコマンドを実行して、railspreというgemsetを作成します。 $ rvm 1.9.2@railspre --create 次

    WINGS
    WINGS 2011/08/24