SQLインジェクションを・・・駆逐してやる!! この世から・・・一匹残らず!! (PHPカンファレンス2015) Read less
![【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方](https://cdn-ak-scissors.b.st-hatena.com/image/square/53d454f039cc7a998e2a5ae86b8fb93ddcd17031/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fbuildingdynamicsqlsafely-151007010937-lva1-app6892-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
この投稿はPHP Advent Calendar 2013の13日目の記事です。昨日は@tanakahisateruのPHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪いでした。 現在twitterのタイムラインで、史上空前のSQLのエスケープブームが起こっています。 オレオレSQLセキュリティ教育は論理的に破綻している | yohgaki's blog 「プリペアードクエリが基本だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 - Togetterまとめ エスケープとプレースホルダをめぐる議論 - Togetterまとめ SQLインジェクション対策としてのプリペアドステートメントとエスケープについての議論 - Togetterまとめ IPAの「安全なSQLの呼び出し方」が安全になっていた | yohgak
ゴルフダイジェスト・オンライン(GDO)への不正アクセスは,同社データベースへのSQLインジェクション攻撃であることがわかった。 GDOでは,同社Webサイトを構成するデータベースの一部が不正アクセスを受けたとして,2008年10月2日からWebサービスを全面的に停止していた(関連記事)。攻撃の具体的な手順は明らかにしていなかったが,「今までにない新しい手法のSQLインジェクションだった」(同社広報)という。なお,最近セキュリティ・ベンダーからCookieを悪用した新手のSQLインジェクションについて警告が出ている(関連記事)が,この件との因果関係については「コメントできない」(同社広報)としている。 この攻撃の影響で,GDOの配信メールの一部に不正なURLが埋め込まれ,URLをクリックしたユーザーはマルウエアに感染する危険性が生じた。「URLを埋め込まれた可能性のあるメールは,2008年
前回はSQLインジェクション攻撃について解説しました。冒頭にSQLインジェクション対策に関するクイズを5問出しました。 SQLインジェクションはエスケープ処理を確実にしていれば大丈夫? プリペアードクエリを利用していれば大丈夫? SQLインジェクションはデータベース構造を知らないと攻撃が難しい? SQLインジェクションはWebアプリケーションファイアーウォールで防御できる? 文字エンコーディングベースのSQLインジェクションは文字エンコーディングが正しければ行えない? SQLインジェクションクイズの答え 前回の記事で出題したSQLインジェクションクイズの答え編です。前回の記事の解説には答えとなる解説を行っています。もし、答えと解説に疑問を持たれた方は前回の記事をご覧ください。
■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲
いろいろな本からメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),
Examples; (MS) means : MySQL and SQL Server etc. (M*S) means : Only in some versions of MySQL or special conditions see related note and SQL Server Table Of Contents About SQL Injection Cheat Sheet Syntax Reference, Sample Attacks and Dirty SQL Injection Tricks Line Comments SQL Injection Attack Samples Inline Comments Classical Inline Comment SQL Injection Attack Samples MySQL Vers
【関連記事】 本内容についてのアップデート記事を公開しています。あわせてご確認ください(編集部) Security&Trustウォッチ(60) 今夜こそわかる安全なSQLの呼び出し方 ~ 高木浩光氏に聞いてみた http://www.atmarkit.co.jp/fsecurity/column/ueno/60.html Webアプリケーションに対する攻撃手法の1つであるSQLインジェクションの存在は、かなり広く知られるようになった。しかし、その対策はまだ本当に理解されていないように思える。フォームから渡された値の特殊文字をエスケープしたり、PHPのmagic_quotes_gpcといった自動エスケープ機能をオンにするだけで対策したつもりになっていないだろうか。 基本はもちろん、セカンドオーダーSQLインジェクションやマルチバイト文字を利用したSQLインジェクションの攻撃パターンや、その対
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] ) 現在の接続の文字セットで unescaped_string の特殊文字をエスケープし、 mysql_query() で安全に利用できる形式に変換します。バイナリデータを挿入しようとしている場合、 必ずこの関数を利用しなければなりません。 mysql_real_escape_string() は、MySQL のライブラリ関数 mysql_real_escape_string をコールしています。 これは以下の文字について先頭にバックスラッシュを付加します。 \x00, \n, \r, \, ', " そして \x1a. データの安全性を確保するため、MySQL へクエリを送信する場合には (わずか
Featuring... Support for PHP 8.1 Support for Oracle 18 and 19 Improvements for ODBC and PostgreSQL The MySQL and PostgreSQL protocol modules enable SQL Relay to speak the MySQL and PostgreSQL client-server protocols, making it a transparent, server-only proxy for MySQL and PostgreSQL databases. How does SQL Relay compare to direct connections? SQL Relay maximizes throughput by eliminating the conn
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く