タグ

sqlとsecurityに関するSeacolorのブックマーク (5)

  • そろそろSQLインジェクションについてひとこと言っておくか。 - だらだらやるよ。

    ちょっとSQL Injectionについて未だに情報が少ないのにいらついていたので。 というか対策ばっかりで何ができますよーってのはほとんどログインできますよーくらいじゃねえか。 具体的な攻撃方法もわからずにぼんやり対策してるだけの人多いような気がするのでちょっと攻撃方法書いとく。 SQLインジェクションってなに? アプリのユーザ入力領域からSQL文を注入されてしまうこと。 サーバでこういうコード書いてると、user_nameに「' or '1'='1';#」とか書かれて素敵なことになる。(mysqlの場合) String sql = "SELECT * FROM users WHERE = name = '"+user_name+"' AND password='"+user_password+"'"; 簡単に言うと、開発者の意図しないSQLをユーザの入力によって行う攻撃手法ですね。 S

    そろそろSQLインジェクションについてひとこと言っておくか。 - だらだらやるよ。
  • 続:SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog

    前回のエントリSQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem(徳丸浩)の日記に対応して、mi1kmanさんのブクマ経由で、訂正が出ていることを知った。 訂正内容 1ページ目を下記のように変更いたしました(2個所)。 バインド値はエスケープ処理した後にプレースホルダにはめ込むので、悪意あるSQL文が挿入されても、その実行を阻止することができる(図1-2)。 ↓ SQL文のひな型とバインド値は個別にデータベースに送られ、構文解析されるので、バインド値に悪意あるSQL文が挿入されても、その実行を阻止することができる(図1-2)。 http://www.impressit.co.jp/inside/?p=791 なんとなく私のエントリの断片が散りばめられているのを別にしても、『悪意あるSQL文…の実行を阻止することができる』というあたりに、サニタイズ的発想が依

    続:SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog
  • 徳丸浩の日記 - そろそろSQLエスケープに関して一言いっとくか - SQLのエスケープ再考

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2007年11月26日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 稿ではSQLインジェクション対策として、SQLのエスケープ処理の方法について検討する。 最近SQLインジェクション攻撃が猛威を振るっていることもあり、SQLインジェクションに対する解説記事が増えてきたようだが、対策方法については十分に書かれていないように感じる。非常に稀なケースの対応が不十分だと言っているのではない。ごく基的なことが十分書かれていないと思うのだ。 SQLインジェクション対策には二通りある。バインド機構を使うものと、SQLのエスケープによるものだ。このうち、SQLのエスケープについて、十分

  • エスケープだけしてれば、セキュリティ対策が万全になる訳ではないですよ - masaのメモ置き場

    題 「サニタイズ言うなキャンペーン」私の解釈 読みました。分かりやすくとてもよい記事だと思いますが、ホワイトリスト型のアプローチが補助的な対策であるとも読み取れてしまうこともありそうなため、エスケープだけしておけば大丈夫という誤った認識を持ってしまう開発者さんが増えてしまいそうなのが心配です。ということで、いちお書いておきます。 SQLの特殊文字をエスケープすることで対策可能なセキュリティの問題は、特殊文字が混在することにより構文が破壊されるといった限定された状況だけです。 例としては、SQLインジェクションの解説でよく取り上げられる select password from usertable where id = '入力値' 入力値に ' or '1' = '1 が与えられると・・・といった攻撃は防ぐことは出来ますが、 select password from usertable w

    エスケープだけしてれば、セキュリティ対策が万全になる訳ではないですよ - masaのメモ置き場
  • SQLインジェクション【SQL Injection】

    SQLインジェクション(SQLの挿入)は,Webアプリケーションへの攻撃手法の一つです。Webサーバーに対して特殊なデータを送ることで,アプリケーション開発者が想定していないSQL文を実行させます。この攻撃に対する対策を怠ると,データベース内の情報を不正に取得されたり,削除されたりする危険性があります。 SQLインジェクションに対するぜい弱性は,クライアントから受け取ったデータをもとにしてデータベースへのアクセスを実行するSQL文を組み立てる個所で発生します。例えばアプリケーションのプログラム中に,SQL文で操作対象のレコードを絞り込むWHERE句を組み立てる“WHERE userid='$uid'”のようなコードが書かれているとします。プログラマは,変数$uidにはクライアントから受け取ったユーザーIDを格納することを想定しています。 ところが,悪意のあるユーザーが“' OR 1=1--

    SQLインジェクション【SQL Injection】
  • 1