android 代码检测发现的漏洞

  • 访问控制:Android Provider

 每个访问数据库的查询都必须遵守策略(不允许用户在没有取得相应权限的情况下获取或修改数据库中的记录),这可以通过把当前获得授权的用户名包括在查询语句内来实现

getContentResolver().insert(Uri.parse("content://sms"),values);

上面代码时将发送的短信插入数据库,Android5.0已经不允许进行该操作(还是可以获取短信列表的)

  • Android Bad Practices: Missing Broadcaster Permission缺少广播者权限

防止应用内部的广播不能轻易的发送到外部应用中,或者应用内部不轻易的接收外部广播,加上安全权限访问还是有必要的

第一步:自己定义权限,并且使用自定义权限

<uses-permission android:name="com.internettaxtxl.permissions.MY_BROADCAST" />
    <permission
        android:name="com.internettaxtxl.permissions.MY_BROADCAST"
        android:protectionLevel="signature" >
    </permission>

第二步:定义注册广播

private static final String BROADCAST_PERMISSION_DISC = "com.cn.customview.permissions.MY_BROADCAST";
    

registerReceiver(sendMessage, new IntentFilter(SENT_SMS_ACTION),BROADCAST_PERMISSION_DISC,null);
private BroadcastReceiver sendMessage = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            //判断短信是否发送成功
            switch (getResultCode()) {
            case Activity.RESULT_OK:
                Toast.makeText(context, "短信发送成功", Toast.LENGTH_SHORT).show();                
                break;
            default:
                Toast.makeText(DuanXin.this, "短信发送失败", Toast.LENGTH_LONG).show();
                break;
            }
        }
    };   	    

第三步: 发送广播

Intent intent = new Intent();  
intent.setAction(BROADCAST_ACTION_DISC);  
sendBroadcast(intent,BROADCAST_PERMISSION_DISC);   //发送广播

注意: 
registerReceiver(receiveBroadCast, filter,BROADCAST_PERMISSION_DISC,null);

如果改为registerReceiver(receiveBroadCast, filter);

照样能够收到第三步发送的消息,因为我们在xml里面已经申请了BROADCAST_PERMISSION_DISC权限,所以sendBroadcast(intent,BROADCAST_PERMISSION_DISC);发送广播我们依然能收到。 
sendBroadcast(intent,BROADCAST_PERMISSION_DISC); 改为sendBroadcast(intent);也同样能收到这个消息。

因为第一个的意思是收到这个消息的广播监听器必须有BROADCAST_PERMISSION_DISC权限,如果第二个参数去掉,则说明广播监听器不需要任何权限就能收到这个消息。

  • Cross-Site Scripting (XSS)

http://www.cnblogs.com/loveis715/archive/2012/07/13/2506846.html

  •  

转载于:https://my.oschina.net/u/3337991/blog/1813659

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值