ikepyonのお気楽な日々〜技術ネタ風味〜 このページをアンテナに追加 RSSフィード

気になった日々のニュースとメモのためのリンクと戯言のページ

To Do(というかやりたいこと。何時終わることやら)
-ITIL導入のための成熟度チェックシートみたいなの(あると便利だよね?)
-Hacknotes Web Security Portable Reference和訳(出版社募集中)
-Webアプリケーションセキュリティ検査ツールの改良(一応完成)
-Hacker HighSchoolの資料の日本語訳
-OSSTMMの日本語訳
-「燃えるセキュアプログラミング」若しくは「サルでも分かるセキュアプログラミング」とか書いてみたいなぁみたいな。

これだけはチェックしときなはれ!!受入れテスト用セキュリティチェックリスト公開中
Webアプリケーションセキュリティはてなぐるーぷ(テスト中やで)
SQL Injectionの仕組みと対策公開中
RSS feed meter for http://d.hatena.ne.jp/ikepyon/
Secure Coding に入ろう!! [MLの詳細]
メールアドレス
SKUF Meeting なかのひと

2008-10-29 これは参ったorz

[]SQL文のエスケープ方法 SQL文のエスケープ方法を含むブックマーク SQL文のエスケープ方法のブックマークコメント

SQLで問題となるのは「'」であると思う。「'」は文字列の区切りを示しているので、これをエスケープする必要がある。

そのとき、Cやperlなどでは「\'」とエスケープするが、SQLでは「''」とエスケープするように決められているはず。(はずというのは手元に規約がないので^^;)

ところが、一部RDBMSではCなどと同じように「\'」も許可しているため「\'」でもOKという誤解があるみたい。

http://jp2.php.net/manual/ja/function.addslashes.php

addslashes() の使用例は、 データベースデータを登録するときです。例えば、 O'reilly という名前データベースに挿入するには、 エスケープする必要があります。ほとんどのデータベースでは O\'reilly という具合に \ を使用します。これはデータベースデータを格納する場合のみ必要です。 追加される \ は挿入されません。 PHP のディレクティブ magic_quotes_sybase を \ にすると、' はもうひとつの ' でエスケープされます。

「\'」でもエスケープできないDBの場合、addslashesを使っても意味がないんだけどorz

参照:http://www.tokumaru.org/d/20080601.html#p01

トラックバック - http://d.hatena.ne.jp/ikepyon/20081029

2008-10-28 さぶい

眠いし、サブいし

[]セキュリティガイドライン セキュリティガイドラインを含むブックマーク セキュリティガイドラインのブックマークコメント

http://www.e-3lab.com/security_guideline/

SQLインジェクション対策に間違いが・・・

エスケープのやり方がチャウんですけど。「\」でエスケープできるのは一部のRDBMSのみで、一般には、「'」を「''」や「"」を「""」とするのが普通(「"」もエスケープ必要だったけ?)。で一部の「\」がエスケープ文字として使用されるDBでのみ「\\」としなくてはいけない。

あと、OSコマンドインジェクションにも誤りというわけではないんだが、やるべきことが一部ある。

多くの言語では、コマンド呼び出しの際に配列引数を受け付けるメソッドや関数がある。引数すべてを一つの文字列として渡すのでなく、個々の引数を一つ一つ配列の要素にしたほうが楽。

ここら辺の話ってIPAのせきゅあプログラミングに書いてあるはずなんだが・・・

あと、CSRFについてはKanatokoさんのhttp://www.jumperz.net/texts/csrf.htmが良いと思うし、セッションIDの渡し方もSSLに必ずしもする必要はないと思う。セッションIDの盗聴対策についてはやったほうがいいとはいえるけれど、そこまで本当に必要か?ということを考えるべき。確かにセッションIDの盗聴というのは可能性としてあるけれど、セッションIDだけを守るためだけにSSLを導入するというのはコストが高すぎ。

オレオレ証明書でよいとか言うのはぜんぜん意味がないのでダメだしというか、弊害ありすぎるからね。

jukuin2000jukuin2000 2008/10/29 00:45 見たよ。
明日会社に行ったら直しておくよ。

ありがとうございました。

そうだ。もう少し補足しておきたいことが。
実際、うちの会社でもセッションIDのためだけにSSLを使うことは無い。皆無である。仰る通りコストが高すぎるから。

ただ、セッションIDをセキュアではない環境で受け渡しをしている場合は、少なくとも個人情報にアクセスするところでは、再度パスワードの確認等が必要になる。

ってことを、セキュリティガイドラインにまとめるのが面倒だったので、初心者向けの最低限のラインということで、SSL環境化ということに限定してしまった。

ikepyonikepyon 2008/10/29 13:29 adshlashesは単に「'」や「"」、「\」に「\」をつけるだけなのでSQLインジェクション対策にはならないです。magic_quotes_gpcがonの場合と同じなので、意味がないです。

yamagata21yamagata21 2008/10/29 13:37 まずは、SSLが必要な画面と、SSLが必要でない画面とを区分けする必要があると思う。そして、SSLが必要な画面については通常のセッションID以外に、secureフラグ付きのSSL画面向けセッションIDが必要な構成にすれば良いのでは。

ところで、Refferer は、Referer(/Referrer) かな。。

ikepyonikepyon 2008/10/29 13:49 人の日記のコメントで指摘してるしw<yamagata21さん
自分とこのブログを示してくださいw

トラックバック - http://d.hatena.ne.jp/ikepyon/20081028

2008-10-01 ダメ人間になってるなぁorz

[]安全なアプリの作り方(そにょに) 安全なアプリの作り方(そにょに)を含むブックマーク 安全なアプリの作り方(そにょに)のブックマークコメント

id:ripjyrさんからツッコミもらったので、追記。

てか、既にある程度80%程度クリアしているフレームワークとかあるし。。。。それを100%に近づける仕事する方がよっぽど効率的ですよ>いけぴょん

確かに、ありますねぇ。しかし、現状あるフレームワークで想定していないことをやろうとすると、むちゃくちゃ苦労するんですよねぇ。それは一昨年?のWASFの検証でもいわれてましたなぁ、確か。

じゃ、そのフレームワークが悪いんじゃね?他の使えばいいんじゃね?というのはその通りなんですが、どれもこれも一長一短がある(フレームワークなんてそんなものだと思いますが)。となると、望んでいる機能を全て実現するには、ゴリゴリコード書かなきゃというのが現実なんかなぁ?とも思うわけで・・・

もちろん、「その機能は実装可能だけど、えらく工数がかかります。でも、似たような機能ですが、こうすれば簡単に出来ますよ。」といって提案すればいいんだろうけど、現状出来てないことが多いわけで。

結局、「ほげほげ機能が出来ないから、ほえほえフレームワークなんてダメだ。だから、コードゴリゴリ書くんだ。」というオチがまっているようなorz

適材適所なんだけどなぁ。

あと、フレームワークがあること知らない人が多いのかもしんないなぁ。それに、フレームワークバグがあった場合、どうすんのさ?というのもあるし・・・

フレームワークフレームワークでいろいろ問題があるんだよねぇorz

もちろん、コードゴリゴリ書くことも、いろいろ問題あるけどね。

結局、銀の弾丸なんてどこにもねぇよって話に落ち着くわけでw

トラックバック - http://d.hatena.ne.jp/ikepyon/20081001

1900 | 01 | 06 |
2003 | 04 | 05 | 06 | 07 | 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 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 02 | 03 | 04 |
2011 | 01 | 02 |
Connection: close