バイナリセーフ

プログラミング

バイナリセーフとは?

 状態:-  閲覧数:2,473  投稿日:2011-05-03  更新日:2017-09-28  
バイナリデータをきちんと処理できる
・入力値がどんなバイト列であっても正しく扱えること
・ヌルバイト(\x00,\0)を通常の文字として認識する
・NULLバイトなどのバイナリデータが含まれていても正しく処理される

ヌルバイトが特別な理由
・CおよびUNIX、WindowsのAPIでヌルバイトを文字列の終端とみなす取り決めがあるから


バイナリセーフ関数 / バイナリセーフでない関数

 閲覧数:338 投稿日:2017-09-28 更新日:2017-09-28 

バイナリセーフ関数


NULLバイトを正しく処理できる関数
・NULLバイト(\x00,\0)を通常の文字として認識する関数
・文字列にヌルバイトが含まれていても正しく(=文字列の終端とはせず)扱ってくれる関数


バイナリセーフでない関数


非バイナリセーフな関数
・NULLバイト(\x00,\0)を文字列の終端と認識してしまう関数
・ヌルバイトを終端だと見なしてしまうので、以降のデータを正しく扱えない

PHP
・ereg_replace()
・eregi()
・eregi_replace()
・split()
・spliti()
・include()
・include_once()
・require()
・require_once()
・fopen()
・file_get_contents()
・readfile()
・basename()




可搬性

アスペクト指向

コメント投稿(ログインが必要)