アカウント名:
パスワード:
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。マジで居るんだなあ。
他にどういう名前がまずいの?未定義さんとかいたら問題起こる?
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」と入れても検出されてしまう。
あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
> あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
自分以外はもう一人しか書き込みしていないと思わないほうがいいです。ありえないから聞いているんでしょう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
SQLインジェクションアタックの対象になりかねない (スコア:5, 参考になる)
null で空文字列を意味するというのは、そのまんま加工せずにパラメータとして入れ込んでしまっているのではないか? こっちはインジェクション・アタックとか大丈夫なんかいな?
長すぎる方をよく見てみると、名前の途中にアポストロフィが入ってるし。ど初級のSQLインジェクションアタックで最初に試みるのがアポストロフィとか \ エスケープとかだから、たぶん対処はされているんだと信じるが…
物理学の'tHooft先生も、ご自身の名を冠された小惑星について、アポストロフィを削られているから、この小惑星上ではアポストロフィを禁止する、と怒っておられたなあ。
#ハイフン記号とかも名前として入力できないシステムもある。
Re: (スコア:1)
インジェクションアタック自体は、入力文字をそのままSQLにぶっこむことが問題なので、
SQLパラメータにすればシングルクオート付きの名前でも問題ない。Nullって名前でも。
で、入力がNullの時、文字列のNullを返すというインターフェイスで、「Null」ならデータ未入力だという判定ロジックの問題と思われるが、
Nullって名前の人がいるというテストはしなかったと言われると、否定出来ない。
マジで居るんだなあ。
Re: (スコア:0)
他にどういう名前がまずいの?
未定義さんとかいたら問題起こる?
Re: (スコア:0)
javascript処理系ならundefinedさんあたりは問題になりそう。
Re:SQLインジェクションアタックの対象になりかねない (スコア: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)
> あんたひたすら個別具体例を聞きたがってるようけど何ゆえ?
自分以外はもう一人しか書き込みしていないと思わないほうがいいです。
ありえないから聞いているんでしょう。