PHP
CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823) | 徳丸浩の日記にあるとおりCGI版PHPには任意のコードを実行できてしまう脆弱性があるとのこと。で、実際にこの脆弱性を突かれた事例が見られたそうです。 【メモ】.htaccess改ざん事例(.…
マニュアルによれば「"」「'」「~」「\」は全角に変換されない。 なぜか。おそらく変換すべき文字が一意に決まらないからだろう。全角だと“ダブルクオート”も‘シングルクオート’も右と左の両方がある。~は波ダッシュか全角チルダか決まらない。\は円記号(¥…
PHPのimap_open("{imap.example.com:143}","user","password")で以下のようなエラーが出た。 Warning: imap_open(): Couldn't open stream {imap.example.com:143} in C:\Users\admin\workspace\imap.php on line 45 Notice: Unknown: Certificate failure f…
MySQL 5.0〜5.1.16はプリペアードクエリを使うとクエリキャッシュが効かなくなるとのこと。 blog.ISHINAO.net | MySQLのクエリーキャッシュが効かない MySQL で prepared statement を使うと query cache が効かない - kなんとかの日記 floatingdays: PDOの …
ちょっと気になったので調べてみた。 調査結果 プロジェクト 手法 salt ファイル 関数、クラス、メソッド WordPress 2.7.1 blowfish、拡張DES、md5*1 乱数 wp-includes/class-phpass.php PasswordHash*2 MovableType 4.25 crypt*3 乱数 lib/MT/Author.pm set…
意味が分からない。 しかも通常はPHPではGETやPOSTの値はURLデコードされるのに、ヌル文字が入っているせいかデコードされておらず %A0 などが$_POSTに入ってしまっている。 さらにヌル文字が入っているせいでセッションもおかしくなってしまう。仕方がない…
突然ブラウザがとんでもない文字化けを起こしたので原因を探ってみたらseriarizeしたオブジェクトにprivateな変数を新設したからだった。 対策としてはこれでいいかな。 $serialized = addslashes(serialize($object)); $unserialized = unserialize(stripsl…
PDOのPDOStatement::bindParamは型を自動的に判別してくれないとのこと。 というわけで型判別してバインドする何か。 $stmt = $pdo->prepare($sql); foreach($binds as $key => $bind){ $type = PDO::PARAM_STR; switch(true){ case is_bool($bind) : $type …
http://d.hatena.ne.jp/uunfo/20080516/1210957825で生成された文字列が本当にランダムなのかを確かめてみた。 数字 preg_replace("/[^[:digit:]]/", "", hash("whirlpool", mt_rand())); [ 1214388779.7213 sec / 12503 : 1000008 letters ] [/[^[:digit:]]…
整数をCharts | Google DevelopersのExtended encodingの形式に変換する。Extended encodingはどうみてもbase64。 function google_graph_extended_encoding_character_values($int){ switch(true){ case $int > 4065 : case $int < 0 : return "__"; defaul…
とあるPCにPHPをインストール使用としたらlibjpeg, libxmlがないと言われたのでインストールすることにした。ついでにlibjpegとzlibも最新バージョンを入れることにした。 zlib zlib Home Siteから最新版のソース(今は1.2.3)を落としてmake. $ ./configure…
ランダムな文字列生成 - odz buffer Loading... http://www.ecoop.net/memo/2005-05-31-1.html なんか一時期はやっていたの?と思ったらそうでもなさそう。三つ目なんか2005年だし。以前仮パスワードを生成する必要があったときに、以下のようなコードを書い…
以前こう書いた。 だめ、全然だめ。array_flipが遅い(そりゃそうだ)。同じ配列の値を数10回以上検索するのならやる価値はあるだろうが、そのときもneedleを配列にして一度にin_arrayで検索した方が速い。今度は Pear::Benchmark (Benchmark/Iterate.php) …
PHPのマニュアル(PHP: ftp_ssl_connect - Manual)には、 Windows でこの関数のサポートを有効にするには、自分で PHP バイナリを コンパイルする必要があります。 とある。が、php-5.2.2-win32-installer.msiでインストールする際に拡張をすべてインストー…
preg_replace("/^(\d{2,})(\d{4})(\d{4})/", "$1-$2-$3", $number); のようなことをSmartyのテンプレートで修飾子regex_replaceを使ってやりたかったのだけど、 以下のようにやってもうまくいかない。 {$number|regex_replace : "/^(\d{2,})(\d{4})(\d{4})/"…
PHPでは <form action="index.php" method="post" name="myform"> 名前<input type="text" name="input[name]" /> メールアドレス<input type="text" name="input[email]" /> パスワード<input type="text" name="input[password]" /> </form> のようにすると、 $name = $_POST['input']['name']; $email = $_POST['input']['email']; $password = $…
とあるウェブサーバで4/17だけ異常にアクセス数が増えていて不気味だった。それに日ごと週ごとのアクセス数比較がほとんど無意味になっていて困った。とりあえず、原因のアクセス元を調べてみると 124.87.223.24 と 122.21.237.218 が他の10倍以上のアクセス…
WindowsとLinuxでまったく異なる結果になった。
PHPEclipseは便利なんだけど、文字コードがEUCだとせっかく関数やクラスに付けたコメントがうまく表示されない。 PHPEclipseのソースコードを修正してくれたひとがいるので、ありがたく使わせてもらう。 http://hp.vector.co.jp/authors/VA000137/phpeclipse…
array_keysはとても遅い。でもこれって配列の最後まで検索しているからかな。 果たしてどうなのか。
マニュアルには mixed array_search ( mixed needle, array haystack [, bool strict] ) bool in_array ( mixed needle, array haystack [, bool strict] ) とある。 どちらも配列の値を検索するものだが、array_searchは最初にマッチしたキーを返すのに対し…
だめ、全然だめ。array_flipが遅い(そりゃそうだ)。 同じ配列の値を数10回以上検索するのならやる価値はあるだろうが、そのときもneedleを配列にして一度にin_arrayで検索した方が速い。今度は Pear::Benchmark (Benchmark/Iterate.php) を使ってみようか…