Monthly Archives: 6月 2013

「Android Security 安全なアプリケーションを作成するために」第15回(6/28)

Posted on by 0 comment

参加者 青木(読み手)、沼田、今井(記)

範囲 pp.157-163

第8章 インテント

  • 8.2 インテントを使用するときの注意点
    • 8.2.4 アンドロイドの標準アプリケーションと連携するときの注意点 (p.157 「アクティビティマネージャからのインテント情報の取得」 から)
      • p.158 表8-5 ミススペル
        一行目の条件内、sigleInstance → singleInstance
      • p.158 リスト8-19
        • このコードでのmActivityManagerはローカル変数でありフィールドではないので、’m’で始まる変数名に違和感がある。
        • recentTaskListをfor-each文でまわさないのは何か理由があるのだろうか?
  • 8.3 アクティビティのセキュリティ
    • 8.3.1 アクティビティの宣言
      • p.160 リスト8-22
        • configChange属性の値が’,’で区切ってあるのは複数指定できるということ? どうやって指定するのだろう。
          → ※3のURLによると、”locale|navigation|orientation“のように’|’で区切るようです。
        • リスト8-22ではicon属性の値”drawable resource”のように、意味がかいてあるところと、”true”などのように値がかていあるところがあってわかりにくいですが、※3では意味のところはイタリックになっています。
      • p.162 l.6
        「受信先」/「送信元」という言葉がちょっとわかりにくい。「送信先」/「送信元」とか「受信者」/「送信者」、「受信側」/「送信側」とかだとわかりやすいのではないか。
      • p.162 中程
        “exportedとpermissionが同時に宣言された場合は、exportedのほうが優先されます。”とは、permissionで指定していても、exported=”true”にしていたらpermission関係なく送信できるとうことか?
        → 文章からだとそう読めるがセキュリティ的におかしな気がする。exported=”false”だとpersmissionを持っている送信者でも送信できないという意味ではないだろうか。
    • 8.3.2 アクティビティ状態の保存
    • p.163 中程の流れの説明
    • p.163 下から4,3行目ミススペル
      onSavedInstanceState() → onSaveInstanceState()
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第15回(6/25)

Posted on by 0 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp.145 – 157 「Googleマップで位置情報を表示する」まで

第8章 インテント

  • 8.1 インテントの構成要素
    • 8.1.1 アクション
      • 表8-1 ACTION_CHOOSERの説明にある、「常にこの操作で使用する」が指定されていても必ず表示する、というのはどういうこと?
         → APIはこちら
        あるアクションにはこのアプリを使う、とユーザが指定していたとしても、アクティビティを選択するダイアログが表示されるということ?
    • 8.1.2 データ
    • 8.1.3 カテゴリ
    • 8.1.4 タイプ
      • 表8/4
         text/*の説明にあるtext/planeはtext/plainの誤りでしょう。
    • 8.1.5 コンポーネント
    • 8.1.6 エクストラ
  • 8.2 インテントを使用するときの注意点
    • 8.2.1 指定したアクションどおりに処理されない可能性
    • 8.2.2 インテントのエクストラ情報が解析される可能性
      • リスト 8-1
        BundleのAPIを見るとkeySet()メソッドの戻りはSet<String>なので、Iterator<String>で受ければキャストは不要なのでは?
    • 8.2.3 アクティビティマネージャのログからインテントが解析される可能性
    • 8.2.4 アンドロイドの標準アプリケーションと連携するときの注意点
      • 書籍に掲載するために出力例を編集したせいか、actとdatの間にスペースがなかったり、コード例で指定しているアクションと異なるアクションがログに出力されていたり、指定していないフラグが出力されていたり、エクストラを設定していても出力されていなかったり、….わかりづらい。
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第14回(6/21)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp.136-145

第7章 コンテントプロバイダ

  • 7.5 URIパーミッション (p.136 2行目から)
    リスト7-7 cur.getCount()でレコード数を取得しているが、使用していない。何か意図があるのだろうか?
    cur.getString(i++)で、引数で指定したカラムの値がStringで取得できる。
  • 7.6 コンテントプロバイダのパーミッション設定事例
    android:authoritiesは何に使われる?
    →コンテントプロバイダにアクセスするURIに使用される。

    • 7.6.1 コンテントプロバイダを非公開にする
    • 7.6.2 同じ証明書を持つアプリケーションにのみ公開する
    • 7.6.3 書き込みだけを禁止する
  • 7.7 コンテントプロバイダの注意点
  • 7.8 まとめ

第8章 インテント

  • 8.1 インテントの構成要素
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第13回(6/18)

Posted on by 0 comment

参加者 青木(読み手)、沼田、今井(記)
範囲 pp.127-136

第7章 コンテントプロバイダ

  • 7.3 コンテントプロバイダの宣言 (p.127 android:enabled属性 から)
    • p.129 中程囲み
      「このように指定した場合の動作は想定されていないので」とあるが、想定されていないのは動作ではなく、「このような指定は」だろう。
    • p.131 表7-5 android:pathPrefixの説明 間違い
      パスの最後の部分を指定 → パスの最初の部分を指定
    • p.131 リスト7-4
      • リスト7-3と違ってインデントしていなかったり、<provider>の閉タグがなかったりして、ちょっと読みにくい
      • android:grantUriPermissions属性の例はないのですね。
      • pathPrefixで、最後のスラッシュがあったりなかったりするが、例えば、"/my_downloads"だと/my_downloadssもマッチするのだろうか?
  • 7.4 パーミッション
    • readPermission, writePermissionとpermissionでかぶるところがあり、期待する動作に対する指定を間違えやすく、かえってセキュリティ上穴ができそう。
    • p.133 表7-7
      PAは、<provider>の属性値、PR,PWは<path-permission>の属性値であることに注意。表として<provider>の属性値と<path-permission>の属性値にカラムを分けたらわかりやすかったのに。
    • p.134 中程 URIの重複の例
      android:permission属性の値が"で括られていないが、"が必要なはず。
  • 7.5 URIパーミッション (p.136 1行目まで)
    • p.134 7.5 l.2
      「一時的に許可するとき」の一時的ってどういうことだろう?
      → これから説明がありそう。
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第12回(6/14)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.117 – 127 リスト7-2まで

第6章 パーミッション

  • 6.5 疑われやすいパーミッションの組み合わせ
    • 6.5.1 個人情報漏洩が疑われてしまう組み合わせ
    • 6.5.2 金銭的被害が発生するように見える組み合わせ
    • 6.5.3 行動を監視しているように見える組み合わせ
    • 6.5.4 データの改ざんが疑われてしまう組み合わせ
    • 6.5.5 端末の動作を不安定にする可能性が疑われてしまう組み合わせ
      • APN:Access Point Name(アクセスポイント名)のこと?
  • 6.6 まとめ
  • tSpyChecker:危険なパーミッションを調べるアプリケーション

第7章 コンテントプロバイダ

  • 7.1 コンテントプロバイダとは
    • p.124 下から9行目
      これと同じように
  • 7.2 コンテントプロバイダのセキュリティ
  • 7.3 コンテントプロバイダの宣言
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第11回(6/11)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp.108 – 117

第6章 パーミッション

  • 6.4 アンドロイドの定義済みパーミッション
    p.108 「ネットワークの使用が広告のみのフリーアプリを作る際、広告専用のパーミッションがあれば危険なアプリと疑われないですむのにな」という話がでました。
    p.113 表6-10 READ_USER_DICTIONARY,WRITE_USER_DICTIONARYはAPIレベル16からです。
    Android4.2からマルチユーザ対応になったようです。
    p.115 表6-13 READ_SYNC_SETTINGSの説明にgetIsSyncable()が重複して記述がありますが、1つはgetMasterSyncAutomatically()の誤りのようです。
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第10回(6/7)

Posted on by 0 comment

参加者 青木(読み手)、沼田(記)
範囲 pp.98 – 108

第6章 パーミッション

  • 6.2 パーミッションによるアクセス制限
  • 6.3 パーミッションの作成
    • パーミッション情報の定義
      AndroidManifest.xmlの例を見ると<uses-permission>で使うことを宣言した後に<permission>で定義しているのは順番がみずらくない?
       →AndroidのドキュメントにあるAndroidManifest.xmlの構成もこの順序で記載されていました。
    • 表6-1 パーミッショングループ
      HARDWARE_CONTROLSの説明が携帯電話のハードウェアとなっているけど、携帯に限らないのでは?
    • 表6-2 パーミッションの保護レベル
      表の見出しが「protectionLevelの値」となっているけど、値は「protectionLevel」に書かれているほうで、「protectionLevelの値」列に書かれているのは説明でしょう。

    • 6.3.1 パーミッション情報の確認:GUI
      • リスト6-5
        最後に定義しているパーミッションのpermissionGroupはandroid.permission-group.SYSTEM_TOOLS
      • p.105 l.6
        READ_CONTACTS
    • 6.3.2 パーミッション情報の確認:コマンドライン
Category: Android Security

「Android Security 安全なアプリケーションを作成するために」第9回(6/4)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp.87-98

第5章 ファイルのアクセス許可

  • 5.6 データベース
    • 5.6.1 SQLiteデータベース
    • 5.6.2 SQLiteのセキュリティ
      neetUpgrade()のneetはどんな意味だ?と思ったらneedUpgrade()の誤りだった。
  • 5.7 まとめ

第6章 パーミッション

  • 6.1 パーミッションの使用
Category: Android Security