游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

你开发的app可能正饱受风险

  作者:brucevanfdm
  链接:https:www。jianshu。comp7f2202c18012
  1、前言
  近期facebook的隐私泄露事件再度唤起了公众对隐私的关注,在这个越来越重视个人隐私的时代里,安全早已是一个无法绕开的话题。
  作为一个开发人员,必须具备安全意识,掌握基础的安全知识,为打造更加安全的应用做出努力。本文浅谈Android客户端的安全问题,涉及组件、WebView、存储、传输、日志、混淆、应用加固等安全漏洞及防护策略,运用更加合理的配置与防护措施来提高应用的安全级别。2、组件安全
  规范安卓标准组件(Activity、Service、Receiver、Provider)的访问权限。
  这里提到的组件访问权限主要是指跨应用的进程间通信(IPC,InterProcessCommunication),开发者可以限定应用内的组件是否允许被其他应用调起,或接收来自外部应用的数据,或者访问我们的数据。并且必须对来自外部应用的数据做校验处理,避免来自外部攻击。如恶意调用组件、广播数据攻击、恶意访问数据等等。
  1。设置权限开放属性:android:exported〔truefalse〕
  exported属性为四大组件共有属性,其中含义大同小异。默认值由其包含lt;intentfiltergt;与否决定。若未包含lt;intentfiltergt;,默认为false,若存在至少一个lt;intentfiltergt;,则默认值为true。
  在Activity中:
  表示是否允许外部应用组件启动。若为false,则Activity只能由同一应用或同一用户ID的不同应用启动。
  在Service中:
  表示是否允许外部应用组件调用服务或与其进行交互。若为false,则Activity只能由同一应用或同一用户ID的不同应用启动。
  在Receiver中:
  表示是否可以接收来自其应用程序之外的消息,如来自系统或或其他应用的广播。若为false,则广播接收器只能接收具有相同用户ID的相同应用程序或应用程序的组件发送的消息。
  在Provider中:
  表示是否允许其他应用程序访问内容提供器。若为false,则具有与Provider相同的用户ID(UID)的应用程序才能访问它。如果需要给其他应用程序提供内容,则应当限定读写权限。
  2。配置自定义权限
  在AndroidManifest。xml中定义一个名称为com。fedming。demo。ACCESS的权限:
  android:protectionLevelsignature表示签名保护级别,签名级别权限的内容对用户完全透明开放,而且只有由执行权限检查的应用的开发者签名的应用才可访问这些内容。
  应用到四大组件或者Application中android:permissioncom。fedming。demo。ACCESS,即可实现对非同一签名应用的限制性访问。一般用于一些内部应用之间共享的私有组件。
  使用更加安全高效的LocalBroadcastManager
  区别基于Binder实现的BroadcastReceiver,LocalBroadcastManager是基于Handler实现的,拥有更高的效率与安全性。安全性主要体现在数据仅限于应用内部传输,避免广播被拦截、伪造、篡改的风险。简单了解下用法:
  1。自定义BroadcastReceiverpublicclassMyReceiverextendsBroadcastReceiver{
  Override
  publicvoidonReceive(Contextcontext,Intentintent){
  DoSomeThingHere
  }
  }
  2。注册ReceiverMyReceivermyReceivernewMyReceiver();
  LocalBroadcastManagerlocalBroadcastManagerLocalBroadcastManager。getInstance(this);
  IntentFilterfilternewIntentFilter();
  filter。addAction(MYACTION);
  localBroadcastManager。registerReceiver(myReceiver,filter);
  3。发送本地广播BundlebundlenewBundle();
  bundle。putParcelable(DATA,content);
  IntentintentnewIntent();
  intent。setAction(MYACTION);
  intent。putExtras(bundle);
  4。在Activity销毁时取消注册Override
  protectedvoidonDestroy(){
  super。onDestroy();
  localBroadcastManager。unregisterReceiver(myReceiver);
  }
  Application相关属性配置
  1。debugable属性android:debuggable〔truefalse〕
  很多人说要在发布的时候手动设置该值为false,其实根据官方文档说明,默认值就是false。
  2。allowBackup属性android:allowBackup〔truefalse〕
  设置是否支持备份,默认值为true,应当慎重支持该属性,避免应用内数据通过备份造成的泄漏问题。3、WebView安全
  1。谨慎支持JS功能,避免不必要的麻烦。
  提到对于Android4。2以下的JS任意代码执行漏洞,Android4。2以下?不必支持了吧!
  2。请使用https的链接,第一是安全;第二是避免被恶心的运营商劫持,插入广告,影响用户体验。
  3。处理file协议安全漏洞若不需支持,则直接禁止file协议setAllowFileAccess(false);
  setAllowFileAccessFromFileURLs(false);
  setAllowUniversalAccessFromFileURLs(false);
  4。密码明文保存漏洞
  由于webView默认开启密码保存功能,所以在用户输入密码时,会弹出提示框,询问用户是否保存。若选择保存,则密码会以明文形式保存到datadatacom。package。namedatabaseswebview。db中,这样就有被盗取密码的危险。所以我们应该禁止网页保存密码,设置WebSettings。setSavePassword(false)
  5。开启安全浏览模式
  启用安全浏览模式后,WebView将参考安全浏览的恶意软件和钓鱼网站数据库检查访问的URL,在用户打开之前给予危险提示,体验类似于Chrome浏览器。4、数据存储安全
  1。秘钥及敏感信息
  此类配置应当妥善存放,不要在类中硬编码敏感信息,可以使用JNI将敏感信息写到Native层。
  2。SharePreferences
  首先不应当使用SharePreferences来存放敏感信息。存储一些配置信息时也要配置好访问权限,如私有的访问权限MODEPRIVATE,避免配置信息被篡改。
  3。签名配置signingConfigs
  避免明文保存签名密码,可以将密码保存到本地,无需上传版本控制系统
  在app目录下建立一个不加入版本控制系统的gradle。properties文件:STOREPASSWORDqwer1234
  KEYPASSWORDdemo1234
  KEYALIASdemokey
  gradle将自动引入gradle。properties文件,可以直接在buld。gradle文件中使用:
  5、数据传输安全
  1。使用HTTPS协议
  HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。可以说是非常基础的安全防护级别了。
  2。Android网络安全性配置
  该特性让应用可以在一个安全的声明性配置文件中灵活的自定义其网络安全设置,而无需修改应用代码,满足更高的安全性要求。
  在AndroidManifest。xml中配置
  以PEM或DER格式将自签署或非公共CA证书添加到resrawmyca。这让我回想起年前听到渗透测试结果时的恐惧,好家伙,自己装了个证书。。。
  这部分更多细节、功能请参考官方文档网络安全配置
  https:developer。android。comtrainingarticlessecurityconfig。html?hlzhcn6、其他安全问题
  1。日志输出
  日志是我们开发调试中不可或缺的一部分,但也是最容易泄露敏感信息的地方。所以,在我们发布应用时,应当关闭、甚至移除Log输出。
  2。混淆、加固
  混淆代码,可以增加反编译破解的难度。但是我们在使用混淆功能时也要注意实体类、与JS交互的方法、第三方混淆配置等问题。
  应用加固也是近年来比较热门的应用安全解决方案,各大厂商都有自己的加固方案,常见的如腾讯乐固、360加固等等。
  3。漏洞检测工具
  当项目代码量庞大以后,积累了较多的历史代码,人工检测代码工作量大。这时,漏洞检查工具就派上用场了。中文的漏洞检测工具中比较有名的就是360的FireLine。

日媒中企借电动汽车逆袭而来新华社北京11月28日电《参考消息》日前刊登源自《日本经济新闻》网站的报道《中企凭借电动汽车实现逆袭》。报道摘要如下:9月底,中国新兴电动汽车企业蔚来汽车开始在挪威发售最……亲爱的自己刘洋人设及结局介绍近段时间以来,电视剧《亲爱的自己》正在热播当中,剧中刘洋这个角色备受观众的吐槽,被称作是比ldquo;许幻山rdquo;更渣的男人,刘洋在剧中的人设是什么样的呢?刘洋在剧中的结……高分经典恐怖片这6部好看的恐怖片太过瘾对于恐怖片爱好者来说,电影越恐怖越刺激,越能令这些影迷兴奋,本篇高分经典恐怖片推荐,6部恐怖鬼片看到你头皮发麻还过瘾,超级看看,胆小者甚看!恐怖片推荐第1部:《小丑回魂》……去移动营业厅改套餐从高到低改能难为死你,有同感的吗?是的,我们同样有这样经历。因为移动公司的人都希望你一直用,让他们有好的业绩。改套餐最好的方法就是打10086改,10086不改直接打10080投诉。在营业厅哪些营业厅员为难你或……泰国必看恐怖片胆小勿进哦泰国必看恐怖片:胆小勿进哦作为恐怖电影的忠实一族,可是千万不能错过泰国恐怖片的,任何一部泰国恐怖片都不会是单纯的闹鬼,而在恐怖的背后都有一个感人或者美丽的故事,感性又不血……双世宠妃最后结局是什么,双世宠妃原著小说结局穿越剧《双世宠妃》给讲述现代穿越到东岳国的尚书千金曲小檀,没有多久她邂逅东岳国万人瞩目的八王爷墨连城,随后他们之间产生一波三折走到一起,不过原著小说墨连城和曲檀儿没有走到一起,……东宫结局是什么样的,东宫结局小枫到底死了没有古装剧《东宫》给带来西州国的九公主曲小枫走上中原之路,却她意外跟豊朝太子李承鄞产生恋情,不过发展结局有着悲伤的效果,特别进行最后小枫死后,让众多观众感到有着悲伤的情况。1……二十不惑梁爽被小三手撕渣男太酷炫哭戏引网友点赞近日,电视剧《二十不惑》可谓是一部十分火爆的剧,这部剧当中关晓彤饰演的梁爽颇受关注,目前剧中当中梁爽被小三了,之后手撕渣男实在是太酷炫了,迷失爱情哭戏演技爆表,引网友点赞,一起……杰森斯坦森演过的电影精彩推荐杰森斯坦森经典电影27部杰森斯坦森演过的电影,杰森斯坦森的经典动作电影盘点。对于杰森斯坦森喜欢动作片的人应该不会陌生,那么杰森斯坦森的电影又看过哪些呢?下面推荐杰森斯坦森经典电影27部,来看看吧!……鹤唳华亭卢世瑜为什么自杀卢世瑜最后结局是什么电视剧《鹤唳华亭》最新更新的剧情当中,卢世瑜下线了,卢世瑜为什么要自杀呢?在这部电视剧当中卢世瑜最后的结局是什么呢?一起来了解一下。鹤唳华亭卢世瑜为什么自杀电视剧《……腾讯总裁刘炽平首度回应裁员传闻预计2022年人员仍会增长于蒙蒙中国证券报中证网中证网讯(记者于蒙蒙)近期腾讯传出大规模裁员传闻,有消息称腾讯对外招聘计划正在紧缩,部分事业群开启优化。3月23日,腾讯公司总裁刘炽平对传闻首度回应……琉璃美人煞大结局发生的剧情,琉璃美人煞结局之中罗喉计仙侠剧《琉璃美人煞》给带来天生六识残缺的少女褚璇玑和离泽宫弟子禹司凤在面临爱情,还有前世阴谋的双重压力下,他们携手对抗百般腥风血雨给缔造仙侠传奇色彩,最终璇玑与司凤走到一起,而……
91十条新能源汽车行业的每日必读简报(210226)1。华为计划与长安汽车、北汽蓝谷合作推出自有品牌电动汽车,华为秒回应:不造。2。丰田今年1月全球售出新车765514辆,同比增长4。6,连续5个月增加,创1月份历史记录。……仅仅只有核桃大小的65W充电头你见过吗?作为一名经常和好友出门聚会的数码爱好者,在每次出门前我总是会等手机的电量充满然后再出门。虽然说我所用的手机续航也都还不错,但是难免会遇到意外呀。这不,就在一次和好友聚会的时候手……续航成迷GalaxyFold2将配备两块独立电池,总容量43三星第二代可折叠的智能手机平板双平台手机GalaxyFold2,将采用与一代GalaxyFold类似的电池配置。第二代产品将搭载两块独立的电池,总容量为4365mAh,低于一代……2020折叠屏大爆发,TCL可三折的折叠手机正式亮相近日,TCL通讯在线上发布了两款折叠屏概念机,分别是云卷屏概念机和三折叠屏概念机,这两款折叠屏概念机引起了网友的关注。事实上,其实这款手机在去年的MWC2019展会上就已经亮相……唯美泡泡机,氛围夕阳灯,迷你USB风扇产品名称:泡泡机产品参数:电能规格车充墙充充电宝OUTPUT:DC5V,2A,TypeCUSB工作电流1A(1档)1。5A(2档)。1。8A(堵转保护)最大工作电流2A电……矿视界之科普入门三分钟快速了解数字货币分叉的那些事!在上一篇的文章中(戳戳),子番跟大家介绍了硬分叉和软分叉。最后提到围绕着区块链网络的硬分叉发生了许多的故事,这就是今天子番要跟大家说的,分叉币的起源比特币网络时常拥堵诞生……智能操控颜值全面升级,传祺GS4PLUS再续系列百万神话随着家用汽车的普及,SUV以其全能的居家定位成为了最受中国用户欢迎的车型之一。其中,传祺GS4尤以出色的产品力收获了中国车友的肯定,成为了最快突破百万销量的中国品牌SUV。如今……三防经典机AGMM6,经典却又不一般手机作为新时代的产品,它主要的功能无非就是打电话以及发信息。那么随着时代的快速发展,手机的功能以及性能也越来越强,但是带来的负面效应就是手机的功能越来越多,手机的基本功能却被弱……2021年前端应该使用什么打包构建工具不知不觉时间已经来到了2021年,如果是在前几年,你问我应该用什么打包工具,那么我会毫不犹豫地推荐你使用webpack,因为那个时候webpack非常成熟,有着非常丰富的插件,……大众再添新势力,品质乐趣纯电跨界车ID。3上市,售价15。9文岸青10月22日,上汽大众ID。3以线上直播的方式正式上市,新车定位品质乐趣纯电跨界车,集潮趣、智趣、驾趣为一身,成为年轻人追求个性化的新选择。此次共推出纯净版、……滕Gallery我的iPadPro10。5有哪些应用十年前,苹果在手机和笔记本电脑之间开发了一个新的产品iPad,如今十年过去了,在这十年间iPad不断地推陈出新。产品系列也从iPad细分为iPad、iPadMini、iP……木北护肤造型带你深入了解卷发显老多种原因更好选择适合自身发型秋高气爽,天气日渐凉爽,又到了烫卷发的季节,卷发出色的蓬松感与其丰富的纹理,是很多女生对其爱不释手的原因之一,木北造型点出今年较为流行的卷发网红款,云朵卷,木马卷、气垫卷、羊毛……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网