犬ターネット
Archive : 2011年01月
スクリプトで404返してるのにレスポンスヘッダが500とか意味わからん
こんだけのスクリプトをつくって
<?php header('Not Found', true, 404); echo '404 not found !!!';
いざアクセスしてみるとこうなる。
404 ヘッダ出力時に apache ディフォルトの 404 コンテンツ表示するのはまあサーバの設定でどうにかしてるんだろうと納得しよう、でもなんでレスポンスヘッダーが 500 なんだろうか...
つぶやき怪談まとめた
ここ最近のXSS脆弱性
最近のXSS(クロスサイトスクリプティング)脆弱性って傾向が似ていて、
- 検索文字列をmetaに埋め込んでいる
- 検索文字列をjavascript変数に埋め込んでいる
場合に、エスケープし忘れているケースが多い。
あとは「'」を ' にエスケープしてないケースもよくある。
Opera11.00 で noscript タグが無視される件
Opera11.00 で javascript 無効にして noscriptタグ埋め込まれたページみても、noscriptの中身完全無視されるんだけど
ちょっとまじどうすんのこれ
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://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 のほうは更新停止。一元管理大事。