トップ 最新 追記

"週"記

日記?ムリっ。
半年1回の更新を目指すよう心がけます。
RSS

WebAppSec

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|07|08|09|12|
2008|01|02|
2009|04|
2010|02|

履歴


2006-11-02

_ [webapp][doc] 今夜分かるSQLインジェクション対策

以下の例のようにSQLで使える特殊文字をエスケープして対処するという方法が一般的になっている。
 \   →  \\
 '    →  \'
\ を勝手に特殊文字として拡張していない RDBMS の場合、

' or 1=1 --

みたいな感じで抜けられそうな気がするんですけど、最近の RDBMS はどうなんでしょう?

本日のツッコミ(全8件) [ツッコミを入れる]

_ naka64 [確かにこれぢゃ、変数が「$」付きなところを含めて前段/加工段のPerl処理の話でんなぁ。]

_ TIP [「’’」ってエスケープもあった気がする。 きっちり書くなら主要なRDBMS別に書くべきですかね?]

_ ikepyon [SQLの場合''のエスケープの方が一般的だったような気が・・・ IPAのセキュアプログラミングでは''が使われてます..]

_ bun [「''」がどのRDBMSでも使えるエスケープだったと思います(SQL92あたりの仕様に書いてあったはず)。きっちり書..]

_ TIP [修正しました。後ほど反映されるかと思います。ありがとうございます。]

_ 通りすがり [あいかわらず TIP は出鱈目だな。 修正した?訂正したって書いてないやん。]

_ TIP [訂正の履歴は文末に載ってますよ。]

_ 通りすがり [修正履歴に書いてあることが嘘やん。 '' を \' って書いてたくせに。]


2006-11-07

_ [etc] 「先輩の正体」

↑で検索してきている方へ。よく読んでくださいね。


2006-11-08

_ [webappsec] ぇーーーーーーーーーっ!!!JavascriptでXSS対策?!

まっちゃさんのところのコメントに反応してみる。

# ikepyon 『確かに、ブラウザ側だけで処理行ってる場合はこの対策でもいいですね。というかそれしか方法ないし。 しかし、そんなケースはあまりないでしょうけど・・・』

とある記事の関連で調べてたんですが、あまりないわけでもなさそうです。古典的なのは、document.write に入力値をそのままつっこんじゃうタイプですね。

document.write(document.referrer);

こういう作りをしていると、

http://www.example.com/?<script/src="http://www.example.com/evil.js"></script>

みたいなページからリンク張られて、終了。
最近は AJAX が流行らしいので、もっと複雑になってると思いますが、同じような漏れがきっとあるんでしょう。こういうのはJavascriptでXSS対策してくださいね。

// Javascript には HTML エスケープする関数は用意されてないのか?
String.prototype.htmlescape = function(){
 return this.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
document.write(document.referrer.htmlescape());
本日のツッコミ(全7件) [ツッコミを入れる]

_ yamagata21 [\x3cscript\x3e とか大丈夫なんでしたっけー?]

_ ikepyon [なるほど、結構あるんですね。最近だとAJAX関連で多そうだし]

_ 金床 [ブラウザに表示するとエスケープ関数の中身がヘンに見える件について]

_ 金床 [http://www.jumperz.net/fuga/jsescape.gif こんな感じです]

_ bun [エスケープ漏れしてたので直しました。orz]

_ はせがわ [そういう場合、DOM経由で書き換えるのがよいように思うのですけど、どうなんでしょ?]

_ bun [やってみたら、\x3cscript\x3eは大丈夫そうでした。 DOMだと、innerText使えば大丈夫ですけど、..]


2006-11-14

セキュリティキャンプ・キャラバン 開催のお知らせ

講師陣が各地を回ります。8月にやったセキュリティキャンプ2006に比べると時間も短くほんの一部だけになってしまいますが、それでも貴重な体験ができるはずです。来年以降参加しようと思ってる人も、参考になると思います。


2006-11-18

_ [etc] NoScript

試用中

&探し物
NoScript はサイト毎に、JavaScriptを許可するかしないか設定できるけど、もっと細かく、このサイトはこの命令を許可する、ってのを設定できるのはないか?
IE 用で同じようなのはないか?


2006-11-23

_ [etc] 学生のセキュリティ意識を高めるために

TATSUYA 氏著

|私がセキュリティに対する意識を持ち始めたのは、経済産業省主催のセキュリティキャンプ 2004 に参加してからでした。

という言葉(且つ実践してくれてるの)が、とてもうれしかったです。

# 次は誰がデビューするのか楽しみ〜♪

_ [etc] 今日のおもしろspam

mixi(裏)からの招待状
行ってみると、アダルトです。

アカネ さんがあなたを ソーシャルネットワーキングサイトmixi(裏)(ミクシー)へ招待しています。

メッセージ:

初めまして!!気になったのでマイミクになってくれませんか?

下記のURLよりアカネ さんの登録画面をご覧いただけます。

↓こちらから招待者のmixi(裏)トップページを見ることができます。
http://*******************/************

■□■ コミュニティ・エンターテイメント            ■□■
□■□ ソーシャルネットワーキングサイトmixi(裏)(ミクシー)って何? □■□

mixi(裏)(ミクシー)は、メンバーより招待された方のみで構成されている、
日本初のソーシャルネットワーキングサイトです。

■mixi(裏)ならこれまでの友人関係を活性化できる

信頼できる旧知の友人、お知り合いとのお付き合いの活性化を図るさまざまな
ツールをご用意しています。

■「友人の友人」と交流できる

mixi(裏)を使えば友人同士のネットワークをたどって「友人の友人」との交流が
簡単にできます。そこにはあなたの友人から繋がる信頼できるネットワークが
形成されています。mixi(裏)はどこかで繋がっている人同士が集まるコミュニティ
であり、これがソーシャルネットワーキングの特徴です。

■mixi(裏)なら日記の読み書き、これまでご利用の日記の公開ができる
みなさんは日記を公開することによって友人やmixi(裏)に登録している人々に多くの
情報を発信することが可能です。さらにこれまで使用されていた他の日記・ブログ
を使うか、mixi(裏)の日記を使うかを選択することができます。

利用、登録料は全て無料です。

mixi(裏)へ参加↓
http://*******************/********.***

それでは、参加を心よりお待ちしております。

― mixi(裏) ――――――――――――――――――――――
コミュニティ・エンターテイメント mixi(裏)(ミクシーウラ)
URL : http://*******************/
運営会社 : 株式会社ミクシー(裏)
――――――――――――――――――――――――――

2006-11-29


2006-11-30

_ [webappsec] エスケープだけしてれば、セキュリティ対策が万全になる訳ではないですよ

select password from usertable where id = 入力値 (idが数値型)
入力値に 1 or 1 = 1 が与えられると・・・
といった攻撃を防ぐことは出来ません。このケースでは、前もって入力値が数値型であることを確認しておかなければなりません。

違いますよね。数値かどうかはDBがチェックすべきものでしょう。それをしてくれないのだとしても、最初から入力値を「'」で括っときゃいいんです。 <input type="hidden" value=入力値> を防ぐことはできません、って言ってるのと同じじゃないですか?
入力値の数値チェックをしなくていいわけじゃないけど、入力値チェックを組み込む手間と、「'」を2つ追記する手間を考えたら、どっちが簡単で美しい対策かわかりますよね。

ライブラリなどの下位層で全ての問題が解決出来ることが理想ですが、残念ながら現状はそうではありません。それぞれの層における責務と出来ること出来ないことを正しく認識し、対策を行う必要があります。

これはそう思います。 こんなことされたら、下位層じゃどうにもならんでしょう。

_ [etc] 原稿

先程送りました。17時くらいに催促のメール頂いてましたが、みなしじゃない今日中に送ったので勘弁してください。

参考: 一般人理解不能…ここまでズレてる「エンジニア時間」

本日のツッコミ(全7件) [ツッコミを入れる]

_ masa [数値型のフィールドもシングルクォートで括っておけばよいってことでしょか?それはちょっとやりたくないです。]

_ bun [なぜ?]

_ masa [やったことがないからです]

_ はるぷ [intを期待しているところに対して、文字列をそのまま入れて、DBにエラーを吐かせて、そこからエラーハンドリングするっ..]

_ はるぷ [と、思いましたが、美しい美しくないはよくわからないので↑の話はやっぱり無しで。]

_ bun [エラーとか型の話じゃなくて、シングルクオートで括ってあげれば他と同じように下位層の機能が使えるよね、って話です。その..]

_ masa [数値型もシングルクォートで括れるってことを正直知らなかったので、それで対応可能なのであれば、そんなセキュリティの対策..]


無料アクセス解析