http://d.hatena.ne.jp/hoshikuzu/20060211#P20060211PHPSQLINJECTION セキュリティmemoにaddslashesよるエスケープ処理でSQLインジェクションが可能なるという記事を見つけました。 私のセミナーを聞いたことがある方は「addslashesによるエスケープ処理は止めましょう」と言っていた事を覚えているでしょうか? mysql_real_escape_string()やpg_escape_string()等のデータベース専用のエスケープ関数を使いましょう、...
IPA/ISECは、不正アクセスを受けWebサーバが改ざんされた5月の事例を踏まえ、Webアプリケーションについてもセキュリティ対策が必要であると呼びかけた。 情報処理推進機構セキュリティセンター(IPA/ISEC)は6月6日、2005年5月のウイルスおよぶ不正アクセスの届出状況をまとめ、公開した(別記事参照)。 この中でIPA/ISECは、不正侵入報告10件のうち、Webサーバに侵入されてコ...
はuserpwdプログラムのソースリストである。Perlで書かれたプログラムで,DBIインタフェース(注1)を使用してMySQL(注2)データベースへアクセスする。 5〜7行目では,コマンドライン引数からユーザ名,現在のパスワード,新しいパスワードをそれぞれ変数$user,$curpwd,$newpwdに受け取る。10行目はDBIインタフェースを使用してデータベースへ接続する(注3)。13〜14行目で受け...
最近PostgreSQL、MySQL両方にSJISエンコーディングを利用している際のエスケープ方法の問題を修正がリリースされています。この件は単純に「データベースシステムにセキュリティ上の脆弱性があった」と言う問題ではなく「アプリケーションの作り方を変える必要性」を提起した問題です。 PostgreSQL、MySQLの脆弱性は特にSJIS等、マルチバイト文字に\が含まれる文字エンコーディング...
赤坂さんに指摘されたもう1つの「危険な脆弱性」とは? 隠された脆弱性を見つけ出せ!
『 会員制ウェブサイトをPHPとMySQLでつくるシステムとしては、サインアップ時のユーザー情報はMySQLに格納、パスワードはランダムに生成してから暗号化してデータベースへ 』
SQLのエスケープと聞いてやってきましたよ。2008-07-10 - T.Teradaの日記から 例えば、「\%foo」から始まる文字列を検索する場合には、どのようなSQL文を書けばよいのでしょうか。 条件は以下の通りです。 1. DBMSソフトはMySQL 2. ESCAPE節は使わない 【中略】 「\%foo」から始まる文字列を検索するSQL文は、以下のようになります。 mysql> SELECT 123 FROM dual WHERE '\\%foo456' LIKE '\\\\\\%foo%'; MySQLの...
Webサイトは,そのサイト固有のサービスを提供するための機能を備えている。ショッピング・サイトなら,商品を紹介するためのカタログ機能や,ショッピング・バスケット機能,決済機能などを備えているだろう。これらの機能を実現するアプリケーションにセキュリティ上の不具合(バグ)が残っている場合がある。これをWebアプリケーションのぜい弱性という。 バグの...
Webに限らずコンピュータシステム一般に言えることなのだが、 簡単な安全装置をつけるのを怠ることで何が起きるかという事例がこちら。 asahi.com: みずほ証券、誤注文で270億円の損失 (2005/12) 「1株61万円で売り」とすべきところを「1円で61万株を売り」にして しまったとのこと。 すかさず買いを入れて数億円規模の利益を得てしまったデイトレーダーもいるとかいないとか。 ...
最近SQLインジェクション攻撃が猛威を振るっていることもあり、SQLインジェクションに対する解説記事が増えてきたようだが、対策方法については十分に書かれていないように感じる。非常に稀なケースの対応が不十分だと言っているのではない。ごく基本的なことが十分書かれていないと思うのだ。 SQLインジェクション対策には二通りある。バインド機構を使うものと、SQLのエ...
\がescape用文字のDBで\のescapeが必須になる理由が明確に書かれてない。\'が与えられたとき'だけescapeすると…。自作escapeは危うい。「安全な…作り方」3版で追加の「3.失敗例」ではDBで用意されたescape機能しか推奨していない このうち、まず「\」のエスケープが必須となる(MySQLやPostgreSQLで)理由を説明しよう。 「\」をエスケープしないと処理がおかしくなる MySQLにおいて、文字列...
ではSQLインジェクション攻撃が多発している背景について解説してきたが、現在でも多くのサイトがSQLインジェクション攻撃にさらされている状況は変わっていない。 こうしたSQLインジェクションの被害に、ユーザーが巻き込まれないようにする方法について考えてみよう。 ● 不正なスクリプトの実行を防ぐには、修正パッチを忘れずに適用 SQLインジェクションはサーバー...
はSQLインジェクションとはどのような攻撃であるかを概説した。今回は、なぜ最近になってSQLインジェクション攻撃が目立つようになってきたのか、その背景について考えてみたい。 ● SQLインジェクション攻撃のための“環境”が整ってきた 前回説明したSQLインジェクションという手法を使うことで、悪意のユーザーは目的のサーバーのデータベースにデータを外部から登録...
3月以来、世界中の多くのインターネットサイトが、悪意のユーザーによるSQLインジェクション攻撃に遭い、被害を出していることが報じられている。SQLインジェクションとは何か、またなぜこのように流行し被害が広がったのか、被害を防ぐにはどうすればいいのか、3回にわたり考えてみたい。 ● SQLインジェクションとは何か SQLインジェクションによる攻撃では、不正な...
『 こういうことをAutoでやってくれる、PHPUnit3を書くと、すげぇことになるかも。 』
『 SQLインジェクションの方法についての例が書かれており、SQLインジェクション対策に使えます。 』
SQLインジェクションを利用したWebサイトの改ざん事件が頻発している。標的となったサイトの多くがIIS(ASP)とSQL Serverの組み合わせを利用していることから、今回の攻撃がIISやSQL Serverの脆弱性を利用したものだと言う報道があるらしい。 これに対して、マイクロソフトが反論している。 「SQLインジェクション攻撃とIISは無関係」とMicrosoft しかしMicrosoftはセキュリティ対策センタ...
del.icio.us/tag/del.icio.usを眺めていたらFlickrのときみたいに面白い資料を見つけたの紹介します。 Things to look out for when building a large application.というタイトルでサーバーサイドの管理等の話が中心かと思って読んでいたらそれ以外のインターフェース、実装すべき機能、spam対策、アプリケーションを如何に広めるかといった話にも触れていて面白いです。 以下にまとめてみました。 ス...
そこで、僭越ながら、「サニタイズ言うなキャンペーン」について、 私なりの解釈を書いてみようと思う。 もっともこれが正解であるという保証はないのだが、 間違っていたらどなたかツッコミいただけることを期待しています(_o_) そもそも何のせいで「エスケープ」しなければならないのか たとえば住所氏名を登録させるWebアプリケーションは珍しいものではないと思う。 ...