Flashで ヘッダ操作は 脆弱か?

http://d.hatena.ne.jp/harupu/20061107 http://www.oiwa.jp/~yutaka/tdiary/tb.rb/20061108 この辺で話題になってることについて書いてみます。 おおいわさんには別途質問をしているんですけど、個人的な見解も書いておいた方がいいかな。ってことで。 基本…

LAPSE: Web Application Security Scanner for Java

JavaプロジェクトをOpenしてFind sourcesとかのボタンを押したら動いた。PCがウィーンってうなり声をあげたけど、待つこと5分ぐらいで検索完了。 シグネチャに登録されてるメソッドを検索しておわり。 検索補助ツールですにぇ。

LAPSE: Web Application Security Scanner for Java

http://suif.stanford.edu/~livshits/work/lapse/index.html 前々から興味があったソースコードチェッカーがフリーで公開されていたのでダウンロードしてみました。 eclipse3.2 以上じゃないとダメみたいで、環境作るのがめんどいです。 とりあえず、ダウン…

Webアプリケーションとリフレクション

とっても便利なリフレクション。 Webアプリケーションのリクエストパラメータをオブジェクトにセットする共通処理を実装するときなどに使われたりします。 例えば、StrutsのActionFormでは、 set[先頭の一文字を大文字にしたパラメータ名] のpublicメソッド…

あっちに行って、そっちに行ってから、こっちに行くと不正なデータが登録出来る

アプリケーションの作りによっては、不正な画面遷移により入力チェックを回避して登録処理が行えてしまうことがあります。トランザクション処理のセキュリティとかに(多分)分類されるこの問題は、セッション変数を利用したアプリケーションにおいて発生す…

AESで192bitsの鍵を使いたい

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle sunからjceをダウンロードして使う。

textareaタグでかこまれた文字列の扱い

htmlのtextareaタグでかこわれた文字列は、HTML特殊文字のエスケープが行われていなくても文字列として解釈される。 例えば以下のhtmlはスクリプトが一見動作しそうに見えるが、実際は動作しない。 <form action="hoge.html" method="POST"> <textarea>alert('hoge');</textarea> </form> 知らなかったので、ちょっと衝撃。

文字コード

なかなか奥深いのでちゃんと勉強しとかないと。 忘れないようにメモ。

瑕疵担保責任

教訓はなぜ生かされなかったのか | 日経 xTECH(クロステック) を読んで思い出した。 SQLInjection、XSSとかのテクニカルエラーは明らかに瑕疵担保責任の範囲内。 セキュリティを考慮しない場合でも、SQLを扱う際に'を入れればエラーになる、HTMLにタグが入…

セキュリティ上の問題とバグの分岐点

セキュリティ上の問題とバグの分岐点がいまいちはっきりしない。自分の中では、誰かしらに被害が発生することが予測されるか否かで線を引きたいのだけれど、世の中の流れはそうじゃないのかな? 例えばSQLでLikeを使用する際に、%をエスケープする必要がある…

Webアプリケーション開発者が行うべきセキュリティテスト

Webアプリケーション開発者がセキュリティに関連するテストを行う場合、どのようなテストケースを作成して、どのような形でテストするべきなのだろうか。だいぶ前からかなり悩んでいるのだけれど今のところ答えが出てこない。 セキュリティ専門会社が行うよ…

入力データの検証タイミング

「セッターで値が規定外の時って」(1) Insider.NET − @IT を読んでいたら http://vsug.jp/tabid/63/forumid/56/postid/1589/view/topic/tpage/1/Default.aspx で、いろいろ悩んでいたことを思い出した。 Webアプリにおける入力データの検証は、リクエスト…

JSPのインスタンス管理

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28015&forum=12 より 「JSPは複数のインスタンスを作っても良い」これは知らなかったのでかなり衝撃。覚えとかなきゃ。

安全なWebサイトの作り方

http://www.ipa.go.jp/security/vuln/documents/2005/website_security.pdf を読んだ。 すごく分かりやすくて、根本的対策、保険的対策に分類した構成も的を得ていると思う。 ただ、気になる点が2つ。まず「HTTPS通信で利用するCookieにはsecure属性を加え…

HTTPとHTTPSとCookieとSecure属性

HTTPとHTTPSが混在するサイトにおけるCookie管理はどうあるべきかを考察。HTTPS用のCookieにはSecure属性を設定しなければならないが、その場合HTTPでそのCookieを使用することが出来なくなってしまう。 HTTP用とHTTPS用に2つのセッション管理用Cookieを発…

PreparedStatement利用時の動きに関する調査。

postgreSQL-8.0jdbc3ドライバのソースを除いてみた。ごちゃごちゃしててなんだかよく分からないけれど、 SimpleParameterListクラスのsetStringParameterメソッドはなんか関係がありそう。 \と'の前に\を置く処理と、\0が入ってきた際にPSQLExceptionを吐き…

HTMLエスケープが行われるStrutsタグ一覧

HTMLエスケープが行われるStrutsタグ一覧を調べてみた。 bean:writeタグ html:optionsタグ html:optionsCollectionタグ html:fileタグ html:hiddenタグ html:passwordタグ html:textタグ html:textareaタグ nested:writeNestingタグ nested:writeタグ nested…

いまいちに感じるセキュリティの解説

Webアプリケーションセキュリティの基本として以下のような解説文をみかけることがある。ログイン画面で誤ったパスワードが入力された場合に「パスワードが違います。」と表示してはいけない。「存在するユーザID」が分かることで、セキュリティの強度が下が…

独特な実装がちょっと怖い

最近触りはじめたASP.NETアプリの動作検証はとりあえず終わり。 イベントドリブンなコードをWebアプリケーションでも記述出来る仕様には驚きとともに、少々危険な香りを感じた。例えば検証コントロールの定義方法。 StrutsだったらリクエストURLに関連付けて…

Cookieの安全性

ユーザ入力値をCookieの値に設定して返すアプリケーションを構築する際は、 入力値に改行コードが含まれていた場合の危険性を考慮しなければならない。 http://www.atmarkit.co.jp/fsecurity/special/34xss/xss01.html javax.servlet.http.Cookieに改行コー…

SQLインジェクション対策は機械的に行うべき

SQLインジェクション対策は小難しいことを考えなくても機械的な対応が出来ると思う。JavaだったらPreparedStatementを使わずに生のStatementを使用しているコードを検出 したらIDEレベルで警告を出してあげるようにする事と、パラメータバインドを使えない o…

Struts1.2.8 リリース

XSSの脆弱性が修正されたもよう。 こんな脆弱性があったとは、全く気付かなかった。 http://www.hacktics.com/AdvStrutsNov05.html・・・ってか、Tomcat上では再現しないと書いてあるようだけど、 それならStrutsの脆弱性じゃなくて、アプリケーションサーバ…

MSDE2000で外部からの接続を受け付け可能に設定する。

DB

デフォルトでは外部マシンから接続できないです。 セットアップ時に setup securitymode=sql sapwd=password disablenetworkprotocols=0 の指定が必要でした。

Secure属性の付いたCookieの扱い

Secure属性の付いたCookieをJavaScriptから触るときの挙動。 HTTPのページで、javascript:document.cookie = 表示されない。 HTTPSのページで、javascript:document.cookie = 表示される。ちゃんと切り分けされている。 サーバへの送信時にのみ、関連する属…

HTMLEncodeサニタイジングchar一覧

以下の4つ & " HTMLEncodeを自分でかましてあげないとダメです。 (´・д・`) ヤダ

JSTLサニタイジングchar一覧

c:outでは以下がサニタイジング対象 & ' " escapeXml属性がtrueならばサニタイジング Default=true

Struts ActionForm

ActionFormの役割は入力値のラップです。 出力時の値セットにはPOJOを使用しましょう。不要な依存関係は出来る限り削除することを念頭に設計していきたいですね。

Servletのインスタンス変数

StrutsのActionクラスを独自拡張した抽象クラスに、インスタンス変数が使用されてい るケースをみかけることがよくあった。(使用しても問題ない場合もあるけれど、みか けたケースは問題がある使い方をしていた。) Servletは通常マルチスレッド-シングルイ…

VS2005静的コード分析機能

ネットで拾える情報しかみていないのだけれど、VS2005の静的コード分析機能が気に なってしょうがない。 現時点でどの程度の機能を持っているのだろう? 開発経験はJ2EEがメインだったので、コード分析じゃセキュリティ上の問題を潰すこ とは出来ないだろう…

XSS対策は入力チェックで行うべきじゃない。

XSS対策は入力チェックで行うべきではありません。 HTMLに依存する問題なんだから、HTMLを生成する段階で無害化するのが筋でしょう。 本質から外れた対応を行っていた場合、様々な問題が発生します。A社はPC向けのコミュニティサイト作成にあたり、入力時に…