アカウント名:
パスワード:
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。マジで居るんだなあ。
補足してくださりありがとうございます。お分かりの通り、自分が心配したのはもっともっと初級のミスの方です。パラメタライズドSQLなど、サーバ側、もしくはライブラリ等が型に合わせて自動的にエスケープ処理をしてくれるなら大丈夫でしょう。入力としても文字列としてのNullというものなら、それは文字列として解釈してくれるだろうと思います。いくらなんでも。だよね。きっと。
>パラメタライズドSQLその言葉も#2988855の道をたどるよ。♯DellのIT部門吸収したとこでの実話
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
SQLインジェクションアタックの対象になりかねない (スコア:5, 参考になる)
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
Re: (スコア:1)
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、
SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、
Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。
マジで居るんだなあ。
Re:SQLインジェクションアタックの対象になりかねない (スコア:1)
補足してくださりありがとうございます。
お分かりの通り、自分が心配したのはもっともっと初級のミスの方です。
パラメタライズドSQLなど、サーバ側、もしくはライブラリ等が型に合わせて自動的にエスケープ処理をしてくれるなら大丈夫でしょう。入力としても文字列としてのNullというものなら、それは文字列として解釈してくれるだろうと思います。いくらなんでも。だよね。きっと。
Re: (スコア:0)
>パラメタライズドSQL
その言葉も#2988855の道をたどるよ。
♯DellのIT部門吸収したとこでの実話