犬ターネット

Archive : 2011年01月

スクリプトで404返してるのにレスポンスヘッダが500とか意味わからん

こんだけのスクリプトをつくって

<?php
header('Not Found', true, 404);
echo '404 not found !!!';

いざアクセスしてみるとこうなる。

20110131161328

404 ヘッダ出力時に apache ディフォルトの 404 コンテンツ表示するのはまあサーバの設定でどうにかしてるんだろうと納得しよう、でもなんでレスポンスヘッダーが 500 なんだろうか...


つぶやき怪談まとめた


ここ最近のXSS脆弱性

最近のXSS(クロスサイトスクリプティング)脆弱性って傾向が似ていて、

  • 検索文字列をmetaに埋め込んでいる
  • 検索文字列をjavascript変数に埋め込んでいる

場合に、エスケープし忘れているケースが多い。

あとは「'」を &#039; にエスケープしてないケースもよくある。


Opera11.00 で noscript タグが無視される件

Opera11.00 で javascript 無効にして noscriptタグ埋め込まれたページみても、noscriptの中身完全無視されるんだけど

opera_noscript.html

ちょっとまじどうすんのこれ


PECL::Imagick で画像リサイズ処理をする場合どれを使えばいいか

http://php.net/Imagick を見ると、以下の関数が画像リサイズに使えそう。

さっそく簡単なベンチをとって見る。ちなみに画像のread/write部分は計測しない。リサイズ処理部分のみ計測。

使った画像は http://f.hatena.ne.jp/mgng/20110125171602

コマンドライン引数で実行する関数を変えて実行。

adaptiveResizeImage が一番速い。

以下、実際にリサイズした画像。

adaptiveResizeImage

resizeImage

scaleImage

thumbnailImage

adaptiveResizeImage と resizeImage は固い感じ。

scaleImage と thumbnailImage はやわらかい感じ。

scaleImage と thumbnailImage は、内部で blur 処理をしてるっぽいから遅くなるのかな。


Re: PHPのsessionのGCのタイミングと$_SESSION変数

この前書いたこれ

1人でアクセスした場合の話であって、複数人でアクセスしてGCが動いてセッションファイル削除されてれば、$_SESSION は空になりますよ。念のため < おれ


子供の名前

・読める
・難しくない

あたりは押さえておきたいと思う。まあ、どうつけようが自由だけど。

参考文献:http://mamesoku.com/archives/2089290.html


複数ブログ同時管理とか

なんかの記事にどうやったらブログに人集められるか、みたいのが書いてあって、そこに書かれていたのは

・内容を絞る(スポーツだけとか映画だけとか)
・更新しまくる

ということであった。

まなめさんっているでしょ。あの人いろんなタイプのブログ平行運用してる。
http://blog.livedoor.jp/manamerit/archives/65219558.html

おれには絶対無理だわ。ちんぽ


PHPのsessionのGCのタイミングと$_SESSION変数

session_start() で GC 実行されて、該当セッションファイル削除されても、そのスクリプト内では $_SESSION の情報生きてるっぽい。

流れはこんな感じか

session_start();
↓
$_SESSION に sess_xxxx ファイルの情報ぶっこむ
↓
GC起動して sess_xxxx ファイル削除される
↓
(sess_xxxx ファイルがないのに、$_SESSION の中身にはアクセス可能)

実際のソース(php-src/ext/session/session.c)もそんな感じの実装。最後に GC 呼んでる。


マジネットワーク弱者

マジネットワーク弱者


ダイソンか国産か

実際に家電屋で試すとわかるけど、ダイソンってすごくうるさい。戸建てならまだしも、集合住宅だとこのうるささは致命的。

で、家電屋に言われたのは、吸引力も排気のクリーンさも、ダイソンだろうが国産だろうが変わらない。違うのは、ダイソンの場合、メンテが楽で軽量で故障したときのサポート体制がばっちりできてるってところ。

故障したとき面倒で、多少重くても、静かで「ほこりセンサー」とかついててちょっと安価な国産がいいと思います、だと。

でもダイソン、見た目かっこいいんだよな。


Imagick::resizeImageの第3引数のFILTERって何を指定すればいいの

Imagick::resizeImage の第3引数に何を指定していいかわからないし、処理速度を調べたかったので簡単にベンチとってみた。使った画像はこれ。1M の 3514x2340 ピクセル。

ソース。

実行結果。filter の順番を変えて何度か実行したけど、大体同じ結果。

ということで、とりあえず Imagick::FILTER_POINT を指定しとけばいいと思った。

ちなみに、

  • Imagick::resizeImage の第4引数を 0 にすると blur 処理がされなくなるので、速くなる
  • どの filter を設定しても、リサイズ後の画像の見た目は大体同じ(Imagick::FILTER_CUBIC 以降を設定すると多少ぼやけるような?)

ということもわかった。


te'風タイトルにするjavascriptの正規表現

te' のタイトルって 最後らへんの漢字を『』で囲う のが多くて、じゃあこれをjavascriptの正規表現で書いたらどうなるんだろうと思って書いてみた。

ちなみに任意の漢字に一致するjavascriptの正規表現は以下を参考にした。
JavaScript で任意の漢字にマッチする正規表現を書く

さっそく実行。一応うまくいってるみたい。

もっと短くかけないかなあ


各ブラウザのFlash無効化の方法

まとめておく。

IE

ツール
インターネットオプション
プログラムタブ
アドオンの管理
表示プルダウン→全てのアドオン
Shockwave Flash Object 右クリック→無効

Firefox

ツール
アドオン
Shockwave Flash → 無効化

Google Chrome

アドレスバーに chrome://plugins/ 入力
Flash → 無効にする

Opera

ツール
設定
詳細設定タブ
コンテンツ
プラグインを有効にするのチェック外す

Safari

設定
セキュリティタブ
プラグインを有効にする→チェック外す

Opera と Safari は Flash のみ 無効にするってのはできないっぽい。プラグイン全体が無効になる。


これうまかった

妻が買ってきた。上野駅にあるらしい。ライ麦ウエハースの間にホワイトチョコが挟まってる。


過去は遡れるが未来のことはわからない

ああ、でも不便だなあ。


REDIRECT_*** は mod_rewrite 経由時に設定される

.htaccess がこんなんで、

RewriteEngine On
RewriteBase /path/to
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . test.php [QSA,L]

test.php がこんなん。

<?php
foreach( $_SERVER as $key => $val ) {
  if ( strpos( $key, 'REDIRECT_' ) === 0 ) {
    echo "{$key} : {$val}";
  }
} 

存在するファイルやディレクトリ以外のアクセスは、test.php を経由する設定。

で、test.php で REDIRECT_*** のサーバ変数を表示させるだけ。

こんな感じでリクエスト送ってみる。レスポンステキストは何もない。

$ curl http://172.22.0.104/path/to/test.php
$ (何もでない)

次に、適当なファイル名にしてアクセスしてみる。こんどはレスポンスが返ってきた。

$ curl http://172.22.0.104/path/to/unko.txt
REDIRECT_SCRIPT_URL : /path/to/unko.txt
REDIRECT_SCRIPT_URI : http://172.22.0.104/path/to/unko.txt
REDIRECT_STATUS : 200
REDIRECT_URL : /path/to/unko.txt

要は、mod_rewrite を経由したときだけ、REDIRECT_*** のサーバ変数が設定される、ということだった。サーバ変数いじっててはまったので覚えておく。


とりあえず

日記みたいなものはこっちに書いていこう。atpages のほうは更新停止。一元管理大事。