写点什么

Windows 应用商店中应用的安全

  • 2012-12-06
  • 本文字数:1307 字

    阅读完需:约 4 分钟

在过去,有一个设想,仅仅流行的应用和服务才会被攻击。但是最近,即使是很少人用甚至无人问津服务,也很容易地受到黑客的仔细研究。在最近一次的 Microsoft Build 会议上, Josh Dunn 讨论了一些在 Windows 8 应用中发现的常见漏洞。

避免乐观的错误

Windows 8 应用中,一个主要的漏洞来自不正确的使用 MSApp 类的 execUnsafeLocalFunction 方法。该功能在应用中禁止了脚本注入验证的规则,使应用与展现客户信息的网站面对相同的漏洞。

当结合了过度的应用许可后,脚本注入是特别让人不愉快的事情。例如:假设某个应用具有访问用户图片库的能力。一旦黑客注入了脚本,那么,脚本也同样具有获取访问该图片库的权限。

虽然看上去是显而易见的,但是 eval 函数却是另一个能够将漏洞引入到应用中的危险功能。所以,一般情况下,微软劝告开发者,避免在程序中使用 eval 函数和带有 unsafe 关键字的功能代码。

使用 javascript 库时,需要特别当心。浏览器中使用安全的库,在 windows 8 应用中使用,却不一定是安全的。 WinJS 推荐使用 WinJS,因为 microsoft 将它特别设计为 “缺省安全的”。我们假设,随着时间的推移其它库将都采纳这一做法。

另一个减少问题的方式是减少应用可注册的能力。在许多情况下,应用实际上不需要使用一些能力。比如:应用无需使用“Documents”(Windows.UI.Xaml.Documents)组件加载并保存文档,当你仅仅使用它,在应用中为了一个特殊的文件类型将要扫描库时。

一个于此相关的问题是对文件扩展名的不必要的注册,一个常见的错误是,因为应用将一些数据存储在文本文件中,就将此应用注册成文本文件处理器。这导致的结果是,每当打开一个文本文件时,该应用就会被放进可启动的应用程序列表之中。这里的区别是“使用”文本文件和“处理”文本文件的能力。

其他开发者可能误开启的能力,如企业认证和共享用户证书。企业认证应当仅在企业内部应用访问域资源时使用。它使应用代表用户。共享用户证书是针对硬件证书和智能卡的。

处理客户数据的责任

当向用户请求数据时,,重要的是从一开始就要建立信任关系。一部分是要确切地告诉用户,要收集什么样的数据,为什么要收集,用户如何退出正在进行的数据收集。应用程序应尽可能在无需私人身份信息的情况下工作。

在传输私人身份信息(PII)时,总是使用安全的连接。若允许信息以非加密的方式显现在 URL 中,就会导致许多问题。或者,更好的做法是,避免收集个人信息,比如序列号和 IP 地址。

规避这一问题的一种方式是使用 GetPackageSpecificToken 方法。该令牌对于每一个应用 / 硬件对是唯一的,它可使你的应用在不使用任何个人身份信息的情况下识别给定的设备。不好的方面是,当多个应用一起工作时,它们需要一种将各自的令牌连接起来的方法。

当使用用户名口令模式工作时,要设法确保将它们存储在安全凭证存储器中 ( Windows.Security.Credentials ) 中,而不是文件或者应用环境中。

查看英文原文 http://www.infoq.com/news/2012/10/Win8-App-Security


感谢马国耀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-12-06 08:031432

评论

发布
暂无评论
发现更多内容

《数据安全与流通:技术、架构与实践》新书发布

星环科技

第19期 | GPTSecurity周报

云起无垠

Navicat Premium 15 for Mac(数据库开发工具)修复密码保存问题 v15.0.30中文激活版

mac

数据库开发工具 苹果mac Windows软件 Navicat Premium 15

行云创新加入深圳市人工智能行业协会

行云创新

AI编程 人工智能协会 行云创新加入人工智能协会 云原生+AI 云端IDE+大模型

微服务之负载均衡使用场景

互联网工科生

负载均衡 微服务

KaiwuDB 获山东省工信厅“信息化应用创新优秀解决方案”奖

KaiwuDB

最新体育赛事视频直播系统开发解决方案,提高用户黏性

软件开发-梦幻运营部

权重修改与预训练模型的应用

百度开发者中心

人工智能 大模型

如何构建适合自己的DevOps软件测试改进方案

DevOps和数字孪生

DevOps 软件测试 仿真建模

全网最详细4W字Flink全面解析与实践(下)

Java随想录

Java 大数据 flink

用 Milvus 和 NVIDIA Merlin 搭建高效推荐系统

Zilliz

nvidia Milvus Zilliz 向量数据库

EasyDL平台的强大开发力量

百度开发者中心

大模型 #人工智能

证券开源领航者!国金证券通过中国信通院可信开源治理“先进级”评估

新消费日报

大模型时代的人工智能+大数据平台,加速创新涌现

阿里云大数据AI技术

人工智能

如何优雅的开发?低代码搭建应用如此轻松

互联网工科生

软件开发 低代码平台 JNPF

Privatus for Mac(网页缓存清理) 6.6.2永久激活版

mac

苹果mac Windows软件 Privatus 网页缓存清理软件

CAEE2023 | 造物云×华为云共建电子电路智慧云工厂,引领产业创新发展浪潮

Geek_2d6073

文心一言 VS 讯飞星火 VS chatgpt (125)-- 算法导论10.6 6题

福大大架构师每日一题

福大大架构师每日一题

星环科技分布式向量数据库Transwarp Hippo正式发布,拓展大语言模型时间和空间维度

星环科技

史上最短苹果发布会;三星、LG、高通联手进军 XR 市场丨 RTE 开发者日报 Vol.74

声网

API商品数据接口调用实战

Noah

打造企业级门户,WorkPlus助您打造个性化与高效的企业通讯平台

WorkPlus

“敏捷教练进阶课程”12月2-3日 · A-CSM认证在线周末班【分时段模块化教学】CST导师亲授

ShineScrum

KaiwuDB 联合信通院数据库应用创新实验室召开数据库技术研讨沙龙

KaiwuDB

短视频不仅带火了直播/PK,也带着RTC走进了军备竞赛

X2Rtc

音视频 短视频 RTC

golang结构体内存对齐

fm

华为云GaussDB城市沙龙活动走进安徽,助力金融行业数字化转型

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

酷克数据出席永洪科技用户大会 携手驱动商业智能升级

酷克数据HashData

NFTScan 发展成为 PlatON 网络最大验证者节点之一

NFT Research

NFT NFT\ NFTScan

TDengine 受邀参加 CNCC 2023,大会现场展位前“人山人海”!

TDengine

tdengine 时序数据库

大模型训练中的AI合成数据应用

百度开发者中心

大模型 人工智能「 LLM

Windows应用商店中应用的安全_语言 & 开发_Jonathan Allen_InfoQ精选文章