読者です 読者をやめる 読者になる 読者になる

モノノフ日記

普通の日記です

putty++

UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - それ図解で。・・・tohokuaikiのチラシの裏で書かれている冗長なエンコードを出力するPHPスクリプトをputtyで実行してみた。実行したのは引用してる下記のコードです。

何でこんなんが全部「/」として認識されるんだ!?って感じだけど、実際にやってみる。PHPで。

<?php
echo $sl1 = hex2bin('002f')."\n";
echo $sl2 = hex2bin('c0af')."\n";
echo $sl3 = hex2bin('e080af')."\n";

function hex2bin($hex_str)
{
	return pack("H*" , $hex_str);
}

ってやってコマンドラインから実行してみる。ターミナルの出力はUTF-8。なので、ターミナルが「UTF-8である」と解釈された文字が私の目に映るはず。

http://d.hatena.ne.jp/tohokuaiki/20090910/encoding

実行結果はコレ。puttyの出力設定はUTF-8(CJK)。
f:id:Kiske:20090911115023p:image



   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)<コンソール上なんだからどっちでもいいだろ!
  |     ` ⌒´ノ
.  |         }  ミ        ピコッ
.  ヽ        } ミ  /\  ,☆____
   ヽ     ノ    \  \ /     \
   /    く  \.  /\/ ─    ─ \
   |     `ー一⌒)  /   (●)  (●)  \< 不正なエンコードが文字化けしている!
    |    i´ ̄ ̄ ̄ \ |      (__人__)     |  これはputtyの方が高性能であるという 
               \     `⌒    ../ 証拠に間違いないっ! 
               ..ノ           ..\