アカウント名:
パスワード:
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
>長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
むかしむかし、アイテーギョー界にウェブアプリなんぞ無かった時代のことじゃ。その頃キギョーは各々の城郭(シャナイネット)に閉じ篭り、インターネッツからの脅威など知らぬわりと平和な時代であった。
そんな時代のあるところに、入力項目に ' が入るとコケてしまうシステムがあったのじゃ。まあアカシックレコードの秘術(SQL)に触れた者にはご察しのよくある災厄(バグ)であった。
で、当時の神々(ジョーキュー=エスイー神)が持てる英知を振り絞られ、サイコーにエレガントな解決策をお考えになられた。
そう、' は禁止文字となったのじゃ。
下々の者たち(シ=タウケ=エスイー神とその配下のプ=ログラマ族)の中には、「いや、エスケープすればいいんじゃね?」と上級の神々に異を唱える者たちがいた。しかし、上級の神々が知らぬアカシックレコードの秘術を知る彼らは、上級の神々の逆鱗に触れことごとく炎上案件に放り込まれ焼き尽くされた。
残った下々の者たちは、ちまちまと入力画面に ' をチェックするコードを書き込むか、最高神(コキャク神)に「どうか ' は入力しないでください」と祈る巡礼の旅に出る事を強いられたのじゃ。
それとは別に、, の入力が禁止されたシステムもあったのじゃが(シー=エスブ=イーの魔物が暴れるそれはそれは恐ろしい伝説)、その話はまたの機会にな。
> それとは別に、, の入力が禁止されたシステムもあったのじゃが
「,」の入力を防止するために「ね」キーの使用をも禁止し、それでは「ね」の入力が不可能になると訴えた日本語かな入力宗派を弾圧し、ローマ字入力への改宗が通告されたと云うシステムですね。ええ知っています。
表記方法によっては名前にアポストロフィが入ってしまう名前の方、日本人には結構多いですよね(けんいち Ken'ichi さん、とかの「ん」のあとにア行とかヤ行とか入る名前です)。
ローマ字で入力しろという指示だったので、アポストロフィー入りの名前を入力できないバグを報告してあげたら、日本人にアポストロフィー入りの名前は存在しない、不正使用の疑いがある、不正でないことを証明せよと某社サポートに責められたでござる#ローマ字つづりの内閣告示を教えてやったら逆ギレされた
外務省は、パスポートに表記するローマ字名にアポストロフィを入れない方針ですから、「日本人にアポストロフィー入りの名前は存在しない」という主張もありえます。
もっとも、アポストロフィなしでは、本当は日本人の名前を正しく表記できないのですが。たとえば、 Oharaという表記は「おはら」「おおはら」「おおあら」の3通りの可能性があります(「おお」はOでもOHでもいいことになっているので)。本来なら区別されるべきものが区別されないのはおかしいでしょう。
本当ならアポストロフィだけでなく、長音表記もŌやÔのようにできるべきなのです(そして、長音用のアクセント記号をマクロンにするかサーカムフレックスにするかでもめる)。
(「おお」はOでもOHでもいいことになっているので)。
パスポートは長音を表現しないです。おおはOです。
おおはら=OHARAおはら=OHARAおおあら=OARA
小原さんと大原さんはいっしょになるのか
「パスポート 長音」で検索して最初に出てきたところ。 氏名に「オウ」音等長音を含む方(パスポート) - 愛知県 [aichi.jp]
注意にちゃんと書いてあるけど、家族で統一しないと家族として判断されない可能性があります。
自分のパスポートは非ヘボン式表記にしました。英語圏の人間にとって読みやすいようにヘボン式に、という主張も理解できるのですが、自分としてはかな表記で区別できるもの(伸ばすか伸ばさないか)が区別できなくなるのがどうも気持ち悪い。
お茶の水博士とか困っちゃいますよね。
Ohara おはらOOhara おおはらOOara おおあら
でいいじゃないか~と言うと怒る人多いだろうな
コンマ、ハイフン、アポストロフィ、スラッシュは使用可能 [mofa.go.jp]らしいですね>パスポート下手したら人権救済申し立て事案になりかねないのに、無茶しよるなサポート…
ローマ字の場合アポストロフィの代わりにダッシュ–(-で代用?)を入れる表記もあったはずですが、内閣告示ではどうなってます?
>すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。
「'」は、アイルランド人の姓にめちゃめちゃよく出てくるので、人名を扱うシステムでつかえないのはあり得ないと思うが。オコネル、オニール、オブライアン……
オライリー
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。マジで居るんだなあ。
補足してくださりありがとうございます。お分かりの通り、自分が心配したのはもっともっと初級のミスの方です。パラメタライズドSQLなど、サーバ側、もしくはライブラリ等が型に合わせて自動的にエスケープ処理をしてくれるなら大丈夫でしょう。入力としても文字列としてのNullというものなら、それは文字列として解釈してくれるだろうと思います。いくらなんでも。だよね。きっと。
>パラメタライズドSQLその言葉も#2988855の道をたどるよ。♯DellのIT部門吸収したとこでの実話
他にどういう名前がまずいの?未定義さんとかいたら問題起こる?
とある会社のWebサイトで、外部と連携してる(顧客から申し込みがあると外部サイトにも情報を送信する)システムを作ってた頃。自システムの文字コードがUTF-8、連携先のシステムがEUC-jpで動いてたんだ。
で、名字がJISの第3水準だか第4水準だかの文字(1文字)の人が申し込みしたとき、変換インターフェースが空文字に置き換えた挙げ句、連携先のサーバーアプリが所謂「ぬるぽ」で落ちて騒ぎになったことはある。
そういや Mailman-jp は UTF-8 に公式対応したのかな。
javascript処理系ならundefinedさんあたりは問題になりそう。
どちらのjavascriptでどう組むと問題になりそうなんですか?
書いてみた。間違いに至る例を意図的にかつ再現しやすいよう書くのって難しいね。// 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」と入れても検出されてしまう。
あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
> あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
自分以外はもう一人しか書き込みしていないと思わないほうがいいです。ありえないから聞いているんでしょう。
文字列のNullで判定なんて普通なことなの?問題になるってことは普通にやってる事なのか。
プログラマが意図してやらなくても、フレームワークや中間のレイヤーが、勝手に'null'をヌルデータに変換したり、ヌルデータと'null'を同一視したりする場合があるのです。
>フレームワークや中間のレイヤーが、勝手に'null'をヌルデータに変換したり、>ヌルデータと'null'を同一視したりする場合があるのです。どちらのフレームワークがそういうことするんですか?
http://stackoverflow.com/questions/4456438/ [stackoverflow.com]の例では、
WSDL (SOAP).Flex 3.5ActionScript 3ColdFusion 8
の組み合わせだったそうです。
「フレームワーク」というのはオープンソースに限らず、開発メーカ謹製の業務パッケージ専用フレームワークというものも存在するのだよ。で、それを外部から来た補給部隊が使うと悲劇が起こる。(内包された爆弾があらわになる、と言うほうが適切かな)
(#2988860) に聞いているんで。
なんというか、こうやって具体的に細かく聞こうとする人って、どこかを攻撃しようとする意思でもあるか、自分が使っている物について調べようとも勉強しようともしない人なのかなぁと思わなくも無いな。
ちょっと普通には聞いたことがない。しかし「政府の納税関連Webサイトなど、ほかのサイトでも同じような問題に悩まされる」というから、何かの共有ライブラリにそうした問題があったのではと推測。
それらの全プログラマがポカだったとはいくらなんでも思えない。しかしテストが足りなかったとは言えるでしょ?
> で、入力がNullの時、文字列のNullを返すというインターフェイスで、> 「Null」ならデータ未入力だという判定ロジックの問題と思われるが、何言語だとこういうこと起きるんですか?
判定ロジックの問題なら言語関係ないだろ
> 名前の途中にアポストロフィ
ハワイ語のオキナ [wikipedia.org]ですね。ASCIIでアポストロフィがあてられてしまうのは致し方ないとして…
#自分が在職中の社名もeTaxで入力しきれない長さです。登記上の正式な名前なのにね :p
マヘル-シャラル-ハシ-バズを思い出した。正にトラブルを狙って付けられた名前だっけ。
あなたの幸せが私の幸せ(以下略)、MVNOサービス「ハピネスモバイル」を開始 [mobile.srad.jp]の会社かな?
テバジョジセルジャールザートケルエンムケドレースベニュタールシャシャーグ [astamuse.com]かもしれません。
#2988774のACです
> あなたの幸せが私の幸せ(以下略)> テバジョジセルジャールザートケルエンムケドレースベニュタールシャシャーグ
すげぇ、何語かわからん・・・(ある意味どちらも)私の場合は、米国本社の長ったらしい社名をそのままカタカナ表記するので、後者に近い長さです。略称が割と浸透してる感じ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
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: (スコア:0)
自分のパスポートは非ヘボン式表記にしました。
英語圏の人間にとって読みやすいようにヘボン式に、という主張も理解できるのですが、
自分としてはかな表記で区別できるもの(伸ばすか伸ばさないか)が区別できなくなるのがどうも気持ち悪い。
Re: (スコア:0)
お茶の水博士とか困っちゃいますよね。
Re: (スコア:0)
Ohara おはら
OOhara おおはら
OOara おおあら
でいいじゃないか~と言うと怒る人多いだろうな
Re:SQLインジェクションアタックの対象になりかねない (スコア:3, 参考になる)
コンマ、ハイフン、アポストロフィ、スラッシュは使用可能 [mofa.go.jp]らしいですね>パスポート
下手したら人権救済申し立て事案になりかねないのに、無茶しよるなサポート…
Re: (スコア:0)
ローマ字の場合アポストロフィの代わりにダッシュ–(-で代用?)を入れる表記もあったはずですが、内閣告示ではどうなってます?
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
>すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。
「'」は、アイルランド人の姓にめちゃめちゃよく出てくるので、人名を扱うシステムでつかえないのはあり得ないと思うが。
オコネル、オニール、オブライアン……
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
オライリー
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、
SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、
Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。
マジで居るんだなあ。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
補足してくださりありがとうございます。
お分かりの通り、自分が心配したのはもっともっと初級のミスの方です。
パラメタライズドSQLなど、サーバ側、もしくはライブラリ等が型に合わせて自動的にエスケープ処理をしてくれるなら大丈夫でしょう。入力としても文字列としてのNullというものなら、それは文字列として解釈してくれるだろうと思います。いくらなんでも。だよね。きっと。
Re: (スコア:0)
>パラメタライズドSQL
その言葉も#2988855の道をたどるよ。
♯DellのIT部門吸収したとこでの実話
Re: (スコア:0)
他にどういう名前がまずいの?
未定義さんとかいたら問題起こる?
Re:SQLインジェクションアタックの対象になりかねない (スコア:2, 興味深い)
とある会社のWebサイトで、外部と連携してる(顧客から申し込みがあると外部サイトにも情報を送信する)システムを作ってた頃。
自システムの文字コードがUTF-8、連携先のシステムがEUC-jpで動いてたんだ。
で、名字がJISの第3水準だか第4水準だかの文字(1文字)の人が申し込みしたとき、変換インターフェースが空文字に置き換えた挙げ句、連携先のサーバーアプリが所謂「ぬるぽ」で落ちて騒ぎになったことはある。
Re: (スコア:0)
そういや Mailman-jp は UTF-8 に公式対応したのかな。
Re: (スコア:0)
javascript処理系ならundefinedさんあたりは問題になりそう。
Re: (スコア:0)
javascript処理系ならundefinedさんあたりは問題になりそう。
どちらのjavascriptでどう組むと問題になりそうなんですか?
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: (スコア:0)
あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
Re: (スコア:0)
> あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
自分以外はもう一人しか書き込みしていないと思わないほうがいいです。
ありえないから聞いているんでしょう。
Re: (スコア:0)
文字列のNullで判定なんて普通なことなの?
問題になるってことは普通にやってる事なのか。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
プログラマが意図してやらなくても、フレームワークや中間のレイヤーが、勝手に'null'をヌルデータに変換したり、ヌルデータと'null'を同一視したりする場合があるのです。
Re: (スコア:0)
>フレームワークや中間のレイヤーが、勝手に'null'をヌルデータに変換したり、
>ヌルデータと'null'を同一視したりする場合があるのです。
どちらのフレームワークがそういうことするんですか?
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
http://stackoverflow.com/questions/4456438/ [stackoverflow.com]
の例では、
の組み合わせだったそうです。
Re: (スコア:0)
「フレームワーク」というのはオープンソースに限らず、
開発メーカ謹製の業務パッケージ専用フレームワークというものも存在するのだよ。
で、それを外部から来た補給部隊が使うと悲劇が起こる。
(内包された爆弾があらわになる、と言うほうが適切かな)
Re: (スコア:0)
(#2988860) に聞いているんで。
Re: (スコア:0)
なんというか、こうやって具体的に細かく聞こうとする人って、
どこかを攻撃しようとする意思でもあるか、
自分が使っている物について調べようとも勉強しようともしない人なのかなぁと思わなくも無いな。
Re: (スコア:0)
ちょっと普通には聞いたことがない。
しかし「政府の納税関連Webサイトなど、ほかのサイトでも同じような問題に悩まされる」というから、何かの共有ライブラリにそうした問題があったのではと推測。
それらの全プログラマがポカだったとはいくらなんでも思えない。
しかしテストが足りなかったとは言えるでしょ?
Re: (スコア:0)
> で、入力がNullの時、文字列のNullを返すというインターフェイスで、
> 「Null」ならデータ未入力だという判定ロジックの問題と思われるが、
何言語だとこういうこと起きるんですか?
Re: (スコア:0)
判定ロジックの問題なら言語関係ないだろ
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
> 名前の途中にアポストロフィ
ハワイ語のオキナ [wikipedia.org]ですね。
ASCIIでアポストロフィがあてられてしまうのは致し方ないとして…
#自分が在職中の社名もeTaxで入力しきれない長さです。登記上の正式な名前なのにね :p
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
マヘル-シャラル-ハシ-バズを思い出した。
正にトラブルを狙って付けられた名前だっけ。
Re: (スコア:0)
あなたの幸せが私の幸せ(以下略)、MVNOサービス「ハピネスモバイル」を開始 [mobile.srad.jp]の会社かな?
Re:SQLインジェクションアタックの対象になりかねない (スコア:2)
テバジョジセルジャールザートケルエンムケドレースベニュタールシャシャーグ [astamuse.com]かもしれません。
Re: (スコア:0)
#2988774のACです
> あなたの幸せが私の幸せ(以下略)
> テバジョジセルジャールザートケルエンムケドレースベニュタールシャシャーグ
すげぇ、何語かわからん・・・(ある意味どちらも)
私の場合は、米国本社の長ったらしい社名をそのままカタカナ表記するので、後者に近い長さです。
略称が割と浸透してる感じ。