从Web到Windows 8:JavaScript 安全性

多年前,我认为学习如何打高尔夫是个不错的想法。我在注册学习本地一些驾驶培训课程前,从未加入过高尔夫俱乐部。在我 的第一堂课中,教师问我是否学习过同类课程或打过高尔夫。我告诉他没有时,他说:“很好!我们将不必担心一些阻碍您进步 的旧习惯了。”

Web 开发人员从浏览器过渡到 Windows 应用商店应用程序时会沿袭一些固有习惯。尽管 Web 开发人员可 以利用现有的 JavaScript 知识,但由于新增了一些功能,因此需要转变思维方式。安全性就是这样一个有根本差异的功能。很 多 Web 开发人员习惯将应用程序的安全性转交给服务器实现,他们给出诸如以下的理由:“何必麻烦呢?我们可以很轻松地绕过 JavaScript。”在 Web 客户端,安全功能仅被视为提高可用性的方法,无法增强 Web 应用程序的总体安全性。

使用 Windows 8,JavaScript 通过提供保护数据、验证输入和分隔潜在恶意内容所需的工具,在确保您应用程序的总体安全性方面发 挥重要作用。在本文中,我将向您介绍如何改变在 Web 开发过程中养成的一些习惯,以便使用 HTML5、JavaScript 和 Windows 运行时的安全功能生成更安全的 Windows 应用商店应用程序。

输入验证

Web 开发人员说:JavaScript 验证只 用于改进使用性能,而不会增强应用程序的安全性。

Windows 8 开发人员说:使用 HTML5 和 JavaScript 进行验证是您 防止恶意内容进入应用程序的第一道防线。

对于传统 Web 应用程序来说,JavaScript 通常只是服务器的网关。所有对数 据的重要操作(如输入验证和存储)都在服务器上进行。恶意攻击者可以在自己的浏览器上禁用 JavaScript 或直接提交精心设 计的 HTTP 请求来绕过所有客户端保护机制。在 Windows 应用商店应用程序中,开发人员在对数据进行操作前不能依赖服务器来 清理用户输入,因为没有服务器。要进行输入验证只能依靠 JavaScript 和 HTML5。

在软件安全性方面,输入验证是确保 数据完整性的重要一环。没有它,攻击者就可以将每个输入字段作为可能攻击 Windows 应用商店应用程序的攻击矢量。在《编写 安全的代码》第二版 (Microsoft Press, 2003) 中,作者 Michael Howard 和 Steve Lipner 提到: “所有输入在得到证明之 前都是不可信的,”这已成为有关管理输入的名言。

您不应信任任何数据,直到证明它符合“已知有用”数据的规范。构 建应用程序时,开发人员知道来自特定字段的数据应像什么(即允许列表),或至少知道它不应该包含什么(即拒绝列表)。进 行输入验证时,尽可能始终使用允许列表以将输入限制为已知的有用数据。通过只允许已知良好的数据,可降低缺少表述错误数 据的新方式或未知方式的可能性。

限制、拒绝和净化

开发人员如何通过将输入限制为已知的有用数据来降低带 给用户的风险?他们使用图 1 中所示的三个输入验证阶段来降低恶意内容进入其应用程序的风险。

图 1 输入验证(图像 基于第 4 章“提高 Web 应用程序安全性: 威胁与对策”中的“安全 Web 应用程序的设计指南”的图 4.4,网址为: bit.ly/emYI5A)

时间: 2024-12-31 00:31:53

从Web到Windows 8:JavaScript 安全性的相关文章

Windows 8.1安全性提升 是否升级应视设备而定

微软10月17日发布了其最新的电脑操作系统--Windows 8.1正式版.该版本号称拥有多达800项的更新,在业界引起广泛讨论.但仅就其在安全性上的提升来看,Windows 8.1值得用户们的升级吗?美国科技网站11月28日发表文章,为广大用户分析了这一问题. Windows 8.1较Windows 8在安全性上有所提升 Windows 8.1的改进包括更好的验证.更强的加密.远程擦除.提高恶意软件检测和增强的数据保护功能,所有这些都使其软件漏洞被利用的难度加大.但这并不意味着所有的用户都应该

Windows XP操作系统安全性

微软曾经夸耀说:"用Windows XP的用户将不再需要为网络访问安全担心", 可见Windows XP为NT内核型的操作系统,其功能比任何一个Windows 系统都强,但也出现不少令人担忧的问题. 下面,我们来看看 Windows XP 的安全性究竟如何,先看它的优越之处: 安全 一.完善的用户管理功能 Windows XP采用Windows 2000/NT的内核,在用户管理上非常安全.凡是增加的用户都可以在登录的时候看到,不像Windows 2000那样,被黑客增加了一个管理员组的

[译] 写给“老派” Web 开发者的“现代” JavaScript 指南

本文讲的是[译] 写给"老派" Web 开发者的"现代" JavaScript 指南, 用 JavaScript 学习 JavaScript.图片来自 learnyounode. 有这样一种守旧的后端 web 开发者,他们很久以前就掌握了诸如 Perl .Python.PHP 或 Java Server Pages 一类的东西,甚至还掌握了 Rails 或者 Django.他们使用巨大的关系型数据库构建 JSON API 服务,呃甚至是 XML. 他是个后端开发者,

MDN Web 技术文档 - JavaScript Strict mode

MDN Web 技术文档 - JavaScript Strict mode 在 JavaScript 1.8.5 引入         ECMAScript 5的严格模式是Javascript中的一种限制性更强的变种方式.严格模式不是一个子集:它在语义上与正常代码有着特意的差异.不支持严格模式的浏览器与同支持严格模式的浏览器行为上也不一样, 所以不要在未经严格模式特性测试情况下使用严格模式.严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加入严格模式.         严格模式在语义上与正

Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API

原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Win8.Win8 Store App可以直接支持javascript编写App,除了Bing,还没有发现用于Win8 Javascript项目上的sdk.   新建一个空白的Win8 Store Javascript 项目,分别添加map.html.map.js.map.css三个文件. 使用谷歌地图

《JavaScript入门经典(第6版)》——第2章 创建简单的脚本2.1 在Web页面里添加JavaScript

第2章 创建简单的脚本 JavaScript入门经典(第6版)本章主要内容包括: 在Web页面里添加JavaScript的各种方式JavaScript语句的基本语法声明和使用变量使用算术操作符代码的注释捕获鼠标事件第1章介绍了JavaScript是一种能够让Web页面更具有交互性的脚本语言. 本章将介绍如何向Web页面添加JavaScript,以及编写JavaScript程序的一些基本语法,比如语句.变量.操作符和注释.同时,本章将涉及更加实用的脚本范例. 2.1 在Web页面里添加JavaSc

通过关闭10种服务 提高Windows XP系统安全性的图文教程_安全设置

提高系统安全性涉及到许多方面,其中重要的一步是关闭不必要的服务.虽然微软的Windows XP不是网络操作系统,但默认情况下它拥有的不少服务是打开的.对于一位清醒的微软用户而言,关闭一些不需要的服务是一个保障安全性的重要方面. 当然,每一个Windows版本都提供了不同的服务,因此,为安全目的而在一种系统中禁用的服务可能仅适用于一个特定版本.因此本文所讨论的服务列表可能仅适用于XP的特定版本.不过,本文所讨论的内容却可以为用户检查其它系统上的服务提供指南. 1.IIS:微软的互联网信息服务(II

HTML5 Web Worker 中的 JavaScript多线程讲解

JavaScript单线程 JavaScript这门语言运行在浏览器中,是以单线程的方式运行的.说到单线程,就得从操作系统进程开始说起.进程和线程都是操作系统的概念.进程是应用程序的执行实例,每一个进程都是由私有的虚拟地址空间.代码.数据和其它系统资源所组成;进程在运行过程中能够申请创建和使用系统资源(如独立的内存区域等),这些资源也会随着进程的终止而被销毁.而线程则是进程内的一个独立执行单元,在不同的线程之间是可以共享进程资源的,所以在多线程的情况下,需要特别注意对临界资源的访问控制.在系统创

Windows Azure数据安全性实施的做法

希望将应用程序部署到 Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure 的企业客户(实际上是所有客户)最为关心的就是其数据的安全性.释放磁盘空间并将其重新分配给其他客户时,要确保新的所有者无法读取释放空间后磁盘上原来的数据,在数据保护中这一点有时会被忽视.一个极端的例子是,废弃处理从数据中心移除的驱动器或在其他任务中再次利用.释放之前先使用零或其他模式覆盖释放的空间,是确保这一点最简单的方式.这种覆盖可能会大