用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf

上传人:r7 文档编号:177351 上传时间:2018-01-31 格式:PDF 页数:17 大小:661.17KB
返回 下载 相关 举报
摘要
申请专利号:

CN201280047964.0

申请日:

2012.10.01

公开号:

CN104137079A

公开日:

2014.11.05

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 11/36申请公布日:20141105|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

纽曼无限公司

发明人:

M·A·纽曼

地址:

美国加利福尼亚州

优先权:

2011.09.30 US 61/541,481

专利代理机构:

永新专利商标代理有限公司 72002

代理人:

张晰;王英

PDF下载: PDF下载
内容摘要

本文公开了一种保护JavaScript源代码的系统、相关方法和其他手段。电路被配置为确定在客户端设备上的调试控制台是否是活动的,并且如果调试控制台是活动的则拒绝对JavaScript的访问。另外或可选地,电路接收来自客户端设备对JavaScript源代码访问的请求,并且确定该请求是否来自可信引用者。当该请求来自不可信引用者时,电路能够拒绝对JavaScript的访问。当请求来自可信引用者时,电路能够授权访问JavaScript。

权利要求书

1.  一种保护JavaScript的方法,包括:
用网络处理器确定在客户端设备上的调试控制台是否是活动的;
响应于确定在所述客户端设备上的所述调试控制台不是活动的,进一步评估是否授权对JavaScript的访问;
接收来自所述客户端设备的对JavaScript的访问请求;
确定所述客户端设备是否与至少一个可信引用者相关联;并且
响应于确定所述请求是经由可信引用者接收的,而提供对JavaScript的访问。

2.
  根据权利要求1所述的方法,其中确定在所述客户端设备上的所述调试控制台是否是活动的包括:轮询所述客户端设备。

3.
  根据权利要求2所述的方法,其中轮询所述客户端设备是间歇性执行的。

4.
  根据权利要求1所述的方法,还包括:随后响应于确定在所述客户端设备上的所述调试控制台是活动的,来拒绝对JavaScript的访问。

5.
  根据权利要求4所述的方法,其中拒绝对JavaScript的访问包括:代替JavaScript的源代码发送错误消息给所述客户端设备。

6.
  根据权利要求1所述的方法,还包括:
接收访问JavaScript的第二请求;以及
当经由不可信引用者接收所述第二请求时,响应于所述第二请求来拒绝对JavaScript的源代码的访问。

7.
  根据权利要求1所述的方法,其中确定所述客户端设备是否与可信引用者相关联还包括:访问一个或多个数据库中的一个或多个可信引用者 的列表。

8.
  根据权利要求7所述的方法,其中:
解析所述请求并从引用者字段提取数据;并且
确定所述请求是否是经由所述可信引用者接收的包括:比较引用者字段中的数据和一个或多个可信引用者的列表。

9.
  根据权利要求1所述的方法,还包括:存储调试控制台状态,当检测到调试设备时,所述调试控制台状态拒绝对由JavaScript提供的服务的访问。

10.
  根据权利要求1所述的方法,其中Javascript由与网络处理器分离的服务器提供。

11.
  一种包含非瞬态计算机可读存储介质和存储于其中的计算机程序指令的计算机程序产品,所述计算机程序指令包括被配置为执行权利要求1-10中任一项所述的方法的程序指令。

12.
  一种保护Javascript的系统,包括:
电路,其配置为:
用网络处理器确定在客户端设备上的调试控制台是否是活动的;
响应于确定在所述客户端设备上的所述调试控制台不是活动的,进一步评估是否授权对JavaScript的访问;
接收来自所述客户端设备的对JavaScript的访问请求;
确定所述客户端设备是否与至少一个可信引用者相关联;并且
响应于确定所述请求是经由可信引用者接收的,而提供对JavaScript的访问。

13.
  根据权利要求12所述的系统,其中所述电路还配置:确定在所述客户端设备上的所述调试控制台是否是活动的包括轮询所述客户端设备。

14.
  根据权利要求13所述的系统,其中所述电路还配置为:间歇性轮询所述客户端设备。

15.
  根据权利要求12所述的系统,其中电路配置为:随后响应于确定在所述客户端设备上的所述调试控制台是活动的,来拒绝对JavaScript的访问。

16.
  根据权利要求15所述的系统,其中拒绝对JavaScript的访问包括:所述电路配置为代替JavaScript的源代码发送错误消息给所述客户端设备。

17.
  根据权利要求12所述的系统,其中所述电路还配置为:
接收访问JavaScript的第二请求;以及
当经由不可信引用者接收所述第二请求时,响应于所述第二请求来拒绝对JavaScript的源代码的访问。

18.
  根据权利要求12所述的系统,其中确定所述客户端设备是否与可信引用者相关联还包括:所述电路配置为访问一个或多个数据库中的一个或多个可信引用者的列表。

19.
  根据权利要求12所述的系统,其中所述电路还配置为:
解析所述请求并从引用者字段提取数据;并且
确定所述请求是否是经由所述可信引用者接收的包括:比较引用者字段中的数据和一个或多个可信引用者的列表。

20.
  根据权利要求12所述的系统,其中所述电路还配置为存储调试控制台状态,当检测到调试设备时,所述调试控制台状态拒绝对由JavaScript提供的服务的访问。

21.
  根据权利要求12所述的系统,还包括配置为向与所述电路分离的 客户端设备提供JavaScript的服务器。

说明书

用于保护JavaScript的装置、方法和计算机可读存储介质
相关申请的交叉引用
本发明要求于2011年9月30日提交的美国专利临时申请61/541,481的权益和优先权。
技术领域
本发明的实施例一般涉及保护网站的JavaScript(例如源代码)。
背景技术
由于脚本语言作为大部分网络浏览器中的实现而主要在客户端侧解析,所以JavaScript是用于网站或网络服务的客户端的动态脚本语言。广为周知地,JavaScript作为稳定的、可访问的以及具有一系列格式化选项的广泛通用脚本语言,用在范围从游戏及社交网络到企业解决方案的交互式网络应用中。已经确定了用于保护JavaScript的领域。通过所施加的努力、创造和革新,已经实现了改善这种系统的解决方案,并且结合本发明的实施例对其进行描述。
发明内容
提供了一种系统、方法、存储在非瞬态存储介质的计算机可读程序代码以及其他手段,一般性地用于提高JavaScripts、源代码和/或经由网络远程访问的其它信息的安全性。更具体的,此处提供的实施例可以保护JavaScript(例如JavaScript源代码、部分源代码和/或由JavaScript提供的服务)。所述方法包括:确定(例如使用一个或多个网络处理器)客户端设备上的调试控制台是否是活动的;如果在客户端设备上的调试控制台是活动的则拒绝对JavaScript的访问;接收来自客户端设备对JavaScript的访问请求;确定请求是否是经由可信引用者接收的;并且如 果该请求不是从可信引用者接收的则拒绝访问JavaScript。
在一些实施例中,确定在客户端设备上的调试控制台是否是活动的包括轮询客户端设备。轮询客户端设备可间歇性地和/或以预定轮询间隔执行。
在一些实施例中,访问JavaScript的请求可以经由网络协议(例如超文本传输协议(HTTP),超文本传输协议安全(HTTPS),SPDY,传输控制协议和/或因特网协议(TCP/IP)等)接收。请求可以包括引用者字段(例如HTTP的“引用者”字段)。确定请求是否来自可信引用者还包括:将引用者字段中的数据与一个或多个可信引用者的列表进行比较。因此,所述方法还包括访问一个或多个数据库中的一个或多个可信引用者的列表。
在一些实施例中,拒绝对JavaScript访问包括发送错误消息给客户端设备。可选地和/或另外,拒绝对JavaScript的访问包括拒绝访问由JavaScript提供的服务和/或JavaScript的源代码。
在一些实施例中,所述方法还包括存储调试控制台状态,当检测到调试设备时,所述状态拒绝访问由JavaScript提供的服务。
在一些实施例中,JavaScript可以由与保护JavaScript的网络处理器分离的服务器提供。
一些实施例包括装置和/或系统,其配置为实现所述方法和/或本文所讨论的其它功能。换句话说,装置包括一个或多个处理器和/或其他机器部件,其配置为基于存储在存储器和/或其它非暂态计算机可读介质中的指令和/或其他数据来实现此处所讨论的功能。
以下描述这些特性以及其它特征、功能和本发明的细节。类似地,以下还将描述相应及其它实施例。
附图说明
用通常术语描述了本发明的实施例后,现在参考附图,附图不必须按照比例绘制,并且其中:
图1是根据一些实施例配置的系统的示意框图;
图2是根据一些实施例配置的装置的示意框图;
图3A和3B示出了根据一些实施例执行的示例方法的流程图;
图4显示了根据一些实施例的示例查看源显示;
图5显示了根据一些实施例的示例错误页面。
具体实施方式
现在参考附图在后文更全面地描述本发明的实施例,其中显示了本发明的一些但不是全部的实施例。事实上,本发明的实施例可以很多不同的形式实现,并且不应当被解释为限于此处所提出的实施例;而是,提供这些实施例以使得本公开满足可应用的法定要求。整篇中相同的数字代表相同的元件。
如此处所用的术语“数据”、“内容”、“信息”以及类似的术语可互相交换使用,指的是根据不同的示例性实施例而能够被捕获、发送、接收、显示和/或存储的数据。这样,使用任何这样的术语都不应当被认为限制了本公开的精神和范围。另外,当此处描述了计算设备用于接收来自另一计算设备的数据时,应当理解为从另一计算设备处直接接收数据或者经由一个或多个中间计算设备间接接收数据,例如像一个或多个服务器、中继、路由器、网络访问点、基站、和/或类似设备。类似地,当此处描述了计算设备用于向另一计算设备发送数据时,应当理解为直接向另一计算设备发送数据,或者可经由一个或多个中间计算设备间接发送数据,例如像一个或多个服务器、中继、路由器、网络访问点、基站、和/或类似设备。
此处所讨论的实施例可配置为使得网站提供者(例如零售商或其他在线服务提供者)能够在其他类型代码和/或当前公开可用信息中保护其JavaScript不被第三方可见,包括竞争对手、黑客、还原工程和/或任何其他非授权方和/或机器。
在引入可视化因特网之后不久,浏览器开发组就实现了简化客户端脚本语言的需求,以扩展SGML(标准通用标记语言)衍生的HTML(超文本标记语言)的限制,这引起脚本语言(包括JavaScript)的发展,其 允许直接访问文档对象模型(DOM)-一组定义网页元素作为编程对象的标准。
为了推进网络技术的发展,因特网最早的架构允许客户端侧浏览并共享源代码,可完全信赖并下载对于客户端机器的用户可视的脚本。因此,对可被插入到JavaScript中的任何适当算法的使用默认进入到公共域。为此,一些实施例提供了知识产权保护技术,其能够将专有JavaScript例如隐藏在Java包装程序中。
由于JavaScript给予编程者操纵和扩展DOM的能力,其被定义为因特网标准,因此JavaScript的功能作为面向原型对象的脚本语言对于编程框架中的开发者来说敞开了大门,例如Prototype和jQuery简化了HTML文档遍历、事件处理、启发式和异步交互。但是伴随着所有JavaScript快速发展的优势,带来了对在客户端网络浏览器中下载和缓存数据协议的知识产权保护的挑战。
目前,对JavaScript的知识产权保护措施(例如像那些阻止公众访问JavaScript)被限于仅仅用于意图妨碍或阻止黑客的模糊措施,以及主要作为代码优化工具而设计的缩小程序,知识产权保护是间接的第二效果。虽然这些机器实现方法足够阻止偶然的黑客或其它非授权用户,但是它们在调试过程还会出现问题,并且完全无法防御最低程度技术人员和确定的黑客在潜在大量金融投入反馈的促动下花时间投入到法相工程有价值代码中。
由于缺乏对鲁棒性JavaScript知识产权保护的方法,程序员被迫开放源JavaScript代码,以放置基本的有限的许可。虽然开放源库对于因特网的一般性进步是重要的,但是在编程团体中发展的开放文化相反进入到价值构建过程中,该过程主要基于对公司知识产权的保护和开发。从1982年到2002年,据报告称无形资产(包括商标、商号、和其它类型知识产权)从公司价值的40%上升到整体价值的整整75%。由于所有这些有效性,JavaScript去除了作为法律保护的专有资产的知识产权的概念,有效的否定了JavaScript开发者获取与创造价值的货币化相关联的潜在收益。
阻碍在保护JavaScript和其它无形知识产权中开发精力的障碍包括: 带宽和计算开销限制以及无法有效开发能够保护数据传送到客户的功能性内容传送网络架构。
此处讨论的一些实施例,例如像常被称为“Hide JS”的实施例,能够利用机器实现方法来提供简单且稳定的知识产权保护,所述方法使得将专有JavaScript隐藏在Java包装程序中,等等。一些实施例使得相关次要网络架构改变,并且能够通过在目标服务器上实例化Hide JS而由大部分网络工程师实现。
图1示出了得益于本发明的示例实施例的系统100(此处所用的“例子”,“示例性”及类似术语指的是“作为例子、示例或说明”)。系统100包括一个或多个客户端102、一个或多个服务器104、以及一个或多个数据库108。在一些实施例中,客户端102和/或服务器106可包括、包含或体现于一个或多个便携式或固定式的电子设备中,例如像一个或多个便携式媒介播放器、智能手机、便携式数字助理(PDA)、平板计算机、膝上型、桌上型计算机、服务器计算机或类似。客户端102配置为主要用作消费者设备,个人能够使用其来访问和/或建立网站等。服务器106配置为主要用作向客户端设备(例如客户端102)服务网站和/或其它信息的机器。
客户端102和服务器106可配置为以任意多种不同方式直接和/或间接地彼此通信,所述方式包括例如任意多种有线或无线通信或网络技术。这种技术的例子包括,但不限于通用串行总线(USB)、无线射频(RF)、蓝牙(BT)、红外(IrDA)、任意多种不同蜂窝(无线)通信技术,如像任何数量的2G、2.5G、3G、或4G通信技术、局域网(LAN)、无线LAN(WLAN)技术或类似。在一些实施例中,客户端102和服务器106可以被耦合并且配置为跨越一个或多个网络104进行通信。网络104包括一种或多种不同类型网络的任意数量的不同组合,包括数据和/或语音网络。例如,网络104可包括一个或多个数据网络,例如像LAN、城域网(MAN)和/或广域网(WAN)(例如因特网),并且包括一个或多个语音网络,例如像公用开关电话网络(PSTN)。虽然在图1中为了不必要的复杂性而没有显示,但是网络104可以包括一个或多个装置,例如像 一个或多个路由器、交换机等,以中继在客户端和服务器之间的数据、信号等。
一个或多个数据库108配置为与一个或多个服务器106通信。在这种情况下,一个或多个服务器106可包括数据库管理系统,其控制数据库108的创建、维护和使用。如以下详细讨论的,根据此处所描述的技术,用于保护JavaScript的网页内容和/或数据可以存储在数据库108中并可访问。
现在参考图2,其示出了示例装置200的框图,所述装置200可配置为操作或执行客户端102和/或服务器106的一项或多项功能。虽然在图1中示出的是分离的设备,但是在一些实施例中,装置200可同时支持客户端和服务器,两者逻辑分离但是都位于装置200中。装置200可以被配置为提供不同模块,例如被配置为执行此处所描述的一项或多项功能(例如图3A和3B中所示的方法300和330)。但是应当理解的是,装置200仅仅是例子,也可以采用其他结构来执行一项或多项类似功能。
如图2所示,装置200包括连接到存储器204的处理器202。存储器204可包括易失性和/或非易失性存储器,并且典型地存储内容、数据等。就此而言,存储器可存储一个或多个应用206、模块、指令、计算机可读程序代码部分或类似能被处理器202执行以实现本文描述的一项或多项功能。一个这种应用的例子是提供对JavaScript应用的保护,不限于此,在此处称作“Hide JS”。其他应用的例子包括一个或多个网络浏览器、生产率应用、游戏应用、实用程序等。
存储器204还配置为存储来自和/或接收自装置200的内容。如此出所描述的,每个应用可包括由装置200操作的模块。如此处所指,“模块”可由软件、固件、硬件或其任何组合来实现。
在一些实施例中,处理器202还连接到至少一个接口或其它用于显示、传送和/或接收数据、内容等的部件,例如根据USB、RF、BT、IrDA、WLAN、LAN、MAN、WAM(例如因特网)、PSTN技术或类似。对此,接口可包括至少一个通信接口208或其它用于传送和/或接收数据、内容等的部件。除了通信接口208,接口还可以包括至少一个用户接口,其包 括一个或多个耳机和/或扬声器、显示器210(其可包括任何被配置为向用户呈现视觉信息的合适的显示屏)、和/或用户输入接口212。用户输入接口212反过来可包括多个允许装置200从用户接收数据的设备中的一个或多个,例如像麦克风、键盘、触敏表面(与显示屏整合或分离)、游戏杆、鼠标、或其他输入设备。
如上所指,装置200还包括应用(例如应用206),由处理器202执行来实现与根据一些实施例的装置操作相关联的步骤。这种应用的一个例子也就是Hide JS,其被提供用于保护JavaScript。
根据一些实施例,所有或一部分客户端102和/或服务器106一般在计算机程序的控制下操作。用于执行示例实施例的方法的计算机程序可包括一个或多个计算机可读程序代码部分,例如像体现在或存储在计算机可读存储介质(例如非易失性存储介质)中的一系列计算机指令。
例如,图3A和3B分别显示了根据一些实施例执行的用于保护JavaScript的方法300和330的流程图。图3A和3B中所示流程图的每个块或步骤和/或流程图中各块的组合代表了由各种部件执行的功能,例如像硬件、软件、和/或包括一条或多条计算机程序指令的软件。可理解的是,任何这样的计算机程序指令可被装载到计算机上或其他可编程装置上以产生机器,这样在计算机或其他可编程装置(例如硬件)上执行的指令创建实施流程图的块中或步骤中特定功能的部件。这些计算机程序指令还可以存储在计算机可读存储器中(例如存储器204),其可以引导计算机或其他可编程装置以特定方式运作,这样存储在计算机可读存储器中的指令产生一种包括指令部件的制品,其实现流程图的框中或步骤中特定的功能。计算机程序指令还被装载到计算机上或其它可编程装置上,以使得一系列在计算机或其他可编程装置上执行的操作步骤产生计算机实现的过程,这样在计算机上或其他可编程装置上执行的指令提供了用于实现流程图的块或步骤中特定功能的步骤。
因此,流程图的块或步骤支持用于执行特定功能的部件的组合、执行特定功能的步骤组合以及执行特定功能的程序指令部件。可理解的是,流程图的一个或多个块或步骤以及流程图中块或步骤的组合可通过执行 特定功能或步骤或专用硬件和计算机指令的组合的特定目的基于硬件的计算机系统来执行。
图3A中的方法300可以是由一个或多个客户端设备(例如客户端102)实施的客户端操作。在302,客户端设备可经由信息协议虚拟地到达网站和/或其它网络目的地。例如,客户端102可运行网络浏览器,其允许客户端设备访问存储在网站上的信息。到达网站,如此处所述,包括客户端设备请求网站为客户端设备服务。
在304,轮询客户端设备以调试控制台。调试控制台和/或其它类型的调试模块允许客户端规避(circumvent)相关报头评估(以下详细讨论)以及接收所有的文档(例如JavaScript文件、html文件、媒体文件等)。例如,当客户端经由信息传输协议到达由使用HideJS的服务器作主机的在线服务时,服务器轮询客户端机器以调试控制台并且将缓存暂时或永久驻留在服务架构中的会话数据的状态。
响应于确定发现调试控制台的活动状态,客户端可以被重定向306,并且服务在308被禁止。例如,当服务被禁止时,防止客户端规避Hide JS私有保护方法的方面,并且显示器就如同结合图5所讨论的一样,能够呈现给客户端设备的用户。
响应于确定没有检测到调试控制台,方法300继续到310,并且客户端设备可被允许进入到服务。例如,客户端可以从通过“右击”(例如选择鼠标的右键)提供的在运行在客户端设备上的网络浏览器显示在网页上的浏览器选项的菜单选择以查看源选项。
在314,可提供客户端设备并允许其用户见到各种量的JavaScript来装载其它JavaScript。例如,标称量的JavaScript可以用于客户端设备102。
在一些实施例中,在整个会话期间可以进行间歇性的和/或定时的轮询,并且防止在初始轮询后激活调试控制台。例如,在314处授权客户端设备访问和服务JavaScript之后,可以开始运行计时器。在已经经过了预定时间期间后,在316处接收到访问JavaScript的第二请求和/或其它指示(例如客户端还在服务JavaScript),并且在318处客户端试图访问被保护的JavaScript(例如通过复制和粘贴到网络浏览器地址栏),方法 300继续到320,其中脚本请求被发送到服务器用于评估并且,如果可应用,则服务器能够在308拒绝对服务的访问。
图4显示了网页410(例如以html文档编码的网页)的示例性视图源显示400,响应于用户在导航到网页410后选择视图源选项而显示给客户端。视图源显示400包括网页410的超文本。另外,标称量的JavaScript引导客户端网页浏览器请求受保护的JavaScript(例如,用于延迟装载和/或通过“获取(get)”功能),并以文本格式显示,如URL402所示。
为了产生对受保护的JavaScript的请求,用户将URL402输入到客户端(例如网络浏览器)的地址栏。但是应当理解的是,可以使用其他技术来请求受保护的JavaScript(例如复制和粘贴、写脚本、浏览器扩展等)。另外和/或可选地,当用户访问网页410时,例如通过输入URL404到地址栏412,产生对受保护的JavaScript的请求。
在一些实施例中,不同脚本可以使用不同安全级别来处理。例如,低级别安全脚本可出现在314,而高级别安全脚本可限制在320和308。
图3B的方法330是由一个或多个服务器(例如服务器106)执行的后端功能的示例。在332,一个或多个服务器(例如服务器106)可配置成为确定客户端设备经由信息传输协议已经到达站点,服务器使该站点在因特网上公开可用。例如,客户端设备(例如客户端102)在302可以为数据发送请求给网站(例如当客户端设备的用户将合适的全球资源定位器(URL)输入到网络浏览器的地址栏中时,通过选择URL链接、开始网络浏览器或通过任何其他技术),并被服务器接收。网站还包括由经由信息传输协议的服务器做主机的服务。
超文本传输协议(HTTP)--互联网工程任务组(IETF)设置的在RFC2616中文件证明的标准--是信息传输协议的一个示例,其能够使得在客户端和服务器之间进行通信。为了和HTTP兼容,所有事务(例如客户端和服务器之间的)必须发送和接收请求/响应报头信息的预定义集合,所述信息以不可见字段的格式被客户端和服务器解析。使用报头信息,服务器能够发送特定规则给客户端,其能够帮助管理对从服务器请求的内容的最后传递。
在334,一个或多个服务器会对客户端轮询,或接收来自客户端的数据,用于调试控制台状态。如上可知,调试控制台或其它调试模块可允许客户端设备规避至少一些相关报头评估(如下所详细描述的)和/或接收来自服务器的至少一些信息(例如JavaScript文件、html文件、媒体文件等)。在一些实施例中,嵌入在JavaScript中的脚本可最初被发送给客户端。在装载网站的剩余内容(例如受保护的JavaScript)之前,脚本可以为激活的调试设备和/或模块轮询浏览器。例如使用XMLHttpRequest,然后脚本会将状态回传给服务器。
在336,一个或多个服务器可配置为在一个或多个数据库中(例如像数据库108)存储调试控制台状态(例如不管客户端是否具有活动的调试控制台),其可以是与存储网站内容的数据库相同和/或不同的数据库。另一个例子,状态可存储在缓存中,作为易失地和/或永久存储在服务器架构中的服务器侧会话数据。这样,当检测到调试设备时,状态可作为拒绝客户端对网站的进一步访问的证书(例如访问由JavaScript提供的服务器和/或与网站相关联的任何其他数据)。
在338确定了检测到活动的调试控制台后,在340服务器配置为拒绝对客户端设备的访问。例如,在336发送到客户端的JavaScript可配置为在340禁用所有后续JavaScript初始化(例如像下面详细描述的通过延迟装载额外脚本)。另外和/或可选地,客户端可被重定向(例如到不同的网站),服务器被禁用和/或不准客户端访问服务、网站和/或相关数据。
如果没有检测到活动的调试控制台,则方法330可继续到342,其中可允许客户端继续和/或访问服务、相关联的JavaScript、和/或网站数据。
在344,一个或多个服务器可配置为确定从客户端是否请求受保护的JavaScript。这样,一个或多个服务器可配置为接收受保护的JavaScript的请求。例如,当网站被装载到网络浏览器上时,客户端的用户可选择网络浏览器上的“视图源”选项。如上所述,图4示出了网页410(例如以html文档编码的网页)的示例视图源显示400,其响应于用户在导航到网页410后选择视图源选项而显示在客户端上。如果在346接收了对受保护的JavaScript的请求,则方法330继续到348。
在348,一个或多个服务器可配置为确定是否经由可信引用者接收请求。如上所讨论的,HTTP标准指定了请求(例如在346处接收到的对受保护的JavaScript的请求)包括在字段格式中的报头信息。在那种情况下,当引用文档(例如图4的网页410)发出了对HTML语法中的额外文档(例如受保护的JavaScript)的HTTP请求(例如经由图4的URL402)时,出现了引用者字段。引用者字段可包括引用文档的URL(包括目录、顶级域、子域等)。这样,图4中示出的URL404是当经由用户访问网页410而产生的对受保护的JavaScript的请求时,在引用者字段中的数据的示例。可以理解的是,“引用者字段”,如此处所用,指代在HTTP报头信息中的“引用者字段”。在一些实施例中,引用者字段可以指在网络协议中的信息,其标识了引用文档和/或缺少的引用文档。
在直接请求文件的事件中(例如当不通过客户端经由访问网页410而请求受保护的JavaScript时),缺少引用者会导致空的引用者字段。如果文档URL(例如URL402)直接放置在网络浏览器中的地址栏内时,会产生类似的结果。
在一些实施例中,使用包装器来评估请求,并根据在传送受保护的JavaScript之前建立的开发者规范来委托响应。例如,JavaServer Page(JSP)可以评估请求并回复合适的文本文件。由于文件扩展不是“src”或“href”请求中位置字符串所需参数的部分,因此可能作为文本文件回复JSP文档,满足那些标准的需求。这样,视图源显示400可以包括如图4所示的对URL406和408的引用。
当网络浏览器请求css-doc.jsp和javascriptdoc.jsp(例如当网页410被客户端访问)时,引用者字段可以包括URL404。可针对有效引用者的数据库(或一个或多个数据库)评估URL404,并且如果找到有效的(例如,如果URL404匹配对JavaScript的有效引用者),则委托所请求的受保护的JavaScript并返回给客户端。
在一些实施例中,网站或服务中一些或所有引用文档被在有效引用者的一个或多个数据库中备有证明文件。文档名称可存储在数据库管理系统中,例如标准化数据结构,或在以逗号、空格、引号等允许一个或 多个服务器有效解析列表的标记化的文本文档中。
如果不需要引用文档而直接请求文档,则一个或多个服务器可以评估缺失的引用者,并且允许开发者回复适当的错误消息(例如经由返回的JSP文档和/或文本文档)。例如,错误消息可包括受保护的JavaScript不可访问的指示,如图5中网站浏览器500的502所示。消息还包括关于知识产权保护的合适的法律信息。另外和/或可选地,记录尝试的访问。
可以理解的是,使用包装器来发送错误消息可防止客户端看到受保护的JavaScript源代码、可用于导出源代码的数据、和/或展示受保护的JavaScript的功能的数据。另外和/或可选地,包装器可防止网络浏览器缓存受保护的JavaScript,由此拒绝在请求时和/或将来的访问。这样,方法330还可以通过对源代码访问施以屏障来帮助防止恶意黑客。
在350,服务器可以配置为针对可信引用者的数据库评估请求报头。可信引用者可基于任何适当的信息来进行标识,例如因特网协议地址、用户名称和/或密码、和/或任何可提供为此处被称为“引用者文本”的适当信息。
响应于确定引用者文本是空的,与可信引用者数据库中相应的URL匹配失败,和/或被确定为对所请求的JavaScript是非授权引用文者本,一个或多个服务器可以被配置为在352发送错误消息作为响应。另外和/或可选地,受保护的JavaScript的脚本源不被发送到客户端。一个或多个服务器还配置为在340拒绝访问由受保护的JavaScript所提供的服务。如果引用者文本与可信引用者的数据库中相应的URL相匹配,则服务器可授权客户端设备访问服务(例如受保护的JavaScript)。
回到346,如果没有接收到对受保护的JavaScript的请求,则方法330回到334,其中一个或多个服务器轮询客户端以调试控制台状态。在会话期间进行的间歇性或定时的轮询可防止在初始轮询后激活调试控制台。
客户端可通过在完成内容下载和轮询间隔之间的一段时间激活调试控制台,而规避方法330的一部分,给予调试控制台有限机会窗口,来定位和无效轮询脚本。
在一些实施例中,为了有效抑制对轮询脚本的无效,服务器能够冒 泡法和/或推送轮询功能(例如应用)到网络浏览器以防止客户通过在初始检查后激活调试控制台而绕开该安全测量。例如,应用可配置为在检测到调试控制台激活后,发送消息给一个或多个服务器。
虽然总是存在确定的一小团体黑客能够围绕任何安全测量工作,但是此处所讨论的实施例提供对包含在JavaScript和层叠样式表(对于必须包括CSS IP的鲜有实例)中的专有代码的基本的知识产权保护。
通过隐藏而不是模糊JavaScript源代码,开发者能够通过保留源代码的完整性而简化调试开发阶段。为了进一步阻止恶意黑客或提高代码优化,方法300和/或330可结合模糊技术和/或代码最小化技术。
方法300和/或方法330提供了用于保护和开发知识产权的直观机制,让开发者可选择开放源JavaScript知识产权,或将其开发为公司价值构建过程的一部分,和/或基于例如客户端设备的一些组合。
在一些实施例中,方法330使得服务器与提供受保护的JavaScript的应用服务器分离。另外,因为所基于的HTTP协议和发生在请求/响应方法中信息事务的实质,方法330可通过许多网络应用服务器执行。因此,PHP、Ruby(或任何衍生物)、Visual Basic Script、.Net、Apache Tomcat以及任何类似脚本/编程语言集和它们的应用服务器,能够传送与Hide JS相关联的内容保护。
在一些实施例中,被方法330包装的JavaScript可通过适当地结构化内容传送网络实例化。虽然可与网站或服务在同一应用服务器上执行方法330,但是会由于增加了经由HTTP协议请求而引起相当大的性能开销问题。
将内容传送网络安置在有效顶级域的唯一子域的分离服务器集合上,并且然后还可以安置在后续的子域上,可以提高效率。通过使用该技术,提高级别的请求会被委托到专门指定以处理该请求的网络。
本发明的这些实施例所属的领域的技术人员受益于前述说明和相关联的附图所呈现的教导,可以理解本文所阐述的发明的多个修改和其它实施例。因此,可以理解的是本发明的实施例不限于所公开的特定实施例,并且修改和其它实施例也意图包含在所附权利要求的范围中。虽然 此处使用了特定术语,但是它们仅仅为了一般性和描述性的目的而使用,并不用于限制。

用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf_第1页
第1页 / 共17页
用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf_第2页
第2页 / 共17页
用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf》由会员分享,可在线阅读,更多相关《用于保护JAVASCRIPT的装置、方法和计算机可读存储介质.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104137079A43申请公布日20141105CN104137079A21申请号201280047964022申请日2012100161/541,48120110930USG06F11/3620060171申请人纽曼无限公司地址美国加利福尼亚州72发明人MA纽曼74专利代理机构永新专利商标代理有限公司72002代理人张晰王英54发明名称用于保护JAVASCRIPT的装置、方法和计算机可读存储介质57摘要本文公开了一种保护JAVASCRIPT源代码的系统、相关方法和其他手段。电路被配置为确定在客户端设备上的调试控制台是否是活动的,并且如果调试控制台是活动的则拒绝对JAVAS。

2、CRIPT的访问。另外或可选地,电路接收来自客户端设备对JAVASCRIPT源代码访问的请求,并且确定该请求是否来自可信引用者。当该请求来自不可信引用者时,电路能够拒绝对JAVASCRIPT的访问。当请求来自可信引用者时,电路能够授权访问JAVASCRIPT。30优先权数据85PCT国际申请进入国家阶段日2014032886PCT国际申请的申请数据PCT/US2012/0583492012100187PCT国际申请的公布数据WO2013/049841EN2013040451INTCL权利要求书2页说明书9页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图5页。

3、10申请公布号CN104137079ACN104137079A1/2页21一种保护JAVASCRIPT的方法,包括用网络处理器确定在客户端设备上的调试控制台是否是活动的;响应于确定在所述客户端设备上的所述调试控制台不是活动的,进一步评估是否授权对JAVASCRIPT的访问;接收来自所述客户端设备的对JAVASCRIPT的访问请求;确定所述客户端设备是否与至少一个可信引用者相关联;并且响应于确定所述请求是经由可信引用者接收的,而提供对JAVASCRIPT的访问。2根据权利要求1所述的方法,其中确定在所述客户端设备上的所述调试控制台是否是活动的包括轮询所述客户端设备。3根据权利要求2所述的方法,其。

4、中轮询所述客户端设备是间歇性执行的。4根据权利要求1所述的方法,还包括随后响应于确定在所述客户端设备上的所述调试控制台是活动的,来拒绝对JAVASCRIPT的访问。5根据权利要求4所述的方法,其中拒绝对JAVASCRIPT的访问包括代替JAVASCRIPT的源代码发送错误消息给所述客户端设备。6根据权利要求1所述的方法,还包括接收访问JAVASCRIPT的第二请求;以及当经由不可信引用者接收所述第二请求时,响应于所述第二请求来拒绝对JAVASCRIPT的源代码的访问。7根据权利要求1所述的方法,其中确定所述客户端设备是否与可信引用者相关联还包括访问一个或多个数据库中的一个或多个可信引用者的列表。

5、。8根据权利要求7所述的方法,其中解析所述请求并从引用者字段提取数据;并且确定所述请求是否是经由所述可信引用者接收的包括比较引用者字段中的数据和一个或多个可信引用者的列表。9根据权利要求1所述的方法,还包括存储调试控制台状态,当检测到调试设备时,所述调试控制台状态拒绝对由JAVASCRIPT提供的服务的访问。10根据权利要求1所述的方法,其中JAVASCRIPT由与网络处理器分离的服务器提供。11一种包含非瞬态计算机可读存储介质和存储于其中的计算机程序指令的计算机程序产品,所述计算机程序指令包括被配置为执行权利要求110中任一项所述的方法的程序指令。12一种保护JAVASCRIPT的系统,包括。

6、电路,其配置为用网络处理器确定在客户端设备上的调试控制台是否是活动的;响应于确定在所述客户端设备上的所述调试控制台不是活动的,进一步评估是否授权对JAVASCRIPT的访问;接收来自所述客户端设备的对JAVASCRIPT的访问请求;确定所述客户端设备是否与至少一个可信引用者相关联;并且响应于确定所述请求是经由可信引用者接收的,而提供对JAVASCRIPT的访问。13根据权利要求12所述的系统,其中所述电路还配置确定在所述客户端设备上的权利要求书CN104137079A2/2页3所述调试控制台是否是活动的包括轮询所述客户端设备。14根据权利要求13所述的系统,其中所述电路还配置为间歇性轮询所述客。

7、户端设备。15根据权利要求12所述的系统,其中电路配置为随后响应于确定在所述客户端设备上的所述调试控制台是活动的,来拒绝对JAVASCRIPT的访问。16根据权利要求15所述的系统,其中拒绝对JAVASCRIPT的访问包括所述电路配置为代替JAVASCRIPT的源代码发送错误消息给所述客户端设备。17根据权利要求12所述的系统,其中所述电路还配置为接收访问JAVASCRIPT的第二请求;以及当经由不可信引用者接收所述第二请求时,响应于所述第二请求来拒绝对JAVASCRIPT的源代码的访问。18根据权利要求12所述的系统,其中确定所述客户端设备是否与可信引用者相关联还包括所述电路配置为访问一个或。

8、多个数据库中的一个或多个可信引用者的列表。19根据权利要求12所述的系统,其中所述电路还配置为解析所述请求并从引用者字段提取数据;并且确定所述请求是否是经由所述可信引用者接收的包括比较引用者字段中的数据和一个或多个可信引用者的列表。20根据权利要求12所述的系统,其中所述电路还配置为存储调试控制台状态,当检测到调试设备时,所述调试控制台状态拒绝对由JAVASCRIPT提供的服务的访问。21根据权利要求12所述的系统,还包括配置为向与所述电路分离的客户端设备提供JAVASCRIPT的服务器。权利要求书CN104137079A1/9页4用于保护JAVASCRIPT的装置、方法和计算机可读存储介质0。

9、001相关申请的交叉引用0002本发明要求于2011年9月30日提交的美国专利临时申请61/541,481的权益和优先权。技术领域0003本发明的实施例一般涉及保护网站的JAVASCRIPT例如源代码。背景技术0004由于脚本语言作为大部分网络浏览器中的实现而主要在客户端侧解析,所以JAVASCRIPT是用于网站或网络服务的客户端的动态脚本语言。广为周知地,JAVASCRIPT作为稳定的、可访问的以及具有一系列格式化选项的广泛通用脚本语言,用在范围从游戏及社交网络到企业解决方案的交互式网络应用中。已经确定了用于保护JAVASCRIPT的领域。通过所施加的努力、创造和革新,已经实现了改善这种系统。

10、的解决方案,并且结合本发明的实施例对其进行描述。发明内容0005提供了一种系统、方法、存储在非瞬态存储介质的计算机可读程序代码以及其他手段,一般性地用于提高JAVASCRIPTS、源代码和/或经由网络远程访问的其它信息的安全性。更具体的,此处提供的实施例可以保护JAVASCRIPT例如JAVASCRIPT源代码、部分源代码和/或由JAVASCRIPT提供的服务。所述方法包括确定例如使用一个或多个网络处理器客户端设备上的调试控制台是否是活动的;如果在客户端设备上的调试控制台是活动的则拒绝对JAVASCRIPT的访问;接收来自客户端设备对JAVASCRIPT的访问请求;确定请求是否是经由可信引用者。

11、接收的;并且如果该请求不是从可信引用者接收的则拒绝访问JAVASCRIPT。0006在一些实施例中,确定在客户端设备上的调试控制台是否是活动的包括轮询客户端设备。轮询客户端设备可间歇性地和/或以预定轮询间隔执行。0007在一些实施例中,访问JAVASCRIPT的请求可以经由网络协议例如超文本传输协议HTTP,超文本传输协议安全HTTPS,SPDY,传输控制协议和/或因特网协议TCP/IP等接收。请求可以包括引用者字段例如HTTP的“引用者”字段。确定请求是否来自可信引用者还包括将引用者字段中的数据与一个或多个可信引用者的列表进行比较。因此,所述方法还包括访问一个或多个数据库中的一个或多个可信引。

12、用者的列表。0008在一些实施例中,拒绝对JAVASCRIPT访问包括发送错误消息给客户端设备。可选地和/或另外,拒绝对JAVASCRIPT的访问包括拒绝访问由JAVASCRIPT提供的服务和/或JAVASCRIPT的源代码。0009在一些实施例中,所述方法还包括存储调试控制台状态,当检测到调试设备时,所述状态拒绝访问由JAVASCRIPT提供的服务。说明书CN104137079A2/9页50010在一些实施例中,JAVASCRIPT可以由与保护JAVASCRIPT的网络处理器分离的服务器提供。0011一些实施例包括装置和/或系统,其配置为实现所述方法和/或本文所讨论的其它功能。换句话说,装置。

13、包括一个或多个处理器和/或其他机器部件,其配置为基于存储在存储器和/或其它非暂态计算机可读介质中的指令和/或其他数据来实现此处所讨论的功能。0012以下描述这些特性以及其它特征、功能和本发明的细节。类似地,以下还将描述相应及其它实施例。附图说明0013用通常术语描述了本发明的实施例后,现在参考附图,附图不必须按照比例绘制,并且其中0014图1是根据一些实施例配置的系统的示意框图;0015图2是根据一些实施例配置的装置的示意框图;0016图3A和3B示出了根据一些实施例执行的示例方法的流程图;0017图4显示了根据一些实施例的示例查看源显示;0018图5显示了根据一些实施例的示例错误页面。具体实。

14、施方式0019现在参考附图在后文更全面地描述本发明的实施例,其中显示了本发明的一些但不是全部的实施例。事实上,本发明的实施例可以很多不同的形式实现,并且不应当被解释为限于此处所提出的实施例;而是,提供这些实施例以使得本公开满足可应用的法定要求。整篇中相同的数字代表相同的元件。0020如此处所用的术语“数据”、“内容”、“信息”以及类似的术语可互相交换使用,指的是根据不同的示例性实施例而能够被捕获、发送、接收、显示和/或存储的数据。这样,使用任何这样的术语都不应当被认为限制了本公开的精神和范围。另外,当此处描述了计算设备用于接收来自另一计算设备的数据时,应当理解为从另一计算设备处直接接收数据或者。

15、经由一个或多个中间计算设备间接接收数据,例如像一个或多个服务器、中继、路由器、网络访问点、基站、和/或类似设备。类似地,当此处描述了计算设备用于向另一计算设备发送数据时,应当理解为直接向另一计算设备发送数据,或者可经由一个或多个中间计算设备间接发送数据,例如像一个或多个服务器、中继、路由器、网络访问点、基站、和/或类似设备。0021此处所讨论的实施例可配置为使得网站提供者例如零售商或其他在线服务提供者能够在其他类型代码和/或当前公开可用信息中保护其JAVASCRIPT不被第三方可见,包括竞争对手、黑客、还原工程和/或任何其他非授权方和/或机器。0022在引入可视化因特网之后不久,浏览器开发组就。

16、实现了简化客户端脚本语言的需求,以扩展SGML标准通用标记语言衍生的HTML超文本标记语言的限制,这引起脚本语言包括JAVASCRIPT的发展,其允许直接访问文档对象模型DOM一组定义网页元素作为编程对象的标准。说明书CN104137079A3/9页60023为了推进网络技术的发展,因特网最早的架构允许客户端侧浏览并共享源代码,可完全信赖并下载对于客户端机器的用户可视的脚本。因此,对可被插入到JAVASCRIPT中的任何适当算法的使用默认进入到公共域。为此,一些实施例提供了知识产权保护技术,其能够将专有JAVASCRIPT例如隐藏在JAVA包装程序中。0024由于JAVASCRIPT给予编程者。

17、操纵和扩展DOM的能力,其被定义为因特网标准,因此JAVASCRIPT的功能作为面向原型对象的脚本语言对于编程框架中的开发者来说敞开了大门,例如PROTOTYPE和JQUERY简化了HTML文档遍历、事件处理、启发式和异步交互。但是伴随着所有JAVASCRIPT快速发展的优势,带来了对在客户端网络浏览器中下载和缓存数据协议的知识产权保护的挑战。0025目前,对JAVASCRIPT的知识产权保护措施例如像那些阻止公众访问JAVASCRIPT被限于仅仅用于意图妨碍或阻止黑客的模糊措施,以及主要作为代码优化工具而设计的缩小程序,知识产权保护是间接的第二效果。虽然这些机器实现方法足够阻止偶然的黑客或其。

18、它非授权用户,但是它们在调试过程还会出现问题,并且完全无法防御最低程度技术人员和确定的黑客在潜在大量金融投入反馈的促动下花时间投入到法相工程有价值代码中。0026由于缺乏对鲁棒性JAVASCRIPT知识产权保护的方法,程序员被迫开放源JAVASCRIPT代码,以放置基本的有限的许可。虽然开放源库对于因特网的一般性进步是重要的,但是在编程团体中发展的开放文化相反进入到价值构建过程中,该过程主要基于对公司知识产权的保护和开发。从1982年到2002年,据报告称无形资产包括商标、商号、和其它类型知识产权从公司价值的40上升到整体价值的整整75。由于所有这些有效性,JAVASCRIPT去除了作为法律保。

19、护的专有资产的知识产权的概念,有效的否定了JAVASCRIPT开发者获取与创造价值的货币化相关联的潜在收益。0027阻碍在保护JAVASCRIPT和其它无形知识产权中开发精力的障碍包括带宽和计算开销限制以及无法有效开发能够保护数据传送到客户的功能性内容传送网络架构。0028此处讨论的一些实施例,例如像常被称为“HIDEJS”的实施例,能够利用机器实现方法来提供简单且稳定的知识产权保护,所述方法使得将专有JAVASCRIPT隐藏在JAVA包装程序中,等等。一些实施例使得相关次要网络架构改变,并且能够通过在目标服务器上实例化HIDEJS而由大部分网络工程师实现。0029图1示出了得益于本发明的示例。

20、实施例的系统100此处所用的“例子”,“示例性”及类似术语指的是“作为例子、示例或说明”。系统100包括一个或多个客户端102、一个或多个服务器104、以及一个或多个数据库108。在一些实施例中,客户端102和/或服务器106可包括、包含或体现于一个或多个便携式或固定式的电子设备中,例如像一个或多个便携式媒介播放器、智能手机、便携式数字助理PDA、平板计算机、膝上型、桌上型计算机、服务器计算机或类似。客户端102配置为主要用作消费者设备,个人能够使用其来访问和/或建立网站等。服务器106配置为主要用作向客户端设备例如客户端102服务网站和/或其它信息的机器。0030客户端102和服务器106可。

21、配置为以任意多种不同方式直接和/或间接地彼此通信,所述方式包括例如任意多种有线或无线通信或网络技术。这种技术的例子包括,但不限于通用串行总线USB、无线射频RF、蓝牙BT、红外IRDA、任意多种不同蜂窝无线说明书CN104137079A4/9页7通信技术,如像任何数量的2G、25G、3G、或4G通信技术、局域网LAN、无线LANWLAN技术或类似。在一些实施例中,客户端102和服务器106可以被耦合并且配置为跨越一个或多个网络104进行通信。网络104包括一种或多种不同类型网络的任意数量的不同组合,包括数据和/或语音网络。例如,网络104可包括一个或多个数据网络,例如像LAN、城域网MAN和/。

22、或广域网WAN例如因特网,并且包括一个或多个语音网络,例如像公用开关电话网络PSTN。虽然在图1中为了不必要的复杂性而没有显示,但是网络104可以包括一个或多个装置,例如像一个或多个路由器、交换机等,以中继在客户端和服务器之间的数据、信号等。0031一个或多个数据库108配置为与一个或多个服务器106通信。在这种情况下,一个或多个服务器106可包括数据库管理系统,其控制数据库108的创建、维护和使用。如以下详细讨论的,根据此处所描述的技术,用于保护JAVASCRIPT的网页内容和/或数据可以存储在数据库108中并可访问。0032现在参考图2,其示出了示例装置200的框图,所述装置200可配置为。

23、操作或执行客户端102和/或服务器106的一项或多项功能。虽然在图1中示出的是分离的设备,但是在一些实施例中,装置200可同时支持客户端和服务器,两者逻辑分离但是都位于装置200中。装置200可以被配置为提供不同模块,例如被配置为执行此处所描述的一项或多项功能例如图3A和3B中所示的方法300和330。但是应当理解的是,装置200仅仅是例子,也可以采用其他结构来执行一项或多项类似功能。0033如图2所示,装置200包括连接到存储器204的处理器202。存储器204可包括易失性和/或非易失性存储器,并且典型地存储内容、数据等。就此而言,存储器可存储一个或多个应用206、模块、指令、计算机可读程序。

24、代码部分或类似能被处理器202执行以实现本文描述的一项或多项功能。一个这种应用的例子是提供对JAVASCRIPT应用的保护,不限于此,在此处称作“HIDEJS”。其他应用的例子包括一个或多个网络浏览器、生产率应用、游戏应用、实用程序等。0034存储器204还配置为存储来自和/或接收自装置200的内容。如此出所描述的,每个应用可包括由装置200操作的模块。如此处所指,“模块”可由软件、固件、硬件或其任何组合来实现。0035在一些实施例中,处理器202还连接到至少一个接口或其它用于显示、传送和/或接收数据、内容等的部件,例如根据USB、RF、BT、IRDA、WLAN、LAN、MAN、WAM例如因特。

25、网、PSTN技术或类似。对此,接口可包括至少一个通信接口208或其它用于传送和/或接收数据、内容等的部件。除了通信接口208,接口还可以包括至少一个用户接口,其包括一个或多个耳机和/或扬声器、显示器210其可包括任何被配置为向用户呈现视觉信息的合适的显示屏、和/或用户输入接口212。用户输入接口212反过来可包括多个允许装置200从用户接收数据的设备中的一个或多个,例如像麦克风、键盘、触敏表面与显示屏整合或分离、游戏杆、鼠标、或其他输入设备。0036如上所指,装置200还包括应用例如应用206,由处理器202执行来实现与根据一些实施例的装置操作相关联的步骤。这种应用的一个例子也就是HIDEJS。

26、,其被提供用于保护JAVASCRIPT。0037根据一些实施例,所有或一部分客户端102和/或服务器106一般在计算机程序说明书CN104137079A5/9页8的控制下操作。用于执行示例实施例的方法的计算机程序可包括一个或多个计算机可读程序代码部分,例如像体现在或存储在计算机可读存储介质例如非易失性存储介质中的一系列计算机指令。0038例如,图3A和3B分别显示了根据一些实施例执行的用于保护JAVASCRIPT的方法300和330的流程图。图3A和3B中所示流程图的每个块或步骤和/或流程图中各块的组合代表了由各种部件执行的功能,例如像硬件、软件、和/或包括一条或多条计算机程序指令的软件。可理。

27、解的是,任何这样的计算机程序指令可被装载到计算机上或其他可编程装置上以产生机器,这样在计算机或其他可编程装置例如硬件上执行的指令创建实施流程图的块中或步骤中特定功能的部件。这些计算机程序指令还可以存储在计算机可读存储器中例如存储器204,其可以引导计算机或其他可编程装置以特定方式运作,这样存储在计算机可读存储器中的指令产生一种包括指令部件的制品,其实现流程图的框中或步骤中特定的功能。计算机程序指令还被装载到计算机上或其它可编程装置上,以使得一系列在计算机或其他可编程装置上执行的操作步骤产生计算机实现的过程,这样在计算机上或其他可编程装置上执行的指令提供了用于实现流程图的块或步骤中特定功能的步骤。

28、。0039因此,流程图的块或步骤支持用于执行特定功能的部件的组合、执行特定功能的步骤组合以及执行特定功能的程序指令部件。可理解的是,流程图的一个或多个块或步骤以及流程图中块或步骤的组合可通过执行特定功能或步骤或专用硬件和计算机指令的组合的特定目的基于硬件的计算机系统来执行。0040图3A中的方法300可以是由一个或多个客户端设备例如客户端102实施的客户端操作。在302,客户端设备可经由信息协议虚拟地到达网站和/或其它网络目的地。例如,客户端102可运行网络浏览器,其允许客户端设备访问存储在网站上的信息。到达网站,如此处所述,包括客户端设备请求网站为客户端设备服务。0041在304,轮询客户端。

29、设备以调试控制台。调试控制台和/或其它类型的调试模块允许客户端规避CIRCUMVENT相关报头评估以下详细讨论以及接收所有的文档例如JAVASCRIPT文件、HTML文件、媒体文件等。例如,当客户端经由信息传输协议到达由使用HIDEJS的服务器作主机的在线服务时,服务器轮询客户端机器以调试控制台并且将缓存暂时或永久驻留在服务架构中的会话数据的状态。0042响应于确定发现调试控制台的活动状态,客户端可以被重定向306,并且服务在308被禁止。例如,当服务被禁止时,防止客户端规避HIDEJS私有保护方法的方面,并且显示器就如同结合图5所讨论的一样,能够呈现给客户端设备的用户。0043响应于确定没有。

30、检测到调试控制台,方法300继续到310,并且客户端设备可被允许进入到服务。例如,客户端可以从通过“右击”例如选择鼠标的右键提供的在运行在客户端设备上的网络浏览器显示在网页上的浏览器选项的菜单选择以查看源选项。0044在314,可提供客户端设备并允许其用户见到各种量的JAVASCRIPT来装载其它JAVASCRIPT。例如,标称量的JAVASCRIPT可以用于客户端设备102。0045在一些实施例中,在整个会话期间可以进行间歇性的和/或定时的轮询,并且防止在初始轮询后激活调试控制台。例如,在314处授权客户端设备访问和服务JAVASCRIPT之后,可以开始运行计时器。在已经经过了预定时间期间后。

31、,在316处接收到访问JAVASCRIPT的第二请求和/或其它指示例如客户端还在服务JAVASCRIPT,并且在318说明书CN104137079A6/9页9处客户端试图访问被保护的JAVASCRIPT例如通过复制和粘贴到网络浏览器地址栏,方法300继续到320,其中脚本请求被发送到服务器用于评估并且,如果可应用,则服务器能够在308拒绝对服务的访问。0046图4显示了网页410例如以HTML文档编码的网页的示例性视图源显示400,响应于用户在导航到网页410后选择视图源选项而显示给客户端。视图源显示400包括网页410的超文本。另外,标称量的JAVASCRIPT引导客户端网页浏览器请求受保护。

32、的JAVASCRIPT例如,用于延迟装载和/或通过“获取GET”功能,并以文本格式显示,如URL402所示。0047为了产生对受保护的JAVASCRIPT的请求,用户将URL402输入到客户端例如网络浏览器的地址栏。但是应当理解的是,可以使用其他技术来请求受保护的JAVASCRIPT例如复制和粘贴、写脚本、浏览器扩展等。另外和/或可选地,当用户访问网页410时,例如通过输入URL404到地址栏412,产生对受保护的JAVASCRIPT的请求。0048在一些实施例中,不同脚本可以使用不同安全级别来处理。例如,低级别安全脚本可出现在314,而高级别安全脚本可限制在320和308。0049图3B的方。

33、法330是由一个或多个服务器例如服务器106执行的后端功能的示例。在332,一个或多个服务器例如服务器106可配置成为确定客户端设备经由信息传输协议已经到达站点,服务器使该站点在因特网上公开可用。例如,客户端设备例如客户端102在302可以为数据发送请求给网站例如当客户端设备的用户将合适的全球资源定位器URL输入到网络浏览器的地址栏中时,通过选择URL链接、开始网络浏览器或通过任何其他技术,并被服务器接收。网站还包括由经由信息传输协议的服务器做主机的服务。0050超文本传输协议HTTP互联网工程任务组IETF设置的在RFC2616中文件证明的标准是信息传输协议的一个示例,其能够使得在客户端和服。

34、务器之间进行通信。为了和HTTP兼容,所有事务例如客户端和服务器之间的必须发送和接收请求/响应报头信息的预定义集合,所述信息以不可见字段的格式被客户端和服务器解析。使用报头信息,服务器能够发送特定规则给客户端,其能够帮助管理对从服务器请求的内容的最后传递。0051在334,一个或多个服务器会对客户端轮询,或接收来自客户端的数据,用于调试控制台状态。如上可知,调试控制台或其它调试模块可允许客户端设备规避至少一些相关报头评估如下所详细描述的和/或接收来自服务器的至少一些信息例如JAVASCRIPT文件、HTML文件、媒体文件等。在一些实施例中,嵌入在JAVASCRIPT中的脚本可最初被发送给客户端。

35、。在装载网站的剩余内容例如受保护的JAVASCRIPT之前,脚本可以为激活的调试设备和/或模块轮询浏览器。例如使用XMLHTTPREQUEST,然后脚本会将状态回传给服务器。0052在336,一个或多个服务器可配置为在一个或多个数据库中例如像数据库108存储调试控制台状态例如不管客户端是否具有活动的调试控制台,其可以是与存储网站内容的数据库相同和/或不同的数据库。另一个例子,状态可存储在缓存中,作为易失地和/或永久存储在服务器架构中的服务器侧会话数据。这样,当检测到调试设备时,状态可作为拒绝客户端对网站的进一步访问的证书例如访问由JAVASCRIPT提供的服务器和/或与网站相关联的任何其他数据。

36、。说明书CN104137079A7/9页100053在338确定了检测到活动的调试控制台后,在340服务器配置为拒绝对客户端设备的访问。例如,在336发送到客户端的JAVASCRIPT可配置为在340禁用所有后续JAVASCRIPT初始化例如像下面详细描述的通过延迟装载额外脚本。另外和/或可选地,客户端可被重定向例如到不同的网站,服务器被禁用和/或不准客户端访问服务、网站和/或相关数据。0054如果没有检测到活动的调试控制台,则方法330可继续到342,其中可允许客户端继续和/或访问服务、相关联的JAVASCRIPT、和/或网站数据。0055在344,一个或多个服务器可配置为确定从客户端是否请。

37、求受保护的JAVASCRIPT。这样,一个或多个服务器可配置为接收受保护的JAVASCRIPT的请求。例如,当网站被装载到网络浏览器上时,客户端的用户可选择网络浏览器上的“视图源”选项。如上所述,图4示出了网页410例如以HTML文档编码的网页的示例视图源显示400,其响应于用户在导航到网页410后选择视图源选项而显示在客户端上。如果在346接收了对受保护的JAVASCRIPT的请求,则方法330继续到348。0056在348,一个或多个服务器可配置为确定是否经由可信引用者接收请求。如上所讨论的,HTTP标准指定了请求例如在346处接收到的对受保护的JAVASCRIPT的请求包括在字段格式中的。

38、报头信息。在那种情况下,当引用文档例如图4的网页410发出了对HTML语法中的额外文档例如受保护的JAVASCRIPT的HTTP请求例如经由图4的URL402时,出现了引用者字段。引用者字段可包括引用文档的URL包括目录、顶级域、子域等。这样,图4中示出的URL404是当经由用户访问网页410而产生的对受保护的JAVASCRIPT的请求时,在引用者字段中的数据的示例。可以理解的是,“引用者字段”,如此处所用,指代在HTTP报头信息中的“引用者字段”。在一些实施例中,引用者字段可以指在网络协议中的信息,其标识了引用文档和/或缺少的引用文档。0057在直接请求文件的事件中例如当不通过客户端经由访问。

39、网页410而请求受保护的JAVASCRIPT时,缺少引用者会导致空的引用者字段。如果文档URL例如URL402直接放置在网络浏览器中的地址栏内时,会产生类似的结果。0058在一些实施例中,使用包装器来评估请求,并根据在传送受保护的JAVASCRIPT之前建立的开发者规范来委托响应。例如,JAVASERVERPAGEJSP可以评估请求并回复合适的文本文件。由于文件扩展不是“SRC”或“HREF”请求中位置字符串所需参数的部分,因此可能作为文本文件回复JSP文档,满足那些标准的需求。这样,视图源显示400可以包括如图4所示的对URL406和408的引用。0059当网络浏览器请求CSSDOCJSP和。

40、JAVASCRIPTDOCJSP例如当网页410被客户端访问时,引用者字段可以包括URL404。可针对有效引用者的数据库或一个或多个数据库评估URL404,并且如果找到有效的例如,如果URL404匹配对JAVASCRIPT的有效引用者,则委托所请求的受保护的JAVASCRIPT并返回给客户端。0060在一些实施例中,网站或服务中一些或所有引用文档被在有效引用者的一个或多个数据库中备有证明文件。文档名称可存储在数据库管理系统中,例如标准化数据结构,或在以逗号、空格、引号等允许一个或多个服务器有效解析列表的标记化的文本文档中。0061如果不需要引用文档而直接请求文档,则一个或多个服务器可以评估缺失。

41、的引用者,并且允许开发者回复适当的错误消息例如经由返回的JSP文档和/或文本文档。例说明书CN104137079A108/9页11如,错误消息可包括受保护的JAVASCRIPT不可访问的指示,如图5中网站浏览器500的502所示。消息还包括关于知识产权保护的合适的法律信息。另外和/或可选地,记录尝试的访问。0062可以理解的是,使用包装器来发送错误消息可防止客户端看到受保护的JAVASCRIPT源代码、可用于导出源代码的数据、和/或展示受保护的JAVASCRIPT的功能的数据。另外和/或可选地,包装器可防止网络浏览器缓存受保护的JAVASCRIPT,由此拒绝在请求时和/或将来的访问。这样,方法。

42、330还可以通过对源代码访问施以屏障来帮助防止恶意黑客。0063在350,服务器可以配置为针对可信引用者的数据库评估请求报头。可信引用者可基于任何适当的信息来进行标识,例如因特网协议地址、用户名称和/或密码、和/或任何可提供为此处被称为“引用者文本”的适当信息。0064响应于确定引用者文本是空的,与可信引用者数据库中相应的URL匹配失败,和/或被确定为对所请求的JAVASCRIPT是非授权引用文者本,一个或多个服务器可以被配置为在352发送错误消息作为响应。另外和/或可选地,受保护的JAVASCRIPT的脚本源不被发送到客户端。一个或多个服务器还配置为在340拒绝访问由受保护的JAVASCRI。

43、PT所提供的服务。如果引用者文本与可信引用者的数据库中相应的URL相匹配,则服务器可授权客户端设备访问服务例如受保护的JAVASCRIPT。0065回到346,如果没有接收到对受保护的JAVASCRIPT的请求,则方法330回到334,其中一个或多个服务器轮询客户端以调试控制台状态。在会话期间进行的间歇性或定时的轮询可防止在初始轮询后激活调试控制台。0066客户端可通过在完成内容下载和轮询间隔之间的一段时间激活调试控制台,而规避方法330的一部分,给予调试控制台有限机会窗口,来定位和无效轮询脚本。0067在一些实施例中,为了有效抑制对轮询脚本的无效,服务器能够冒泡法和/或推送轮询功能例如应用到。

44、网络浏览器以防止客户通过在初始检查后激活调试控制台而绕开该安全测量。例如,应用可配置为在检测到调试控制台激活后,发送消息给一个或多个服务器。0068虽然总是存在确定的一小团体黑客能够围绕任何安全测量工作,但是此处所讨论的实施例提供对包含在JAVASCRIPT和层叠样式表对于必须包括CSSIP的鲜有实例中的专有代码的基本的知识产权保护。0069通过隐藏而不是模糊JAVASCRIPT源代码,开发者能够通过保留源代码的完整性而简化调试开发阶段。为了进一步阻止恶意黑客或提高代码优化,方法300和/或330可结合模糊技术和/或代码最小化技术。0070方法300和/或方法330提供了用于保护和开发知识产权。

45、的直观机制,让开发者可选择开放源JAVASCRIPT知识产权,或将其开发为公司价值构建过程的一部分,和/或基于例如客户端设备的一些组合。0071在一些实施例中,方法330使得服务器与提供受保护的JAVASCRIPT的应用服务器分离。另外,因为所基于的HTTP协议和发生在请求/响应方法中信息事务的实质,方法330可通过许多网络应用服务器执行。因此,PHP、RUBY或任何衍生物、VISUALBASICSCRIPT、NET、APACHETOMCAT以及任何类似脚本/编程语言集和它们的应用服务器,能够说明书CN104137079A119/9页12传送与HIDEJS相关联的内容保护。0072在一些实施例。

46、中,被方法330包装的JAVASCRIPT可通过适当地结构化内容传送网络实例化。虽然可与网站或服务在同一应用服务器上执行方法330,但是会由于增加了经由HTTP协议请求而引起相当大的性能开销问题。0073将内容传送网络安置在有效顶级域的唯一子域的分离服务器集合上,并且然后还可以安置在后续的子域上,可以提高效率。通过使用该技术,提高级别的请求会被委托到专门指定以处理该请求的网络。0074本发明的这些实施例所属的领域的技术人员受益于前述说明和相关联的附图所呈现的教导,可以理解本文所阐述的发明的多个修改和其它实施例。因此,可以理解的是本发明的实施例不限于所公开的特定实施例,并且修改和其它实施例也意图包含在所附权利要求的范围中。虽然此处使用了特定术语,但是它们仅仅为了一般性和描述性的目的而使用,并不用于限制。说明书CN104137079A121/5页13图1图2说明书附图CN104137079A132/5页14图3A说明书附图CN104137079A143/5页15图3B说明书附图CN104137079A154/5页16图4说明书附图CN104137079A165/5页17图5说明书附图CN104137079A17。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1