Windows Phone 7平台的安全

来源:转载

和Windows Mobile开发平台不同,来自微软的新Windows Phone平台和它的前辈完全不一样,WindowsPhone平台应用程序开发人员应该知道围绕该平台的安全模型,以开发复合指导原则的应用程序。

安全模型

Windows Phone使用了一个资源功能驱动模型,GPS、相机、麦克风、SMS或传感器都可能是资源功能的一个例子,但它们现在都存在隐私和安全问题。

由于隐私和安全问题,用户必须知道如何使用上面提到的那些资源。

所有Windows Phone应用程序项目都在应用程序清单文件WMAppManifest.xml中声明应用程序想要的功能,这个文件位于解决方案文件的属性节点下,如下图所示。

 

▲图 1 解决方案资源管理器

默认情况下,WMAppManifest.xml的内容如下:

以下是代码片段:

<?xml version="1.0" encoding="utf-8"?> 

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0"> 
<App xmlns="" ProductID="{d6527e1c-159b-49c4-9fb3-c75a5bff222f}" 
Title="WindowsPhoneSecurityDemo" RuntimeType="Silverlight" 
Version="1.0.0.0" Genre="apps.normal" Author="WindowsPhoneSecurityDemo 
author" Description="Sample description" Publisher="WindowsPhoneSecurityDemo"> 
<IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath> 
<Capabilities> 
<Capability Name="ID_CAP_GAMERSERVICES"/> 
<Capability Name="ID_CAP_IDENTITY_DEVICE"/> 
<Capability Name="ID_CAP_IDENTITY_USER"/> 
<Capability Name="ID_CAP_LOCATION"/> 
<Capability Name="ID_CAP_MEDIALIB"/> 
<Capability Name="ID_CAP_MICROPHONE"/> 
<Capability Name="ID_CAP_NETWORKING"/> 
<Capability Name="ID_CAP_PHONEDIALER"/> 
<Capability Name="ID_CAP_PUSH_NOTIFICATION"/> 
<Capability Name="ID_CAP_SENSORS"/> 
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/> 
</Capabilities> 
<Tasks> 
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/> 
</Tasks> 
<Tokens> 
<PrimaryToken TokenID="WindowsPhoneSecurityDemoToken" TaskName="_default"> 
<TemplateType5> 
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI> 
<Count>0</Count> 
<Title>WindowsPhoneSecurityDemo</Title> 
</TemplateType5> 
</PrimaryToken> 
</Tokens> 
</App> 
</Deployment>

我们可以看到,默认情况下,应用程序声明了以下的功能。

 

功能 ID功能描述

ID_CAP_GAMERSERVICES访问Xbox Live玩家服务

ID_CAP_IDENTITY_DEVICE访问IMEI,设备电话号码

ID_CAP_IDENTITY_USER访问用户信息

ID_CAP_LOCATION访问用户的位置

ID_CAP_MEDIALIB访问媒体库

ID_CAP_MICROPHONE访问设备麦克风

ID_CAP_NETWORKING访问网络服务,只有当用户为漫游付费才会开启

ID_CAP_PHONEDIALER访问拨打电话的功能

ID_CAP_PUSH_NOTIFICATION访问从互联网服务推送的通知

ID_CAP_SENSORS访问设备传感器

ID_CAP_WEBBROWSERCOMPONENT访问浏览器组件

因为是默认情况,所有功能都被声明了,就这样让应用程序进入市场是不理想的,因此,应用程序开发人员需要移除应用程序不需要的功能。

如果你不声明某个功能,但又在应用程序中使用了它,当应用程序尝试使用该功能时会崩溃,产生UnauthorizedAccessException异常。

功能检测工具

Windows Phone SDK(使用1月份更新的版本)附带了一个有用的工具,它可以深入代码内部,确定应用程序需要哪个功能,以便应用程序清单文件只需要声明需要的功能,而不是每个可用的功能。

功能检测工具位于“%ProgramFiles (x86)%/Microsoft SDKs/Windows Phone/v7.0/Tools/CapDetect”文件夹下,文件名叫做“CapabilityDetection.exe”。

这个工具的语法如下:

CapabilityDetection.exe Rules.xml PathtoXAPFile

它会列出应用程序需要的功能,然后你可以更新项目的WMAppManifest.xml文件,只包括这个工具列出的功能。


分享给朋友:
您可能感兴趣的文章:
随机阅读: