2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:031860

评论

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

简单组合逻辑电路

芯动大师

Verilog LED数码管 11月月更

OpenSergo 流量路由:从场景到标准化的探索

阿里巴巴云原生

阿里云 微服务 云原生

Baklib|SaaS产品,实现企业流程数字化

Baklib

SaaS

IM即时通讯私有化部署,WorkPlus助力企业构建安全办公环境

BeeWorks

算法题学习---两个链表的第一个公共结点

桑榆

算法题 11月月更

数据指标体系搭建步骤

穿过生命散发芬芳

11月月更 数据指标体系

基于Jmeter的百万级tps性能测试实践

环信

Jmeter 性能测试

教学:制作 GitHub 同步近期博客卡片

小鑫同学

前端 Github' 11月月更

分布式系统设计之常见的负载均衡算法

闫同学

负载均衡 11月月更 分布式系统设计

Go易错集锦、优秀开源包、实战案例合集

Go学堂

Go 内容合集 签约计划第二季 技术专题合集

裁员潮血洗硅谷是坏事还是好事

HoneyMoose

有趣的 Go HttpClient 超时机制

捉虫大师

Go HTTP 11月月更

一个程序员眼中的裁员潮

HoneyMoose

【愚公系列】2022年11月 微信小程序-app.json配置属性之requiredBackgroundModes

愚公搬代码

11月月更

官宣|Apache Flink 1.16 发布公告

Apache Flink

IM开源项目OpenIM部署文档-从准备工作到nginx配置

Geek_1ef48b

web前端面试技巧-如何自我介绍?如何应对hr?

肥晨

前端面试 面试技巧 11月月更

如何在SpringBoot项目中,实现记录用户登录的IP地址及归属地信息?

wljslmz

日志 IP springboot 登录 11月月更

网络安全之命令执行漏洞复现

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

当前API安全产品现状

阿泽🧸

API 11月月更

Docker Compose快速部署多容器服务实战

闫同学

Docker 容器 11月月更

JS in CSS:一键支持响应式布局

iofod jude

前端 后端 低代码 iofod

【LeetCode】数组元素积的符号Java题解

Albert

算法 LeetCode 11月月更

Baklib|信息管理和知识管理是如何影响你的业务的?

Baklib

知识管理

Baklib|我的企业是不是需要一个维基页面呢?

Baklib

维基

组织赋能,统一企业门户实现高效化、移动化协作

BeeWorks

漫画|微信群聊的程序员们

肥晨

程序员生活 11月月更 程序员漫画

Pytorch实现经典模型AlexNet模型

Studying_swz

深度学习 11月月更

2022-11-15:这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings , 表中第 i 条预订记录 bookings[i] = [firsti, lasti,

福大大架构师每日一题

算法 rust 福大大

更快更稳更易用: Flink 自适应批处理能力演进

Apache Flink

大数据 flink

数据分析er看过来,五款工具有你需要的

葡萄城技术团队

数据分析 前端 数据可视化

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