アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
ごめん (スコア:1)
もっと解りやすく説明できる猛者はいますか?
クッキーを保存させるサイトを訪問した時に保存されたクッキーの内容を改竄して
サーバにSQLを送りつけることができるってことですか?
その時に%を紛れ込ませることで
$res = str_replace("select","ERR",$res); みたいな小細工をすりぬけされて
se%le%ct ac,pw fro%m tblpwd; とかをサーバに実行させるって話なの?
アホすぎてごめん
Re: (スコア:0)
・コード上は、今までのSQLインジェクションと同じ。
・ただし、言語によっては、POSTのパラメータやGETのパラメータを表す変数が、(利便の為か)REQUESTとしてまとめられているのだが、そのREQUESTの内容は、えてして、COOKIEも混じっている、という話。
(COOKIEまで混じっているのは、REQUESTの意味合いが、外部からのパラメータ、という意味だからかな?)
POST: name=hogehoge, value=fugafuga
COOKIE: name=root, value=password
という風になっていた場合、hogehoge fugafuga が、root passwordに置き換えられてしまう、という事。
# と、理解したんだが、間違ってたら修正プリーズ
%の話は、また別の話ね。
Re: (スコア:0)
言語によってはcookieもget/postパラメータと同様と見なされるから、もしかしたらやばいんじゃないの?
って意味でしょ。
cookieで送られれば、必ずSQLインジェクションが成功しちゃうってわけでもない。
どこから出たパラメータかによらず、パラメータはパラメータとしてちゃんと処理してやればいいわけで。
Re:ごめん (スコア:0)
>言語によってはcookieもget/postパラメータと同様と見なされるから、もしかしたらやばいんじゃないの?
get/postとcookieとを区別しないなら、
get/postのチェックをすれば、必然的にcookieもチェックしてしまうのではないでしょうか。
ファイアウォールとかプログラム以外のチェックだけにまかせているなら、
cookie が同列に扱われないのは分かるけれど、それはそれで問題だと思います。
あとget より post や cookie で Webサーバーのログに残りづらいのはあると思います。
# すぐ設定でOFFにしちゃうのであまり覚えていませんが、
# PHPのmagic_gpcも「gpc」だからCookieも対象ですよね。
自分の場合、
意図せずcookieに値が書き込まれる状況なら、
意図せずPOSTやGETもされてしまうと思いますし、
POSTのみGETのみに制限するのは自分にとって不便なこともあるので、
本当にセキュリティ上危なそうな場合でなければ、
PHPでは$_REQUESTを積極的に使います、楽なので。
POSTとGETとだけを使いCOOKIEは捨てる様に組むことも、もちろんあります。
COOKIEがPOSTより優先されるのが使いづらいので、
順序を変えて自前で$_REQUESTの代わりを作ることもあります。
Re: (スコア:0)
まさに今回はそれを問題にしてるんでしょう。
なので、方々で言われてるとおり、アプリ内でちゃんとチェックしてれば関係のない話。