
コンピューターを破壊する不運な名前を持つ人々 108
ストーリー by hylom
姓名を分けて入力する意味はあるのだろうか 部門より
姓名を分けて入力する意味はあるのだろうか 部門より
あるAnonymous Coward 曰く、
BBCが、「不運にもコンピュータを壊してしまう名前を持つ人々」を紹介している(Slashdot)。
紹介されている1人目はJennifer Nullさん。Nullさんが飛行機のチケットを購入しようとすると、ほとんどのWebサイト上でエラーメッセージが表示されるという。彼女の姓である「Null」を入力しているにもかかわらず、「姓の項目にスペースを入れていませんか、入力を確認して再試行してください」といった表示がされ、電話で航空会社に問い合わせても説明が理解されなかったり、解決方法はないという返答が戻ってくるという。また、航空会社だけでなく政府の納税関連Webサイトなど、ほかのサイトでも同じような問題に悩まされるという。
同様の問題を抱える名前を持つ2人目は、ハワイのJanice Keihanaikukauakahihulihe'ekahaunaeleさん。こちらは姓が長すぎて入力できないという問題を抱えるようだ。そのため、政府のコンピュータシステムではこの問題を解決するためのアップデートが行われたという。
このような問題はアメリカだけの問題では無い。日本で生活経験のあるプログラマーのPatrick McKenzie氏は、日本で所得税を申告しようとした際、文字数が多いためにシステムにフルネームを入力できなかったと語っている。こうした問題は2011年のW3Cでも指摘されている(W3C)。
SQLインジェクションアタックの対象になりかねない (スコア:5, 参考になる)
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
Re:SQLインジェクションアタックの対象になりかねない (スコア:5, おもしろおかしい)
>長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
むかしむかし、アイテーギョー界にウェブアプリなんぞ無かった時代のことじゃ。
その頃キギョーは各々の城郭(シャナイネット)に閉じ篭り、インターネッツからの脅威など知らぬわりと平和な時代であった。
そんな時代のあるところに、入力項目に ' が入るとコケてしまうシステムがあったのじゃ。
まあアカシックレコードの秘術(SQL)に触れた者にはご察しのよくある災厄(バグ)であった。
で、当時の神々(ジョーキュー=エスイー神)が持てる英知を振り絞られ、サイコーにエレガントな解決策をお考えになられた。
そう、' は禁止文字となったのじゃ。
下々の者たち(シ=タウケ=エスイー神とその配下のプ=ログラマ族)の中には、「いや、エスケープすればいいんじゃね?」と上級の神々に異を唱える者たちがいた。
しかし、上級の神々が知らぬアカシックレコードの秘術を知る彼らは、上級の神々の逆鱗に触れことごとく炎上案件に放り込まれ焼き尽くされた。
残った下々の者たちは、ちまちまと入力画面に ' をチェックするコードを書き込むか、最高神(コキャク神)に「どうか ' は入力しないでください」と祈る巡礼の旅に出る事を強いられたのじゃ。
それとは別に、, の入力が禁止されたシステムもあったのじゃが(シー=エスブ=イーの魔物が暴れるそれはそれは恐ろしい伝説)、その話はまたの機会にな。
Re:SQLインジェクションアタックの対象になりかねない (スコア:3, 興味深い)
> それとは別に、, の入力が禁止されたシステムもあったのじゃが
「,」の入力を防止するために「ね」キーの使用をも禁止し、
それでは「ね」の入力が不可能になると訴えた日本語かな入力宗派を弾圧し、
ローマ字入力への改宗が通告されたと云うシステムですね。
ええ知っています。
Re:SQLインジェクションアタックの対象になりかねない (スコア:2, 興味深い)
表記方法によっては名前にアポストロフィが入ってしまう名前の方、日本人には結構多いですよね(けんいち Ken'ichi さん、とかの「ん」のあとにア行とかヤ行とか入る名前です)。
Re:SQLインジェクションアタックの対象になりかねない (スコア:5, 参考になる)
ローマ字で入力しろという指示だったので、アポストロフィー入りの名前を入力できないバグを報告してあげたら、
日本人にアポストロフィー入りの名前は存在しない、不正使用の疑いがある、不正でないことを証明せよ
と某社サポートに責められたでござる
#ローマ字つづりの内閣告示を教えてやったら逆ギレされた
Re:SQLインジェクションアタックの対象になりかねない (スコア:3, 興味深い)
外務省は、パスポートに表記するローマ字名にアポストロフィを入れない方針ですから、「日本人にアポストロフィー入りの名前は存在しない」という主張もありえます。
もっとも、アポストロフィなしでは、本当は日本人の名前を正しく表記できないのですが。たとえば、 Oharaという表記は「おはら」「おおはら」「おおあら」の3通りの可能性があります(「おお」はOでもOHでもいいことになっているので)。本来なら区別されるべきものが区別されないのはおかしいでしょう。
本当ならアポストロフィだけでなく、長音表記もŌやÔのようにできるべきなのです(そして、長音用のアクセント記号をマクロンにするかサーカムフレックスにするかでもめる)。
Re:SQLインジェクションアタックの対象になりかねない (スコア:2, 参考になる)
(「おお」はOでもOHでもいいことになっているので)。
パスポートは長音を表現しないです。
おおはOです。
おおはら=OHARA
おはら=OHARA
おおあら=OARA
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
小原さんと大原さんはいっしょになるのか
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
「パスポート 長音」で検索して最初に出てきたところ。
氏名に「オウ」音等長音を含む方(パスポート) - 愛知県 [aichi.jp]
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
注意にちゃんと書いてあるけど、家族で統一しないと家族として判断されない可能性があります。
Re:SQLインジェクションアタックの対象になりかねない (スコア:3, 参考になる)
コンマ、ハイフン、アポストロフィ、スラッシュは使用可能 [mofa.go.jp]らしいですね>パスポート
下手したら人権救済申し立て事案になりかねないのに、無茶しよるなサポート…
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
>すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。
「'」は、アイルランド人の姓にめちゃめちゃよく出てくるので、人名を扱うシステムでつかえないのはあり得ないと思うが。
オコネル、オニール、オブライアン……
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
オライリー
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、
SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、
Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。
マジで居るんだなあ。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
補足してくださりありがとうございます。
お分かりの通り、自分が心配したのはもっともっと初級のミスの方です。
パラメタライズドSQLなど、サーバ側、もしくはライブラリ等が型に合わせて自動的にエスケープ処理をしてくれるなら大丈夫でしょう。入力としても文字列としてのNullというものなら、それは文字列として解釈してくれるだろうと思います。いくらなんでも。だよね。きっと。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
プログラマが意図してやらなくても、フレームワークや中間のレイヤーが、勝手に'null'をヌルデータに変換したり、ヌルデータと'null'を同一視したりする場合があるのです。
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
http://stackoverflow.com/questions/4456438/ [stackoverflow.com]
の例では、
の組み合わせだったそうです。
Re:SQLインジェクションアタックの対象になりかねない (スコア:2, 興味深い)
とある会社のWebサイトで、外部と連携してる(顧客から申し込みがあると外部サイトにも情報を送信する)システムを作ってた頃。
自システムの文字コードがUTF-8、連携先のシステムがEUC-jpで動いてたんだ。
で、名字がJISの第3水準だか第4水準だかの文字(1文字)の人が申し込みしたとき、変換インターフェースが空文字に置き換えた挙げ句、連携先のサーバーアプリが所謂「ぬるぽ」で落ちて騒ぎになったことはある。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
書いてみた。間違いに至る例を意図的にかつ再現しやすいよう書くのって難しいね。
// input要素nameに値をセットすることを意図したこんな感じの関数があったとして
function setHogeText(text) {
document.getElementById("name").value = text;
}
setHogeText();// こういう記述ミスを防ぎたい(呼び出しに引数が足りてないのでundefinedになる)
// じゃあ検出ロジックを追加しよう!
function validateHogeText() {
if (document.getElementById("name").value === undefined) {// あれれ、これじゃ検出されないや
window.alert("Undefined!");
}
if (document.getElementById("name").value ==="undefined") {// 直したよ!これで検出できるね!
window.alert("Undefined!!!");
}
}
validateHogeText();// 確かに上記の呼び出しミスは検出できるのだが、nameに「undefined」と入れても検出されてしまう。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
> 名前の途中にアポストロフィ
ハワイ語のオキナ [wikipedia.org]ですね。
ASCIIでアポストロフィがあてられてしまうのは致し方ないとして…
#自分が在職中の社名もeTaxで入力しきれない長さです。登記上の正式な名前なのにね :p
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
マヘル-シャラル-ハシ-バズを思い出した。
正にトラブルを狙って付けられた名前だっけ。
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
テバジョジセルジャールザートケルエンムケドレースベニュタールシャシャーグ [astamuse.com]かもしれません。
ヒトゴトじゃない… (スコア:4, 興味深い)
エラーが出ないように見えても、あとで確認すると数値文字参照になってしまったりする。
似ている JIS第1水準の別の字を代用として使うことで対処していることが殆どですが、例えばみずほ銀行では、口座名が手書きで、三菱東京UFJ銀行ではカタカナになっています。
# 未だに Shift_JIS を使っているということなのかな…いい加減 UTF-8 に切り替えて欲しい
Re:ヒトゴトじゃない… (スコア:2)
私の姓には、髙(いわゆる「はしご高」が入っているのですが、この手の文字の中ではメジャーなおかげか、20年以上前に作った銀行口座なんかでもちゃんと登録できてます。
当時はネット上に流れるデータとしてはまったく使えませんでしたが、最近はUnicodeベースのシステムが増えたおかげか、通常のWeb系でも問題ない場合も多いですね。
で、問題ない場合が多い、ってことでかなり油断してたんですが、お歳暮・お中元のネット通販サービスで、注文管理上はまったく問題ないのに、届けられた商品に貼られた送り状は文字化けしてた [it.srad.jp]なんてことがありました。
それにこりて、今はもう冒険はせず、インターネット上に流れるデータとしてはISO-2022-JPでも使える第1水準な「くち高」を使うようにしています。
Re:ヒトゴトじゃない… (スコア:1)
「まだれ」に「黄」が使えない。
ことえりで「ひろ」と打っても広しか出ないし、Unicodeでも廣しかないし…
the.ACount
Re:ヒトゴトじゃない… (スコア:1)
ですので、基幹で顧客情報を見ると文字化けしている事が稀にありますね(カナからこれやろ、って漢字に書き直してます)。
まぁウチのPOSレジ(XP Embededded/Embedded POSReady 2009)も基幹システム同様にWindowsで、そういう設計になっているから仕方ないっていう。
#結構、そんな企業は多そうだ。
Re: (スコア:0)
最近減りましたが、バックエンドがSolaris(Linux)+OracleでEUCなんてのもごろごろと
Re: (スコア:0)
EBCDIC(IBM漢字コード)かもしれませんよ(^^;
あと単独ではUTF-8対応しててもバックエンドの連携フォーマットが第二水準までってのはよくありますし。
Re: (スコア:0)
同じく、JIS X 0213非漢字が含まれている苗字なので、システムによっては数値参照になってズコーなAC
苗字がNullの社員 (スコア:2, 興味深い)
苗字がNullの社員がうちのとこの社員管理用のシステムをぶっこわしたんだがどうすればいい? [blogspot.jp]
Re:苗字がNullの社員 (スコア:1)
NFAさんですね。
昭仁NFA(a.k.a. 今上天皇)
思い出した (スコア:1)
私の友人で (地域名) + "太郎" という名前で、
出身も現住所もその地域の人がいます。
役所などで書類を提出する際、記入例があると自分の名前そのものになっていることがあり、
そのまま記入しても「そこはご自身のお名前をご記入ください」
「いやいや、これが俺の名前だよ!」って押し問答が始まる、
という可哀想な人だったりします。
姓と名を別フォームに入力しないと受け付けない (スコア:1)
というシステムは結構ある。名しかないミャンマーとかインドネシアの人が地味に困る。
まあこの手のは名前以外にもいろいろあって、番地がない住所は受け付けないとか、向こうが持っている郵便番号DBに載っていない郵便番号は不可で、しかも空欄を許さないとか……
小学校の頃 (スコア:0)
御堂垣内くんのフルネームが模試のふりがなの項目(1マス1文字、濁点別マス)に入りきらなかったということがあったくらいかな....
Re:小学校の頃 (スコア:2)
東大宮くん・・・
『 』 (ノーゲーム・ノーライフより) (スコア:0)
名前を入力できないとは酷いシステムだ。
Re:『 』 (ノーゲーム・ノーライフより) (スコア:3, 興味深い)
小野和俊のブログ:ブラウザ三国志17鯖 - プログラマー同盟の軌跡その2 (皇位継承編)
http://blog.livedoor.jp/lalha/archives/50297652.html [livedoor.jp]
>この中心にいたのが、「空白の男、blank」である。
>彼は君主名を登録する際、システムの穴をつき、君主名をすべて制御文字にしたのだ。
>ブラウザによっては彼の名前は空白に表示され、「プログラマー同盟に名前が空白の奴がいる」「攻撃を受けた出兵元君主を調べようとしたが、クリックできない」「プログラマー同盟員も書簡を送れなくて困っているらしい」、17鯖を様々な噂が駆け巡った。
>後に彼は外交官につくことになるのだが、「外交官なのに名前がクリックできない」「外交官にどうしても書簡を送ることができない」などと、鯖を盛り上げた君主の一人である。
Re:Nullでバグるのは酷いが (スコア:1)
[A-Za-z]以外はどの文字がサポートされるかなんてシステム次第だろう。
なんでそんな中途半端なの?
そこまで極論を言うなら、
- [A-Z]以外はどの文字がサポートされるかなんてシステム次第、とか、
- [A-Za-z]も含めてどの文字がサポートされるかなんてシステム次第
とも言えるだろ?
Re:Nullでバグるのは酷いが (スコア:1)
英語の基本的なアルファベットがサポートされないってのは違和感がある。
まあ、違和感は確かにあるね。
逆に例えば、日本人を対象にしているサービスで、姓名に[A-Za-z]しか認めないのも違和感あるだろ?
もう21世紀だぜ、って話になっちゃうよね。
結局、システムの要件に従って定義すればいいだけ。
[A-Za-z]はNGだけど、[A-Za-z]はOKとしても、それはそれで構わない。
「システム次第」としか言いようがない。
ただしこういうシステムは存在する (スコア:2, おもしろおかしい)
住所は番地、室番号も全角で入力してください
Re:ただしこういうシステムは存在する (スコア:2)
数字は算用数字で入力しろと言われて八戸市とがはじかれるというネタを聞いたことある
Re:ただしこういうシステムは存在する (スコア:2)
3重県4日市市か。
Re:ただしこういうシステムは存在する (スコア:2)
漢数字で入力しています。(e.g. 一丁目二番三号ホゲホゲマンション一二三四号室)
HIRATA Yasuyuki
Re:ただしこういうシステムは存在する (スコア:2)
参考: 電話番号 (全角) [twitter.com]
HIRATA Yasuyuki
Re:Nullでバグるのは酷いが (スコア:1)
逆に例えば、日本人を対象にしているサービスで、姓名に[A-Za-z]しか認めないのも違和感あるだろ?
日本人を対象にしているのにユーザーIDに英数字といくつかの記号しか認めないスラドというサービスがあるんですが、あなたはそれに違和感があると主張するのですか?
対象を「姓名」と限定しているのに、突然「ユーザーID」を持ち出すことに、強い違和感を感じます。
# その程度じゃ、議論は発散しませんよ。まだまだです(笑)。
Re:Nullでバグるのは酷いが (スコア:1)
でもそれはあなたの個人的感覚です。
そうですね。
だから、「「システム次第」としか言いようがない [srad.jp]」と書いてますね。
やっと議論の最初期段階まで追いつきましたね。
さ、そこまで解ったところで、何か新しい議論はありますか?
私から提案ですが、人の意見をロクに読まない匿名の臆病者の粗忽さについて、あたりでどうですか?
Re:Nullでバグるのは酷いが (スコア:1)
「違和感ないだろ?」が不適切な発言だということには異論がないということですね。
いいえ。
違和感が個人的なものである言う、当然のことに気づいていなかった匿名の臆病者がいた、というだけのことです。
その「システム次第」って、「ユーザーIDは別」という中途半端なものだったとあなたが認めたわけですが。
いいえ。
ユーザIDといえど、システム次第に違いありません。
例えば、ユーザIDにUNICODE文字がすべて使えても、英数字しか使えなくても、それはシステム次第、としか言いようがないです。
それに対して、違和感を感じるか否かは、各個人の自由です。
あなたの「違和感ないだろ?」が、あなた自身の議論の最初期段階を否定していただけの話です。
「違和感ないだろ?」なんて、あなた以外、誰も書いていませんが、何の話でしょう?
Re:Nullでバグるのは酷いが (スコア:1)
気づいていなかったのは、「違和感あるだろ?」と言ってしまったあなたですね。
いいえ。
最初から個人的なものとして扱ってます。
そう見えなかったのは、粗忽な臆病者の勘違いのせいです。
単に「違和感がある」で止めなければいけないわけです。
いいえ。
べつにそれに対する回答が「違和感は無い」でも、私の論旨に影響はありません。
なぜなら、違和感は個人的なもので、当然違いは出るとして論旨を組み立てているからです。
そう言うしかないでしょうね。つまり、ユーザーIDを持ち出した発言は「議論の最初期段階」を踏まえたもので、それを持ち出すことに「強い違和感」を表明したあなたは「議論の最初期段階」を忘れていたわけです。
「つまり」前後がつながっていないため、まったく意味不明ですね。
勘違いを正当化したい粗忽な臆病者が騒いでいる様には見えますが。
つまり、ユーザーIDを持ち出した発言は「議論の最初期段階」を踏まえたもので、それを持ち出すことに「強い違和感」を表明したあなたは「議論の最初期段階」を忘れていたわけです。
違和感は個人的なものなので、誰がどういう違和感を表明しようと問題ありません。
粗忽な臆病者は、問題があると思ってるんですか?
違和感は個人的なものなのに?
意味不明ですね。
というわけで、スラドのユーザーIDでもそうなっているように、英字が特別扱いされているのは事実であって、個人的な感覚ではありません。
そうですね。
だから、システム次第 [srad.jp]としか言いようがない、と最初から言っています。
で、一体、粗忽な臆病者は何が不満なんですか?
Re:Nullでバグるのは酷いが (スコア:1)
Nullがダメなのと同列に語られるのに違和感があるだけでしょ
私も違和感はあると思います。
「だけ」とは思いませんが。
Re:単に入力で弾かれてるだけじゃん (スコア:2)
その解釈の場合、もとから壊れているシステムであって、名前によって壊されたのとは違うような。