http://www.openqa.org/selenium/index.html
HTMLでテストケースを書いて、ブラウザで実行できる Web 用の xUnit 系テストツール。実装は JavaScript です。
同僚経由で知りましたが、かなりいいです。
追記: これを Firefox の拡張で行えるようにした Selenium IDE というものもあります。
ブラウザでの動作を記録してそこからテストを生成してくれるというものです。
テストの生成から実行まで全て短時間で GUI でできるというのが素晴らしいです。作成したテストはもちろん本家 Selenium でも使えます。これから何度もお世話になりそう。
なお、この拡張は日本で作られた Selenium Recorderがベースになっています。
参考:
– webアプリケーションテストツール seleniumがヤバすぎる(2nd life)
– SeleniumIntegration
– [Web アプリケーションテストツール Selenium のテスト記述から開放してくれる Firefox 拡張 Selenium IDE|http://cl.pocari.org/2006-02-15-3.html]]
投稿者: editor
MD5 クラッキング
とりあえず何でもハッシュにしておけば安全、は間違いです。
CRC32 等、ハッシュアルゴリズムとソースデータの性質によっては衝突する可能性が高くなりますし、ハッシュにすると、ハッシュ自体が表現できる範囲を超えた数を検査すると必ず重複します(CRC32 なら 32ビット, MD5 なら128ビット)。
また、いくら不可逆とはいえ、元のデータが簡単に類推できるものなら総当たりで調べる事が可能(*1)です。
たとえば単純に現在時刻のタイムスタンプ(や精度が十分に高くない乱数)からのハッシュ、ユーザのインプットなど、外部に判明している値からのハッシュ、アルファベット1文字や単純な繰り返しからのハッシュは推測されやすく安全とはいえません。
さらに、類推ができなくても元データの表現している範囲が狭いのであれば衝突の確率も高くなります。また、MD5 には元データさえわかれば、全く同じハッシュを持ちつつ、元のデータを改ざんできる脆弱性がある事も判明(*2)しています。
とはいえ、以上の性質を理解した上で、一時的な値として利用する分にはハッシュというのは価値の高いものだと
*1:
– XMD5.org
– Project MD5 RainbowCrack
メモリ消費を犠牲に処理速度を向上する技法を使ったMD5 の総当たりチェックプログラム. Windows 版もあります。
8 文字までの半角英数字文字列であれば数分で解読できるとのこと。
少し前までオンラインでも試せましたが、現在はオンライン版は公開終了しているようです。
*2: 非公開なデータ(一部、あるいは全て)が十分に長くなるようにし、かつハッシュ値の有効期間も限定するなど、制限を設ける等回避方法もあります。あるいは(今のところ)安全な SHA-256 を使うのも方法です。
– SHA-0、MD5、 MD4にコリジョン発見、reduced SHA-1も(/.j)
– MD4/MD5 コリジョンの実証コードが公開(/.j)
– RFC4270 インターネットプロトコルにおける暗号技術的ハッシュ関数についての攻撃
端末での作業を記録/再生する
script コマンドは標準ではいってますが、必ずしも視認しやすいわけではないのであんまり使ってなかったりします。
そこで ttyrec (port: misc/ttyrec) というものを導入してみました。時系列まで記録され、実際に作業してるかのように再生できるあたりが面白いです。利用の仕方は script (や通常のシェル)と同じように
ttyrec output.tty
とすれば記録を開始します(入出力を記録して転送するだけのシェルで現在のシェルへの動作をラップする)。
終了するときは
exit
でOKです。
再生するときは
ttyplay output.tty
再生のみでファイル操作は行わないのですが、知らないと焦りそうです。
ちなみに
ttyplay -p output.tty
とすれば
tail -f の動作のような、リアルタイム再生も可能です。
拡張範囲が広くてなかなか面白いし便利ですね。
参考:
– 横着プログラミング第 4 回: ttyrec 端末を録画再生するツール
HTTPS でクライアント認証に証明書を使う
電子申請や決済サイトでの管理など、各所で利用されてきているので導入してみました。
以下は自分が承認した証明書のみを受け付ける時の設定手順です。
1. CA 構築のための鍵のペアを生成する
2. Apache の設定で、クライアント証明書が承認を要求して CA を参照するように設定する
2. クライアント用の鍵のペアを生成する
3. クライアント用の鍵から証明書を作成する
4. 証明書を .p12 形式に変換する
5. 4 で作った証明書をクライアントのブラウザにインポートしてもらう
という手順を踏めば見られるようになります。証明書がないと閲覧不可になります。
参考:
– SSL 入門
– OpenSSL を使った CA の構築
画面のキャプチャ動画を swf で保存できるツール
– CamStudio
情報元:
– swf形式で動画キャプチャ
画面全体や特定ウィンドウを連続キャプチャするツール
– Wink
プレゼンでの資料作りや仕様書作りのに役立ちそうなツール。
自動/手動キャプチャをして、画像に説明などを加えることができます。
PDFやHTML(+任意画像形式)で出力可能です。
AVI, MPEG, QuickTime, WMV などのムービーを FLV やフラッシュに変換する
Linux, BSD:
FFmpeg
Windows:
Riva FLV Encoder
いずれもフリー。後者は拡張子を自分で操作することで swf に変換できるとのことです。
検索用キーワード: wmv2flv,mpeg2flv,mpg2flv,avi2flv, wmv2swf,mpv2swf,mpeg2swf,avi2swf
Riva FLV Player という flv を再生できるフリーソフトもあるようです。
参考:
– Riva FLV Encoder と HugFlash
解説サイト。
メモ – rsync のススメ
同期に使う rsync, なかなかいいですよ。
scp 使いの方は、ほぼ同じ感覚で利用できます。
adhoc に開発環境とテスト環境を同期させるのにも使えたりします(CVS などで管理していない場合とか)。
scp -pr from[ from2[ from3 …] ] to
に対して
rsync -a –rsh=ssh from[ from2[ from3 …] ] to
のように使えます。差分コピーを行っているのか, 2回目以降は scp よりはるかに高速です。
さらにオプション次第で同期の動作を制御できます。–rsh=ssh は RSYNC_RSH で事前に設定することで省略できます。
例:
rsync -a –rsh=ssh ~/public_html user@sync.example.org:
とすれば sync.example.com サーバの user アカウントの ~/public_html をローカルの ~/public_html に同期します。
参考:
man rsync
CUI で SSL 証明書と秘密鍵の中身を表示する
OpenSSL プログラムを利用することで表示が可能です。
– server.crt という証明書の情報を表示する。
openssl x509 -noout -text -in server.crt
– server.key という RSA 方式秘密鍵の情報を表示する。
openssl rsa -noout -text -in server.key
参考:
– トラブルシューティング – サーバが起動したように見えるが、セキュアサイトにアクセスできない(Linux JF)
tips – 汎用インクルード用ファイルでの include, require では dirname(__FILE__) を使う
他所様のコードを見ていると、
require ‘../include/conf.php’;
などというように(./ や ../ を含む)相対パス指定しているのを見掛けるのですが、これには落とし穴があります。
たとえば上のコードが書いてあるファイルが script/foo.php だとします。
別のディレクトリから foo.php を include したいと思い、
public_html/main.php で
> require ‘../script/foo.php’;
とすると、
Fatal error:main(../include/conf.php)[function.main]: failed to open sream: No such file or directory at …
のようなエラーが出て正常に動作しない、という結果になります。
これは PHP では