CN101268468A - 认证脚本代码源的方法和设备 - Google Patents

认证脚本代码源的方法和设备 Download PDF

Info

Publication number
CN101268468A
CN101268468A CNA2006800341654A CN200680034165A CN101268468A CN 101268468 A CN101268468 A CN 101268468A CN A2006800341654 A CNA2006800341654 A CN A2006800341654A CN 200680034165 A CN200680034165 A CN 200680034165A CN 101268468 A CN101268468 A CN 101268468A
Authority
CN
China
Prior art keywords
code
window
attribute
read
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006800341654A
Other languages
English (en)
Inventor
D·E·哈伊斯
T·P·匹特森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101268468A publication Critical patent/CN101268468A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于许可对主机站点上驻留的脚本代码的访问的方法、设备及计算机可用代码,其中所述主机站点具有窗口只读属性。计算机客户端接收关键代码。该计算机客户端确定关键代码是否匹配于已知正确的窗口返回代码。基于此,计算机调用关键代码来获得该关键代码的只读属性,并确定所述只读属性是否匹配于已知正确的窗口只读属性。调用意味着将所述关键代码视为计算机指令,并执行该计算机指令。计算机可基于确定只读属性匹配来许可访问。

Description

认证脚本代码源的方法和设备
技术领域
本发明大致涉及计算机之间的许可访问,更特别地,涉及提供一种方式来认证支持浏览器的脚本源从而筛选出恶意指令。
背景技术
Web浏览器是使得用户显示并与标记语言文本(例如超文本链接标记语言HTML文本)交互的软件应用,其由Web服务器作为主机或保持在文件系统中。流行的浏览器包括OperaTM、MozillaTMFirefox及
Figure A20068003416500061
Internet Explorer(Opera是Opera软件学院的商标、Mozilla是Netscape通信公司的商标、Microsoft是微软公司的商标)。
浏览器被命令来通过显示高亮文本及图形来连接数据,该高亮文本及图形提供对额外内容的链接,例如标记语言文本。外部链接数据的能力提供了用于增强的出色方式,否则会难以被引用以定位脚注。
为了更好的扩展浏览器的多样性,浏览器创建者建立支持以处理指令。某些浏览器支持“脚本语言”。脚本语言是可嵌入在标记语言文件内的语言。这种语言在用户操作在大多数现代浏览器中常见的“显示源”功能时通常是可见的。支持脚本语言的浏览器是脚本支持浏览器。脚本的某些例子包括JavaScriptTM及Visual
Figure A20068003416500062
开发系统(JavaScript是Sun微系统公司的商标,Visual Basic是微软公司的商标)。
由浏览器读取或打开的脚本可向支持该浏览器的计算机提供指令。计算机执行这些指令。有时候,标记语言文本指令计算机在呈现该文本之后立即执行该脚本。
某些计算机可支持除了支持脚本之外可允许脚本访问操作系统的各种功能的浏览器。所述功能包括例如允许在支持该浏览器的本地机器上执行该脚本的磁盘操作系统命令。除非在该计算机上提出了某些安全性或认证,否则可能在浏览器上存在文件或标记文本以执行有敌意的命令。这些有敌意的命令包括例如在旧的磁盘操作系统(DOS)中执行命令“命令/c del*.*”,其可引起删除当前目录中的所有文件。
某些浏览器厂商提供了任意的命令功能,其例如赋予在客户端计算机上执行文件读取、文件写入以及文件创建的权力。此外,存在如下潜力通过扩展所述能力,在子窗口内具有脚本的网页可访问父窗口的脚本。在该情况中,脚本假设有父窗口授权。在这种情况下,子窗口是由父窗口打开的窗口,例如通过用户鼠标点击父窗口的超文本链接。在这种情形中,可在子窗口、或可能在子窗口的子窗口发现恶意代码。客户端浏览器从未知Web主机呈现网页时,恶意代码或恶意脚本与子窗口相关。当浏览器呈现网页时,浏览器打开子窗口。该网页的脚本可命令客户端浏览器在打开所述子窗口显示所述网页时执行恶意代码。由于每个窗口继承了父窗口的背景,因而每个子窗口可执行其祖先的脚本功能,该祖先优先于恶意子窗口一个或多个级别。
由于功能能够访问信息,因而功能是强大的功能。允许具有未知网页的未知Web主机执行未知脚本以从可信Web主机访问强大的功能可能是危险的。通过以已知正确标准来认证未知脚本可消除某些风险,该标准例如是客户端浏览器在呈现窗口时设定的只读特性。
强大的功能包括在本地客户端浏览器上访问、创建、修改或删除文件的功能。文件可包括存储到易失性存储器的数据。允许可信web主机提供指令以执行强大功能是可接受的。允许未知web主机提供指令来执行强大功能是不明智的。特别有害的强大功能是“命令/c del*.*”,其删除本地客户端浏览器当前目录中的所有文件。
字符串匹配是公知技术,用于确认未知个人或代理发送的口令与具有已知正确口令的主机相比有效。由于某些操作系统可在字符解释及回车(也称为输入)的存储中变化,已知使用统一字符取代各种字符解释,特别是在字符串与已知正确口令相同的地方,除了用于回车的解释。将特殊字符解释转换为一般或统一字符的过程被称为均化(homogenizing)字符串,或简称均化。
对象构造器是软件程序,其创建包括方法及数据或实例字段的对象。每个对象包括某些特性。例如,这些特性包括计算机中分配的存储该方法和实例字段的空间。在JavaScript语言中,执行JavaScript代码保留字“function(功能)”的计算机创建具有名称的对象。软件开发者通常选择有意义的名称。在某些专门情况中,具有没有名称的对象则更好。在这些情况中,软件开发者可使用JavaScript保留字“Function(功能)”,其以大写字母而与“function(功能)”相区别。该“Function(功能)”是功能对象构造器,其说明了在由JavaScript支持浏览器调用时,如何在其它事件中创建对象。
只读特性是那些与对象相关的、在对象存在期间保持不变的特性。如已经提到的,对象可在被调用时构建。类似地,对象可被解构,其中分配给该对象的存储器被释放给另一程序用于其它程序使用。例如,该存储器可被释放给操作系统。解构对象不需要覆写存储该对象各方面的存储器。当被解构时,对象不再存在。除了其它,窗口只读特性包括对存储窗口对象的存储器的起始的引用。
发明内容
本发明提供了一种方法、设备及计算机可用代码来授权访问主机站点上存储的脚本代码,其中该主机站点具有窗口只读特性。计算机客户端接收关键代码。计算机客户端确定该关键代码是否匹配于窗口返回代码。基于此,计算机调用该关键代码来获得该关键代码的只读特性,并确定该只读特性是否匹配于窗口只读特性。最后,计算机可基于确定该只读特性匹配来授权访问。
附图说明
本发明认为特有的新颖性属性在附加的权利要求中阐述。然而,通过在结合附图阅读时,参考以下例示实施例的详细说明,本发明自身以及使用的优选模式、进一步的目标及其优点将更好的理解,其中:
图1表示了根据例示的本发明实施例,数据处理环境的实例图;
图2表示了本发明的各方面可在其中执行的数据处理系统的结构图;
图3例示了可根据所例示的本发明实施例浏览的多个站点上保存的网页间的关系;
图4表示了用于从未知源确认关键代码的本发明例示实施例使用的步骤;
图5A表示了以根据本发明的例示实施例可探测的方式,恶意尝试向另一功能传递指令的JavaScript实施;及
图5B表示了根据本发明的例示实施例的安全功能的JavaScript实施。
具体实施方式
图1被提供作为本发明实施例可在其中执行的数据处理环境的实例图。应当认识到,图1仅是例示性的,不期望对本发明的各方面或实施例可在其中执行的环境主张或暗示任何限制。可对所述环境进行不超出本发明精神和范围的多种修改。
现在参考附图,图1描述了本发明的各方面可在其中执行的数据处理系统的网络图示。客户端计算机101可连接到网络102,例如因特网。客户端101可在操作系统103、脚本支持105以及浏览器107中分配资源。浏览器107可被设定来接受授权的可信主机120的内容,从而在客户端101上执行脚本。通常地,内容121(尤其是脚本)可在可信主机控制的域内,该可信主机可以是一个或多个处理器。
浏览器107浏览的网页可来源于可信主机120的内容121。该内容可引用半可信主机130上驻留的内容131。内容131可依次引用非可信主机140上驻留的内容141。可信主机可被称为站点A,半可信主机可被称为站点B,非可信主机可被称为站点C。
现在参考图2,表示了本发明的各方面可在其中执行的数据处理系统的结构图。数据处理系统200是计算机的例子,例如图1中的主机120或客户端101,其中可定位实施本发明实施例的处理的代码或指令。
在所述例子中,数据处理系统200使用集线器架构,包括北桥、存储器控制器集线器(MCH)208、以及南桥和输入/输出(I/O)控制器集线器(ICH)210。处理器202、主存储器204以及图形处理器218连接到存储器控制器集线器208。图形处理器218可通过例如加速图像接口(AGP)连接到存储器控制器集线器208。
在所述例子中,局域网(LAN)适配器212、音频适配器216、键盘及鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口以及其它通信端口232和PCI/PCIe装置234连接到输入/输出控制器集线器210。PCI/PCIe装置可包括例如以太网适配器、插入式卡、用于笔记本电脑的PC卡等。PCI使用卡总线控制器,而PCIe不使用。ROM 224可例如是快闪二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可使用例如集成驱动电路(IDE)或串行高级技术附加装置(SATA)接口。超I/O(SIO)装置236可连接到ICH 210。
操作系统在处理器202上运行。处理器202协调并提供图2中数据处理系统200内的各种部件的控制。作为客户机,操作系统可以是商业操作系统,例如XP(Microsoft和Windows是微软公司美国、其它国家或两者的商标)。面向对象的编程系统,例如JavaTM编程系统,可结合操作系统运行,并提供从Java程序或数据处理系统200上执行的应用到操作系统的调用(Java是美国、其它国家或两者的Sun微系统公司的商标)。
作为服务器,数据处理系统200可例如是IBM eServerTM
Figure A20068003416500102
计算机系统、运行高级交互执行体(
Figure A20068003416500103
)操作系统或LINUX操作系统(eServer、pSeries和AIX是国际商业机器公司在美国、其它国家或两者的商标,而Linux是Linux Torvald在美国、其它国家或两者的商标)。
用于操作系统的指令、面向对象的编程系统、以及应用或程序位于存储设备上,例如硬盘驱动器226,并可被载入到主存储器204用于处理器202执行。用于本发明实施例的处理器由处理器202使用计算机执行指令执行,该计算机执行指令可位于存储器内,例如主存储器204、只读存储器224或一个或多个外围设备226和230中。这些处理可由任何处理单元执行,该处理单元可包含一个或多个处理器。
本领域普通技术人员可认识到,图1和图2中的硬件可根据实施方式而改变。可使用除了图1和图2所述硬件之外的或取代其使用其它内部硬件或外围设备,例如闪存、等效的非易失性存储器或光盘驱动器等。同样,本发明的处理可应用于多处理器数据处理系统。
图3例示了可由本发明示例性实施例浏览的多个web站点上存储的网页之间的关系。当呈现在客户端上时,网页是一个窗口。操作浏览器的用户可初始地打开父窗口320,其链接到子窗口330。子窗口330依次可链接孙窗口340。用户可首先点击超文本链接325来使浏览器查询并呈现子窗口330。然后用户可点击超文本链接335来使浏览器查询并孙窗口340内呈现的第三网页。该第三网页可隐藏有恶意脚本。该第三网页可在恶意攻击者的控制下驻留在网站上。该网站可例如是图1的非可信主机140。该恶意脚本可在JavaScript中编写。为了操作,该恶意脚本被描述成超文本标记语言文件部分中的计算机指令。浏览器被安装以读取这些计算机指令类型,并在某些情况中执行这些指令。使浏览器执行这些指令的一种方式是命令浏览器立即执行具有JavaScript保留字OnOpen()的指令。
浏览器通过创建对象来呈现网页,该对象存储涉及网页的属性。这些属性包括显示器上显示网页方面的位置坐标。显示器可连接到客户端浏览者的图形处理器,例如图2的图形处理器218。属性可以是只读的,即属性由客户端浏览器分配,并且不能基于任何网页指令分配。父窗口是显示包括对给定窗口的引用的网页。因此,该给定窗口可具有“父窗口”作为属性,其可具有身份。然后,通过扩展,给定窗口的网页可具有父窗口的属性。通过参考窗口的对象而建立该身份。每个窗口具有与其它所有窗口不同保留的存储器块。除了其它之外,该存储器块存储窗口中的属性。
因此,网页可具有窗口,其可具有只读的、并在客户端浏览器上显示窗口中唯一的属性。窗口具有与其父窗口不同,也与其孙窗口不同的身份,其中每个窗口代表与其它窗口不同的等级级别。因此,图3的每个窗口具有其自己的身份。可在客户端浏览器中执行的JavaScript可继承或访问所述的级别。
脚本作者可知道,认证的部分需要孙脚本通过发送最上层窗口的对象来尝试访问强大的功能,其中最上层的窗口包括用于功能的脚本。该最上层窗口还是窗口的对象层次中最高级别的窗口或根窗口。功能越强大,则控制对该功能的访问越重要。由于功能能够访问信息,因而功能可能是强大的。换句话说,脚本作者可能尽力在JavaScript对象层次的根级别上得到该功能。发回对象的一种尝试可对于孙窗口或脚本340发送JavaScript“return window.opener”350。
发回对象意味着执行代码片段。该代码片段在接收该代码片段的客户端浏览器的语境内执行。客户端浏览器接收该代码片段,调用强大的功能,该强大的功能调用或执行代码片段以获得所述对象。
在这种情况下,客户端浏览器接收与孙窗口相关的代码。在孙窗口的语境中,JavaScript“return window.opener”350产生子窗口330的对象,在孙窗口340之上一个层级。另一发回最上层窗口的对象的尝试是对于孙窗口340发送JavaScript“returnwindow.opener.opener”360。这两个尝试中,仅“returnwindow.opener.opener”360可成功提供符合父窗口320的对象。
图4是根据本发明的优选实施例,从未知源验证关键代码的处理流程图。图4例示的处理可在客户端浏览器中执行,该浏览器可在处理器中执行,例如图2的处理器200。关键代码是已知为代码片段的脚本代码的任意片段。如果该关键代码符合某个标准,则该关键代码被称为有效。确定该关键代码是否符合标准的过程是验证过程。有效的关键代码在客户端浏览器和提供该关键代码的源之间建立信任级别。因此,接收关键代码并从未知源验证该关键代码可提供对该源的更多了解,以及其有害的可能性。软件开发者可能希望在未知源的功能具有有效关键代码时授予访问强大功能的能力。
起初,用户动作可使浏览器执行子窗口的脚本,例如孙窗口340。该子窗口可发送或传递关键代码,以期欺骗父窗口。关键代码是代码片段。浏览器从未知源接收未知的代码片段(步骤401)。未知源包括可由恶意攻击者控制的源。并非所有未知源都是有害的。在图3的例子中,未知源是两个远离第一引用内容的链接。该浏览器可例如是图1的浏览器107。
浏览器打开异常处理程序,这样,执行强大功能的失败尝试以用户友好的方式对浏览器操作者是明显的(步骤403)。由于某些浏览器可在处理器上操作,该处理器使用多种方式之一代表空格,例如回车,处理器可均化可在未知代码字段中出现的任何空格(步骤405)。均化意味着处理器剥离出关键代码中的所有空格,并不使用字符或以占位符取代该空格。均化空格可包括仅删除回车及换行。接下来,处理器确定关键代码是否匹配于已知正确的窗口返回代码(步骤407)。如果关键代码逐字母地匹配于正确的窗口返回代码,则可建立该匹配。匹配可区分大小写。在使用JavaScript的例子中,窗口返回代码可根据以下的表1。该窗口返回代码是恒定不变的代码,其作为关键代码与之匹配而表示有效的标准。为了窗口返回代码源自父窗口320,该代码可以是“new Function(‘return window’)”。对于第一标准,该窗口返回代码可被视为待匹配的字符串。
表1:
    实例号     窗口返回代码
    1  new Function(‘return window’)
关键代码可由孙窗口,例如“new Function(‘returnwindow.opener.opener’)”提供。但是“new Function(‘returnwindow.opener.opener’)”不能匹配窗口返回代码,如表1的newFunction(‘return window’)。在这种情况下发生否定确定,处理器可返回预定值,例如错误(步骤409)。
如果发生了肯定确定,则处理器可调用该关键代码来获得该关键代码的结果及结果只读属性(步骤411)。只读属性是客户端浏览器在窗口建立上设置的属性。例如,在建立窗口后,浏览器对于该窗口创建存储器分配,其在窗口存在期间保持不变。调用包括在这些例子中执行。当传递关键代码时,JavaScript脚本传递该关键代码作为变量,其可解释为有效JavaScript代码。为了调用该代码,所述脚本功能作者用字符“()”伴随变量名。一旦由处理器执行,则关键代码可产生对象或对存在窗口的引用,其中窗口是对象。该对象可拥有对于对象唯一且只读的数据字段或属性。唯一且只读的数据字段或属性的例子包括,例如JavaScript窗口顶端数据字段或窗口对象的属性。JavaScript窗口顶端数据字段是窗口对象的缩短但唯一的属性,即该字段或属性不如窗口对象复杂。使用该唯一但较小复杂度的属性与正确的窗口返回字段比较并匹配可允许匹配测试更快结束。
调用未知代码或关键代码的结果与驻留强大功能的父窗口的已知正确只读属性相比较,从而确定该结果只读属性是否匹配父窗口正确只读属性(步骤413)。在JavaScript中获得只读属性的一种方式是对于窗口获得“顶端”属性,其是对于窗口对象的只读引用,是对包含该窗口及相关脚本的窗口的顶级窗口引用。如果确定是只读属性匹配,处理器授权访问(步骤415)。该访问授权可以是返回预定值的形式,例如对于强大功能的真实值。
如果打开了异常处理程序,则解释关键代码中的错误作为机器指令将导致客户端浏览器投入异常。投入异常意味着做出报告,可能使用了对话框,通知用户关键代码中的故障种类。
图5A表示了根据本发明例示性实施例,以可检测的方式恶意尝试向另一功能传递指令的JavaScript实施。该恶意尝试代码可在传统的超文本标记语言文档中位于<head>和</head>标记之间,该传统超文本标记语言文档是例如在图1的非可信主机140上保存的文档。该恶意尝试在该例示例子中包括3个部分。第一部分可以是距本窗口的祖先两个指引距离的窗口或主机站点中功能501的调用。第二部分可以是关键代码503。值得注意的是,尝试503可以是任何字符串,并且可以随机产生或者强力尝试的产品。第三部分是有效负载505,或者如果其它条件符合,可以是客户端可执行的命令。
图5B表示了根据本发明例示性实施例的安全功能的JavaScript实现。该代码可典型地位于传统超文本标记语言文档中的<head>和</head>标记之间,该传统超文本标记语言文档是例如在图1的可信主机120上保存的文档。在不道德的人以图5A所示方式尝试的例子中,该代码的操作如下。强大的功能可被定义来接受两个字符串,例如executeArbitraryCommand接受字符串关键代码513及commandstr 515,其分别接收值“new Function(‘returnwindow.opener.opener’)”503和“Command/c del*.*”505。迅速地,产生对功能的调用以验证来自未知源的关键代码,即功能,isSecure516。IsSecure接收用于参数“fcn”520的值,其中该值与被分配关键代码513“新功能(‘return window.opener.opener’)”的值相同。期望且有效的字符串的固定值可用于比较。该固定值是窗口返回代码,其可具有可由空格521取代的任何回车。
可在JavaScript中通过使用“Function”关键字创建特定的功能类型,该“Function”关键字也称为功能对象构造器。每当浏览器使用功能对象构造器创建功能对象时,则该对象被评价。功能对象构造器允许功能具有方法和属性。JavaScript将所定义的功能对象视为具有值的数据类型。这样,功能对象与更传统的功能不同之处在于,在传统功能中,使用“function double(x){x=x+x}”类型定义的功能仅代表一个值,而功能对象具有对象的属性。在窗口返回代码“newFunction(‘return window’)”的例子中,对于从具有执行该功能的、自网页呈现的窗口构造对象。JavaScript“Function”的使用允许不需要功能名而创建内嵌功能。
为了完成比较,客户端将关键代码转换成字符串,并可用空格523取代回车。随后,进行比较,其可以是两部分逻辑AND(与)操作的一半。如果第一半真,则可由处理器(例如客户端)执行下一半。执行该“new Function(‘return window’)”代码来获得启动该脚本的窗口的对象,即非可信的Web主机,以及特别地,获得顶部属性531。Javascript window.top 533执行以提供可信主机的窗口对象,以及然后提供顶部属性。由于顶部属性是只读的,并且属于对象,当其在客户端中被实例化时,非可信的主机窗口会不匹配于该可信主机窗口。
值得注意的是,当来自实际主机站点的有效代码提供window.top时,属性“top”包括具有与其比较的window.top的身份,例如top属性531。此外,本发明实施例可省略顶部属性并比较对象实例,因为客户端内的每个对象是唯一的。
如果通过图5A提供的代码引发错误,则客户端可获得异常并向客户端报告该异常。然而,更可能的,所提供的代码将执行,而条件将估计对象523的空间均化版本、或顶部属性531,从而发现一个或两者失效。预定失败值可被返回给executeArbitraryCommand,其将基于条件声明550跳过强大功能560,因此防止客户端产生损害。强大功能560可解析commandStr 515并基于commandStr 515执行一个或多个命令。强大功能560不需要删除或改变文件。由于该功能能够访问信息,因而该功能是强大的。
因此,作为强大功能代码的源自同一网页内的代码可在认证之后被执行,源自子网页或后代网页上的代码被检测,并被指引以避免访问强大功能。
本发明的各方面表示为使用JavaScript语言实现。但是,应当认识到,其它脚本语言也可提供用于确认的只读属性。此外,浏览器可基于呈现网页执行的任何代码可以是适合用于实现本发明的。本发明更严格的示例性实施例不均化空格,并期望非可信功能提供更具体的匹配字符串。
本发明可采用完全硬件实施例、完全软件实施例、或保护硬件和软件元素两者的实施例的形式。在优选实施例中,本发明以软件实现,其包括但不限于固件、驻留软件、微代码等。
此外,本发明可采用计算机程序产品的形式,该计算机程序产品可从计算机可用或计算机可读的介质访问,该介质提供了由或结合计算机或任何指令执行系统使用的程序代码。为了说明的目的,计算机可用或计算机可读介质可以是可包含、存储、通信、传播或传输程序用于由或结合指令执行系统、设备或装置使用的任何设备。
该介质可以是电、磁、光、电磁、红外、或半导体系统(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁铁磁盘及光盘。光盘的当前例子包括CD-只读存储器(CD-ROM)、CD-读/些(CD-R/W)以及DVD。
适合于存储和/或执行程序代码的数据处理系统可包括至少一个处理器,该处理器通过系统总线直接或间接耦合到存储器元件。该存储器元件可包括在程序代码的实际执行期间使用的本地存储器,大容量存储器,以及提供至少某些程序代码的临时存储,从而减小执行期间必须从大容量存储器获得代码的次数的高速缓存。
输入/输出或I/O设备(包括但不限于键盘、显示器、指针设备等)可直接或通过转换I/O控制器被耦合到该系统。
网络适配器还可被耦合到该系统,从而使得数据处理系统通过插入私有的或公共的网络被耦合到其它数据处理系统、远程打印机或存储设备。Modem、cable modem以及以太网卡仅仅是当前可用的网络适配器类型的一些。
为了例示及说明的目的,已经表示了本发明的说明,其不期望将本发明详尽或限制成所公开形式。多种修改及改变对于本领域普通技术人员来说是明显的。为了最好的解释本发明的原理选择并描述了这些实施例,为了使得其它本领域普通技术人员理解本发明,具有各种修改的各种实施例适合于特定的使用期望,描述了特定的应用。

Claims (20)

1、一种脚本支持浏览器中的方法,用于许可访问主机站点上驻留的脚本,该主机站点具有窗口只读属性,该计算机实施方法包括:
接收关键代码;
确定关键代码是否匹配于窗口返回代码;
调用关键代码以获得关键代码的窗口只读属性;
确定只读属性是否匹配于所述窗口只读属性;及
响应于确定只读属性匹配于所述窗口只读属性,许可对脚本代码的访问。
2、权利要求1的用于许可的计算机实施方法,其中响应于确定所述关键代码匹配于窗口返回代码,调用所述关键代码以获得所述关键代码的只读属性。
3、权利要求2的用于许可的计算机实施方法,其中所述窗口返回代码是功能对象构造器。
4、权利要求2的用于许可的计算机实施方法,其中所述只读属性是顶级窗口引用。
5、权利要求2的许可方法,其中确定所述关键代码是否匹配于窗口返回代码包括:
均化所述关键代码内的空格以获得均化的关键代码;及
均化所述窗口返回代码内的空格以获得均化的窗口返回代码;及
确定均化的关键代码是否匹配于均化的窗口返回代码。
6、权利要求2的许可的方法,进一步包括:
允许异常报告;及
响应于确定所述只读属性不匹配于所述窗口只读属性,发出异常。
7、权利要求2的用于许可的计算机实施方法,其中许可对所述脚本代码的访问包括:
接收指令;及
执行所述指令。
8、一种计算机程序产品,包括:
在脚本支持浏览器中的包括计算机可用程序代码的计算机可用介质,用于许可访问主机站点上驻留的脚本,该主机站点具有窗口只读属性用于在计算机之间显示,其中每个计算机具有至少一个显示器,且每个电子会议参加者具有一个组显示器,所述计算机程序产品包括:
用于接收关键代码的计算机可用程序代码;
用于确定关键代码是否匹配于窗口返回代码的计算机可用程序代码;
用于调用关键代码以获得关键代码的只读属性的计算机可用程序代码;
用于确定所述只读属性是否匹配于所述窗口只读属性的计算机可用程序代码;及
用于响应于确定所述只读属性匹配于所述窗口只读属性,许可对脚本代码的访问的计算机可用程序代码。
9、权利要求8的计算机程序产品,其中用于获得所述关键代码的只读属性的计算机可用程序代码的执行响应于确定所述关键代码匹配于窗口返回代码的计算机可用程序代码。
10、权利要求9的计算机程序产品,其中所述窗口返回代码是功能对象构造器。
11、权利要求9的计算机程序产品,其中所述只读属性是顶级窗口引用。
12、权利要求9的计算机程序产品,其中用于确定所述关键代码是否匹配于窗口返回代码的计算机可用程序代码包括:
用于均化所述关键代码内的空格以获得均化的关键代码的计算机可用程序代码;及
用于均化所述窗口返回代码内的空格以获得均化的窗口返回代码的计算机可用程序代码;及
用于确定均化的关键代码是否匹配于均化的窗口返回代码的计算机可用程序代码。
13、权利要求9的计算机程序产品,进一步包括:
用于允许异常报告的计算机可用程序代码;及
用于响应于确定所述只读属性不匹配于所述窗口只读属性而发出异常的计算机可用程序代码。
14、权利要求9的计算机程序产品,其中用于许可访问所述脚本代码的计算机可用程序代码包括:
用于接收指令的计算机可用程序代码;及
用于执行所述指令的计算机可用程序代码。
15、一种数据处理系统,包括:
总线;
连接到所述总线的存储设备,其中计算机可用代码位于所述存储设备中;
连接到所述总线的通信单元;
连接到所述总线的处理单元,其中所述处理单元连同脚本支持浏览器一起操作以许可访问主机站点上驻留的脚本,该主机站点具有窗口只读属性,该处理单元执行计算机可用代码来:
接收关键代码;确定该关键代码是否匹配于窗口返回代码;调用所述关键代码以获得所述关键代码的窗口只读属性;确定所述只读属性是否匹配于所述窗口只读属性;及响应于确定所述只读属性匹配于所述窗口只读属性,许可对脚本代码的访问。
16、权利要求15的数据处理系统,其中响应于执行所述计算机可用代码以确定所述关键代码匹配于窗口返回代码,执行计算机可用代码以调用所述关键代码以获得所述关键代码的只读属性。
17、权利要求16的数据处理系统,其中所述窗口返回代码是功能对象构造器。
18、权利要求16的数据处理系统,其中所述只读属性是顶级窗口引用。
19、权利要求16的数据处理系统,其中在执行计算机可用代码以确定所述关键代码是否匹配于窗口返回代码时,处理单元进一步执行计算机可用代码来:均化所述关键代码内的空格以获得均化的关键代码;均化所述窗口返回代码内的空格以获得均化的窗口返回代码;及确定均化的关键代码是否匹配于均化的窗口返回代码。
20、权利要求16的数据处理系统,其中所述数据处理单元执行计算机可用代码来:允许异常报告;及响应于确定所述只读属性不匹配于所述窗口只读属性,发出异常。
CNA2006800341654A 2005-09-23 2006-09-05 认证脚本代码源的方法和设备 Pending CN101268468A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/233,962 2005-09-23
US11/233,962 US8375423B2 (en) 2005-09-23 2005-09-23 Authenticating a source of a scripted code

Publications (1)

Publication Number Publication Date
CN101268468A true CN101268468A (zh) 2008-09-17

Family

ID=37441243

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800341654A Pending CN101268468A (zh) 2005-09-23 2006-09-05 认证脚本代码源的方法和设备

Country Status (4)

Country Link
US (1) US8375423B2 (zh)
EP (1) EP1938236A1 (zh)
CN (1) CN101268468A (zh)
WO (1) WO2007039376A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US8448241B1 (en) * 2006-02-16 2013-05-21 Oracle America, Inc. Browser extension for checking website susceptibility to cross site scripting
US9092823B2 (en) * 2007-06-01 2015-07-28 F-Secure Oyj Internet fraud prevention
US8181260B2 (en) * 2007-08-15 2012-05-15 International Business Machines Corporation Tracking the origins of data and controlling data transmission
US8612993B2 (en) * 2008-02-21 2013-12-17 Microsoft Corporation Identity persistence via executable scripts
US8844056B2 (en) 2009-01-30 2014-09-23 British Telecommunications Public Limited Company Service provision
US8555391B1 (en) 2009-04-25 2013-10-08 Dasient, Inc. Adaptive scanning
US9154364B1 (en) * 2009-04-25 2015-10-06 Dasient, Inc. Monitoring for problems and detecting malware
US8516590B1 (en) 2009-04-25 2013-08-20 Dasient, Inc. Malicious advertisement detection and remediation
US9448772B2 (en) * 2013-03-15 2016-09-20 Microsoft Technology Licensing, Llc Generating program fragments using keywords and context information
JP2015125620A (ja) * 2013-12-26 2015-07-06 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び情報処理システム
CN106156616B (zh) * 2016-06-24 2019-08-23 武汉斗鱼网络科技有限公司 一种网站脚本攻击的防御方法及防御系统
CN109816364A (zh) * 2019-01-04 2019-05-28 深圳壹账通智能科技有限公司 交易数据处理方法、装置、计算机设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US204719A (en) * 1878-06-11 Improvement in sand-bands for vehicle-hubs
US268139A (en) * 1882-11-28 Child s carriage
US135504A (en) * 1873-02-04 Improvement in earth-closets
US5925126A (en) * 1997-03-18 1999-07-20 Memco Software, Ltd. Method for security shield implementation in computer system's software
US6128774A (en) * 1997-10-28 2000-10-03 Necula; George C. Safe to execute verification of software
US6745245B1 (en) * 1998-04-09 2004-06-01 Webtv Networks, Inc. Managing access to set-top box objects using television conditional access system
AU6401999A (en) * 1998-09-28 2000-04-17 Argus Systems Group, Inc. Trusted compartmentalized computer operating system
US6266774B1 (en) * 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US7882555B2 (en) * 2001-03-16 2011-02-01 Kavado, Inc. Application layer security method and system
US7318238B2 (en) * 2002-01-14 2008-01-08 Microsoft Corporation Security settings for markup language elements
US20040168078A1 (en) * 2002-12-04 2004-08-26 Brodley Carla E. Apparatus, system and method for protecting function return address
US20040268139A1 (en) * 2003-06-25 2004-12-30 Microsoft Corporation Systems and methods for declarative client input security screening
US20050223080A1 (en) * 2004-04-05 2005-10-06 Microsoft Corporation Updatable user experience

Also Published As

Publication number Publication date
WO2007039376A1 (en) 2007-04-12
EP1938236A1 (en) 2008-07-02
US8375423B2 (en) 2013-02-12
US20070079361A1 (en) 2007-04-05

Similar Documents

Publication Publication Date Title
CN101268468A (zh) 认证脚本代码源的方法和设备
US10044747B2 (en) Method, system, and computer program product for automatically mitigating vulnerabilities in source code
US10630714B2 (en) Method, system, and computer program product for automatically mitigating vulnerabilities in source code
US8239954B2 (en) Access control based on program properties
US8800042B2 (en) Secure web application development and execution environment
Guha et al. Verified security for browser extensions
US7249379B2 (en) Method and apparatus for implementing process-based security in a computer system
US8024564B2 (en) Automating configuration of software applications
US8984608B2 (en) Image processing apparatus, image processing system, and computer-readable storage medium for generating a token value
US20170353458A1 (en) System and method to allow third-party developer to debug code in customer environment
Almorsy et al. Supporting automated vulnerability analysis using formalized vulnerability signatures
WO2018118816A1 (en) Operating system update management for enrolled devices
US11783016B2 (en) Computing system and method for verification of access permissions
CN108289098A (zh) 分布式文件系统的权限管理方法和装置、服务器、介质
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
US11201894B2 (en) Method, system, and computer program product for automatically mitigating vulnerabilities in source code
US8484232B2 (en) Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value
US20220060501A1 (en) Method, system, and computer program product for automatically mitigating vulnerabilities in source code
US20240095402A1 (en) Methods and Systems for Recursive Descent Parsing
Furda et al. A practical approach for detecting multi-tenancy data interference
KR20100027556A (ko) 로그인된 계정권한 제어를 이용한 프로그램 실행관리 방법 및 기록매체
CN111427589B (zh) 一种大数据集群资源管理系统的数据空间部署方法和装置
Muniraman et al. A practical approach to include security in software development
Hamilton Security in Programming Languages
Basney et al. Trusted CI: The NSF Cybersecurity Center of Excellence GenApp Engagement Report

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080917