2012年3月5日月曜日

Javaセキュアコーディングスタンダード CERT/ Oracle版



Javaを使った開発は、Javaが発表された翌年から行っているのですが、ずっとJava開発を続けていたわけではなく、7年くらい前から2年程前までは、組込系のC++開発をしていて、所謂Java2に切り替わってからはJava開発から遠ざかっていました。
なので、2年前にAndroid開発で、再びJavaに戻るときには、Java2(JDK5/6)で追加された言語仕様とかライブラリ群を勉強し直しました。
Android開発をやるようになってからも、Java一辺倒でもなく、下回りのC/C++部分やら、ビルドスクリプトやらを担当することも多かったし、ここ2ヶ月程はAndroidとは全然関係ないC#とRubyを使った開発をやってたりで、まあ結構色々とやらされています。

そんな中で、またAndroid Java開発に戻ることになり、もう一回Javaのコーディング技術を見直そうと、本書を買ってみました。
あんまりセキュリティを意識したコーディングってしたことないのですが、Androidアプリにはセキュリティ的に堅固なコードを書くことが必要になりますからね。
(とはいえ、Google作成のAndroidコード自体、あまりセキュアなコードとは思えませんけどね)

半分くらいは既に知っていたことで、残り半分くらいが知らなかったことが色々と書かれていました。
が、その知らなかったことを、Androidに適用できるかとAndroid DevelopersのReferneceを見たら、Java標準のセキュリティ系APIがことごとく"DO NOT USE"となっています。
IceCreamSandwitchのソースを調べたら、そいつらの実装が全部空関数ですわ。
まあ実効権限チェックはAndroidのPermissionを使えってことでしょうし、JarのSignatureチェックはapkのSignatureチェックがあるから不要なんでしょうけど...なんかAndroidって本当に大丈夫か??って思ってしまいますわな。
取り敢えず、Androidで空実装になっているセキュリティAPIの部分以外は、一応既に知っていて、ほぼ実践していることばかりだったので、そういう意味では自分の知識に問題がないことが確認できましたが...なんか嬉しくない。

フィーチャーフォンの分割払いがもうすぐ終わるので、USB型のWiMAX端末を止めて、テザリング可能なWiMAX付きAndroid端末に一本化しようと思っているのに、Android使うのが怖くなってきました。
電話とメールとモバイルルーターとしてのみ使うと割り切れば、大丈夫かなぁ。

0 件のコメント:

コメントを投稿