「NULL」というカスタムナンバープレートを取得したところ、大量の駐車違反切符を受け取る結果に 65
違反 部門より
米国・カリフォルニア州でセキュリティリサーチャーが「NULL」という4文字のみが書かれたカスタムナンバープレートを取得したところ、大量の駐車違反切符を受け取る結果となったそうだ(Mashableの記事)。
「droogie」というハンドルで活動するこのセキュリティリサーチャーは、DEF CON 27でその顛末を発表した。droogie氏はナンバープレート読み取り装置を混乱させることができたら面白いと思って「NULL」を選んだという。安全運転を心がけるdroogie氏はナンバープレート取得後1年間、違反切符を一切受け取ることなく過ごしていた。しかし、登録をオンラインで更新しようとしたところ、情報が正しく入力されていないとして更新を拒否される。その後駐車違反をして違反切符を1通受け取ると、以降は無関係な駐車違反切符が多数郵送されてくることになる。
Hacker Newsでは2016年、「NULL」というカスタムナンバープレートが違反切符発行用のハンドヘルドデバイスをクラッシュさせ、駐車違反切符を逃れたという話が投稿されていたが、今回は逆に正しくナンバープレートが入力されていない違反切符が「NULL」として扱われたようだ。droogie氏がカリフォルニア州交通局(DMV)とロサンゼルス市警(LAPD)に連絡して事情を説明すると反則金12,000ドル分は取り消されたものの、ナンバープレートを変更するよう求められるのみで、システム自体は修正されていないという。その結果、現在も6,000ドル以上の未払反則金が残されているとのこと。
なお、首都ワシントンでは2012年に「NO-TAGS」というカスタムナンバープレートを取得した男性が無関係な違反切符を多数受け取るという問題が発生している。こちらは実際にナンバープレートに書かれていない限り「NO TAGS」と書かないよう違反切符発行担当者に指示することで対応したそうだ。
関連ストーリー (スコア:5, すばらしい洞察)
支持政党なし [srad.jp]を思い出した。
Re: (スコア:0)
「日本」だけ書いてあったら「日本共産党」扱いって話もありましたねw
すげえアホらしい
Re: (スコア:0)
「日本人」って書いて出したら、立候補者全員に小数点以下の票数入るのだろうか。
関連リンクの表示がダブってる…? (スコア:2)
関連リンクが2つ繰り返されているようなんですが
もしかしてスラドのシステムがNULLで破壊されちゃってます…??
Re: 関連リンクの表示がダブってる…? (スコア:4, 参考になる)
2週間ほど前から新システムの編集機能を試しているのですが、関連ストーリーの重複チェック機能が未実装だったようです。関連ストーリーのプレビュー表示も未実装のため、編集時には確認できませんでした。現行システムで再編集すれば重複を簡単に消すことができますが、報告用の例としてとりあえずそのままにしてあります。
Re:関連リンクの表示がダブってる…? (スコア:1)
https://ja.osdn.net/projects/slashdotjp/ticket/39468 [osdn.net]
作っといた
SQLとかいけるなら (スコア:2)
dorop tableあたりの文字にしたらとんでもないことになるかもしれん
Re:SQLとかいけるなら (スコア:2, おもしろおかしい)
dorop table なら問題なさそうな気がする。
Re:SQLとかいけるなら (スコア:1)
おいおい、これはおもしろおかしいじゃなく素晴らしい洞察だろうw
がっ (スコア:1)
T/O
#
Re:がっ (スコア:2, すばらしい洞察)
これはぬるぽじゃなくてNULL VALUEだよ
Re: (スコア:0)
自称”詳しい人”が多いスラドでも
null pointer や null reference と
NULL value の違いが正しく説明できる人は少ないんじゃないかな?
Re: (スコア:0)
正しくガッする機会を見逃さない人が少ないように?
Re: (スコア:0)
ポインターでもリファレンスでもないものにnullを代入できる処理系なんて存在するの?
Re: (スコア:0)
視野狭すぎだろ。
しかも代入はどこから出てきたんだ?
Re: (スコア:0)
C# とかの nullable はポインタでもリファレンスでもないですけど null を代入できますよ.
Re: (スコア:0)
成恵の世界を見て思った。ぬるぽじゃなくて、なるぽじゃないのか?って
Re: (スコア:0)
アレは「非Aの世界」だから
https://bookmeter.com/books/105595 [bookmeter.com]
Re:がっ (スコア:1)
がっ、Wikipediaによると、ドイツ人でさえ、ゼロの意味の「ヌル」と区別するため「ナル」と発音するらしいのだ。もちろん英語は「ナル」なのだ。
Re: (スコア:0)
ナルほど
GOTOとかSAVEにしたら (スコア:1)
どこの行へ飛んでいくのだろう
Re:GOTOとかSAVEにしたら (スコア:1)
銀河のむこうの誰かへ [youtube.com]
ψアレゲな事を真面目にやることこそアレゲだと思う。
Re: (スコア:0)
やっぱ飛ばされる先は特車二課?後藤さんだけに。
#「ソースコードに俺の名前を勝手に書いた奴は誰だあ!」彼の名前は何でしょう。
#最近は使えないなぞなぞになったなあ。
Re: (スコア:0)
#最近は使えないなぞなぞになったなあ。
sudo -> 須藤さん
とかかな・・・
#シェルスクリプトはソースコードに入りますか?
記号類も使えたりするのか (スコア:1)
'OR1=1-- とか登録できたらもっと大変なことに?
Re:記号類も使えたりするのか (スコア:1)
兵庫県警か神奈川県警が来るのでは
Re: (スコア:0)
rm -rf /
とか?
Re:記号類も使えたりするのか (スコア:1)
drop database *かも?
Re: (スコア:0)
while(true);
とか
Oracle が悪い (スコア:1)
OK?
[Q][W][E][R][T][Y]
Re: (スコア:0)
ホッケーマスクのあいつのせいだろ。
Re: (スコア:0)
https://docs.oracle.com/cd/E96517_01/sqlrf/Nulls.html#GUID-B0BA4751-9D... [oracle.com]
注意書きがあるように、Oracleも将来いつかどうにかしなきゃなあとは思ってるんだな
そろそろどうにかしてくれてもいいんじゃね・・・
SQLインジェクション (スコア:0)
SQLインジェクションやコマンドインジェクションをはじめとするインジェクション系攻撃を狙ったナンバーをつけると、
監視システムで任意のSQLコマンドやシェルコマンドを実行することができるのでは?
あとは、2^32を超える数字のナンバーにするとか
みんな大好きxkcd (スコア:0)
https://xkcd.com/327/ [xkcd.com]
変更してあげりゃいいのさ (スコア:0)
null
Null
\u0000
U+0000
好きなのどうぞ
Re: (スコア:0)
nil
undefined
None
は言語依存か
一体どんなコードを書けば文字列NULLが不具合を起こすコードになるのか (スコア:0)
誰か教えてちょうだい
Re:一体どんなコードを書けば文字列NULLが不具合を起こすコードになるのか (スコア:3)
値のNULLと文字列の"NULL"を適当に変換すれば。
さらに、環境によっては、暗黙にそう変換されることも。
Re: (スコア:0)
値のNULLと文字列の"NULL"の混同が原因なのはほぼ間違いないだろうが、
#3668224の言うように、それだけでは説明できない。
もし値のNULLが文字列の"NULL"に変換されるなら、ナンバープレートを登録した時点から請求が来るはず。
逆に文字列の"NULL"が値のNULLに変換されても、SQLならNULLに関する演算は不定なので、値が返されることはない。
そうでなくとも値のNULLはクエリ中で再び文字列の"NULL"に変換されるだろうから、最初の疑問にまた戻る。
つまり何らかの非対称性が必要。
# 実は最初から請求は発生していたけど、駐車違反するまで正規の連絡先が分からなかったとか。
# あるいはもっと単純に、駐車違反の頃にたまたまシステムが変わったとか。
Re:一体どんなコードを書けば文字列NULLが不具合を起こすコードになるのか (スコア:2)
元コメは、そこまでの追求を求めてないやろ。
ちなみに、「非対称性」なんか、値NULLは文字列にするが、文字列"NULL"はそのまま、となってるだけで成立するで。
いいかげんにSQLを使えばありがち。
Re: (スコア:0)
交通違反は何度も起こりうるから、キーが文字列のエントリを探して罰金を加算するルーチンと、文字列からキーを作るルーチンが別なだけでしょ。要するにエントリを作る処理はnullチェックしてるけど、エントリを探す処理はnullでも通ってしまうのだと思う。
Re: (スコア:0)
別な「だけ」というか、2段階あるというのは#3668224の言っていることと本質的に同じでは?
その上でnullチェックが不十分だとどうして不具合を起こすかという話まで来たんだと思うが。
Re: (スコア:0)
Javaでやってみた.。
public class nullstring {
public static void main(String[] args) throws Exception{
Integer a = null;
String s = String.valueOf(a);
s = s.toUpperCase();
System.out.println(s);
}
}
$ java nullstring
N
Re: (スコア:0)
php使ってるショボいWebアプリなら、その手の話は日常だと思う。
注意してないと、わりと簡単にはまる。
注意してればだいたい大丈夫なんだが、そのぶん煩雑で疲れる。
Re: (スコア:0)
駐車違反をする前までは問題なかったのだから、事前に違反テーブルに該当するナンバーが含まれていることが担保されていたんだと思う。
例えば請求が月例かなんかのバッチ処理で、複数の違反をしていたらまとめて請求するので、まず、違反ナンバーのリストを抽出してから、ナンバー毎にクエリをかけるとか。
で、そしてそれが十分なチェック(ナンバーが無効なら含まれているはずはない、含まれているなら有効)だと勘違いして、その後の処理をはしょったとか?
でも'NULL'とNULLは違うからなぁ。
素でクエリを生成していたら間違いようがないので、なんかフレームワーク介していたのかなぁ。
Re: (スコア:0)
テーブル間の外部キー結合制約によってはナンバープレートがNOT NULL制約になってる可能性もありますし、
登録する時はまだ不明だけどブランクにできないってときに'NULL'を埋めるようになってるとかあるかも。
Re: (スコア:0)
NaNは大丈夫だろうか
Re: (スコア:0)
ナンと答えればいいだろうか・・・
えーと (スコア:0)
ぬるぽ
Re: (スコア:0)