• 安卓组件漏洞防护注意事项


    防止利用系统组件漏洞

    原则:最小化组件暴露

    设置组件访问权限

    组件传输数据验证

    暴露组件的代码检查

    activity编码安全

    私有activity:

    (1)不声明taskAffinity

    (2)不声明 LaunchMode

    (3) 设置exported为false

    (4) 保证intent发送时的安全性,确定Intent是来自本应用程序

    (5)在确保本应用程序发送Intent的时候,可以防止一些敏感信息

    (6)启动Activity的时候不设置FLAG_ACTIVITY_NEW_TASK

    (7) 使用显示Intent与指定的类的方式来调用一个activity

    (8)敏感的信息放置在extra中发送

    (9)在onActivityResult的时候应对返回的data小心处理

    公共activity:

    (1)设置exported为true

    (2)接到Intent时注意小心处理

    (3)finish时在Intent中放置一些敏感信息

    伙伴activity:

    (1)不声明taskAffinity

    (2)不声明 LaunchMode

    (3) 不设置intent-filler设置exported为true

    (4) 使用白名单机制验证应用签名

    (5)处理Partner Activity来的Intent时小心注意

    (6)只返回给Partner Activity一些公开信息

    另一方Partner Activity启动该activity

    (1)不适用FLAG_ACTIVITY_NEW_TASK

    (2)extra中不放置一些公开与不敏感的信息

    (3) 使用显示intent,具体到报名、类名

    (4) 使用startActivityForResult()启动Partner Activity,返回时可以做校验

    内部activity:

    (1)定义Activity的签名权限为signnature

    (2)不声明taskAffinity

    (3) 不声明 LaunchMode

    (4) 不设置intent-filler设置exported为true

    (5)验证签名

    (6)验证intent传输的数据要小心

    Brocast Recevier编码安全

    Brocast Recevier分为:私有、公共、内部

    也可分为静态广播和动态广播

    私有广播:

    (1)不设置intent-filler设置exported为false

    (2)接收处理Intent信息的时候注意信息安全

    (3) 可以防止一些重要的信息在Intent中传输,所有处理完毕后需要终止掉广播

    公共广播:

    (1)设置exported为true

    (2)获取Intent的时候小心处理

    (3) return result的时候别防止敏感信息

    内部广播:

    (1)定义一个内部的Signature Permission来发送、接受广播

    (2)设置exported为true

    (3) 动态、静态广播注册的时候也需要声明Signature Permission。

    Service编码安全

    私有service:

    (1)设置exported为false

    (2)接收处理Intent信息的时候注意数据的敏感性和来源的正确性

    (3) 确保在同一个应用中的Intent才可以防止敏感信息

    公共service:

    (1)设置exported为true

    (2)发送接收处理Intent信息的时候注意敏感信息

    (3) return的时候不放置敏感信息

    合作service:

    (1)设置exported为true

    (2)处理Intent信息的时候小心

    (3) 注意返回消息,特别是敏感信息的接收对象

    内部service:

    (1)建立一个signature的permission

    (2)给待启动的service添加permission

    (3) 不设置intent-filler设置exported为true

    (4)在不同的内部应用中使用相同的签名

    (5)使用intent发送、返回数据的时候注意敏感信息的处理

    Provider编码安全:

    私有content provide:

    (1)2.2之前的版本别使用

    (2)设置exported为false

    (3) 只能在同一个应用程序中进行敏感信息的发送和接收

    公共content provide:

    (1)返回result时不放置敏感信息

    (2)设置exported为true

    (3) 接收输入条件时小心

    合作content provide:

    (1)在代码中对使用方的包名和签名做检验操作

    (2)设置exported为true

    (3) 接收处理敏感信息时小心

    (4)确认可以公开合作伙伴的信息才做返回

    内部content provide:

    (1)定义一个signature的permission

    (2)设置该content provide需要此permission

    (3) 设置exported属性为true

    (4) 代码内部检测传入应用的签名和包名的合法性

    (5)传入的参数信息与返回信息注意敏感数据泄露

    部分content provide:

    (1)2.2之前的版本别使用

    (2)设置exported为false

    (3) 指定允许访问的uri权限授予临时路径

    (4)处理接收到的请求数据和安全,即使已经获得应用程序的监视授权

    (5)返回数据时只返回部分开放的内容

    (6)给予指定的uri的intent临时访问权限

  • 相关阅读:
    C#实现RSA加密与解密、签名与认证
    RSA公钥加密,私钥解密的程序示例
    C#中自定义属性的例子
    HTTPS简单原理介绍
    深入浅出HTTPS基本原理
    WebClient请求帮助类
    WebApi安全性 使用TOKEN+签名验证
    jsvascript === 和==的区别
    UML中的图的出现顺序
    UML从需求到实现----用例
  • 原文地址:https://www.cnblogs.com/miaohj/p/5951125.html
Copyright © 2020-2023  润新知