パスワードを忘れた? アカウント作成
398416 journal

mumumuの日記: %00

日記 by mumumu

http://www.ietf.org/rfc/rfc2396.txt

URI にASCII以外の値を入れる際は、16進にエンコードしなければな
らないことが知られている。仮にNULL文字がエンコードされた場合、
%00 となる。

検索エンジンに入力された文字列を解析するために、URIエンコード
された文字列をデコードしていたら「%00」のパターンに出会った。
まさかこんなものが検索文字列に紛れてくるとは思わなかった。。

PHP的には「ほげほげ[NULL]」と「ほげほげ」は違う文字列であるが、
PostgreSQL 的には同じと見做される。これが元でduplicate key
errorとなったのだ。

$str = preg_replace('/[\000-\017]/', '', $str); として対処。

#けど、こういう行儀の悪い検索文字列の入力の類ってわざとやって
#るのかどうかは知らんけど、Googleでしか今のところお目にかか
#っていない。Fu●k Google! とソースに書きたくなる。(藁

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...