CN104182700A - 保护web页面可执行脚本的方法 - Google Patents
保护web页面可执行脚本的方法 Download PDFInfo
- Publication number
- CN104182700A CN104182700A CN201410427934.3A CN201410427934A CN104182700A CN 104182700 A CN104182700 A CN 104182700A CN 201410427934 A CN201410427934 A CN 201410427934A CN 104182700 A CN104182700 A CN 104182700A
- Authority
- CN
- China
- Prior art keywords
- script
- server
- request
- page
- session
- 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
Links
- 238000013515 script Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/128—Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
为了解决不能持久有效保护WEB页面中可执行脚本的知识产权问题,本发明提供了一种保护WEB页面可执行脚本的方法。保护WEB页面可执行脚本的方法其特征在于包括如下步骤:在服务器脚本建立SESSION,并在SESSION中建立至少一个标识项;在浏览器产生HTML页面的脚本中调用服务器可执行脚本的请求中需包括与步骤A中的标识项对应的描述;服务器脚本接收到HTML页面调用可执行脚本的请求后核实所述请求中包括与步骤A中的标识项对应的描述后,服务器脚本调取可执行脚本内容输出给浏览器HTML页面。采用本发明的方法可以有效保护WEB页面中可执行脚本的知识产权。
Description
技术领域
本发明属于一种因特网通信技术,特别是一种客户端浏览器和WEB服务器之间传递可执行脚本的方法。
背景技术
目前,客户端浏览器的工作机制多是将HTML文件下载到本地后执行,操作者才能看到页面。HTML文件中的可执行脚本常常是用JavaScript或VBScript等解释性语言编写的程序代码,浏览器载入可执行脚本后,操作浏览器的人可以很容易地得到这些可执行脚本,可执行脚本的知识产权很容易被侵犯。虽然相关厂商提供了一些在服务器端加密/在客户端解密的技术,例如微软提供的Encode技术,但对应这些加密方法的破解程序不断产生,使得现有的加密方法都不能持久有效地保证可执行脚本的知识产权不被侵犯。
发明内容
为了解决不能持久有效保护WEB页面中可执行脚本的知识产权问题,本发明提供了一种保护WEB页面可执行脚本的方法。
本发明的技术方案如下:
保护WEB页面可执行脚本的方法包括如下步骤:
A在服务器脚本建立SESSION,并在SESSION中建立至少一个标识项;
B在浏览器产生HTML页面的脚本中调用服务器可执行脚本的请求中需包括与步骤A中的标识项对应的描述;
C服务器脚本接收到HTML页面调用可执行脚本的请求后核实所述请求中是否包括与步骤A中的标识项对应的描述,若不包括则执行出错处置程序,所述出错处置程序包括销毁SESSION中的标识项;
D在步骤C得到肯定的结果后,服务器脚本调用可执行脚本并输出给浏览器HTML页面;
E服务器脚本在接收到步骤B中调用服务器可执行脚本的请求后一定时间,服务器脚本销毁SESSION中的标识项。
步骤A中所述标识项为数据项,所述数据项具有特定值。
步骤B中与步骤A中的标识项对应的描述是指调用服务器可执行脚本的请求中设定有与所述数据项和特定值相等的符号。
本发明的技术效果:
采用本发明的方法,可执行脚本文件的地址只在服务器端脚本出现,没有在浏览器下载的文件中出现,使得从浏览器无法获知可执行代码的地址。尽管可执行脚本的内容被浏览器下载并执行,但由于该内容是动态输出,不是一个完整的文件,因此浏览器不会缓存该内容,只在内存中执行该内容,因此从浏览器端是无法看到可执行脚本的内容的。
另外,尽管从浏览器端的HTML页面脚本中会看到请求获取可执行脚本的代码语句,但该代码语句在执行后,服务器端接收到该请求后一段时间不论请求是否成功,均会销毁SESSION中的标识项,因此,即使复制该请求语句中的地址信息访问服务器,因为SESSION中的标识项已经不存在,从而不能获得可执行脚本文件内容。
第三,由于SESSION只对合法的同组浏览器窗口有效,如果采用某种方法禁止上述请求语句的执行,然后使用该语句中的地址信息访问服务器,也会因为SESSION不存在而不能获得可执行脚本的内容。
附图说明
图1为本发明方法的流程图。
具体实施方式
下面结合附图对本发明的技术方案进行详细地说明。
第一,需要在服务器端建立SESSION,并在SESSION中建立标识项page,page被赋予一个值。该标识项及标识项的值可以是任意的,例如标识项的名称可以是HTML页面的文件名,其值可以采用一个随机值(如当前的时间)。以PHP为例,实现上述目的的代码如下:
$_SESSION[‘page’]=‘xxxxxxxx’;
其中,“page”是为数据项定义的名称,而“xxxxxxxx”是为数据项赋的值。
第二,在浏览器产生HTML页面的脚本中调用服务器可执行脚本的请求中包括对应page项的内容。下面以PHP的GET方法为例说明这一段的脚本形式:
<SCRIPTtype=text/javascriptsrc=”getjs.php?index=page&page=xxxxxxxx”>
其中,“getjs.php”是一个专门建立的动态输出Javascript代码的服务器脚本,“index”也是一个任意的名字。“page”是在第一步中指定的SESSION中标识项的名称,而“xxxxxxxx”是在第一步中为page赋的值。
这样,当浏览器获得HTML页面后,将按照地址“getjs.php?index=page&page=xxxxxxxx”向服务器请求获得所需要的脚本。
第三,服务器接收到浏览器请求后于适当时间后(在本实施例中是2秒后)销毁SESSION中的page标识项。
第四,服务器接收到浏览器请求后判断该请求是否是由合法的浏览器(合法的浏览器品牌和版本)发出,是否是本站的域名下的页面提交的请求。如果不符合前述判断结论为不会法,则报错退出或采取任何其它自定义的出错处理程序。
第五,在第四的判断为合法的情况下,则检查请求中是否包括“index”。如果请求中没有包括“index”,则报错退出或采取任何其它自定义的出错处理程序。
第六,在第五的判断为包括了“index”情况下,则判断index是否包括了“page”项,如果没有包括“page”,采取出错控制动作,这种情况下要立即销毁SESSION中名为“page”的数据项。这样可以避免“page”的存在使得从非法浏览器端可以获得后续的可执行脚本程序内容。
第七,在第六的判断为包括“page”项情况下,判断page项的值是否与SESSION中page的值相同,如果不相同,采取出错控制动作,这种情况下要立即销毁SESSION中名为“page”的数据项。
第八,在第七的判断为page值相同情况下,销毁SESSION中名为“page”的标识项,然后打开服务器中对应的可执行脚本文件,在这里就是javascript.js,将该文件中的内容全部读出来并输出给发出请求的浏览器。这样,浏览器就获得了完整的脚本代码,执行后所有功能都可以正常完成了。
传统的引用一个名称为javascript.js的可执行脚本的代码如下:
<SCRIPTtype=text/javascriptsrc=”javascript.js”>
其中,“javascript.js”是页面要引用的脚本代码地址(可能是带路径的),也就是要保护的可执行脚本文件。从浏览器端可以看到可执行脚本文件的地址,因此可执行脚本文件很容易被复制并非法利用。
本发明的方法中可执行脚本文件的地址只在服务器端脚本出现,没有在浏览器下载的文件中出现,使得从浏览器无法获知可执行代码的地址。尽管可执行脚本的内容被浏览器下载并执行,但由于该内容是动态输出,不是一个完整的文件,因此浏览器不会缓存该内容,只在内存中执行该内容,因此从浏览器端是无法看到可执行脚本的内容的。
应当指出,以上所述具体实施方式可以使本领域的技术人员更全面地理解本发明,但不以任何方式限制本发明。因此,尽管本说明书参照实施方式对本发明已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和技术实质的技术方案及其改进,其均应涵盖在本发明专利的保护范围当中。
Claims (3)
1.保护WEB页面可执行脚本的方法其特征在于包括如下步骤:
A在服务器脚本建立SESSION,并在SESSION中建立至少一个标识项;
B在浏览器产生HTML页面的脚本中调用服务器可执行脚本的请求中需包括与步骤A中的标识项对应的描述;
C服务器脚本接收到HTML页面调用可执行脚本的请求后核实所述请求中是否包括与步骤A中的标识项对应的描述,若不包括则执行出错处置程序,所述出错处置程序包括销毁SESSION中的标识项;
D在步骤C得到肯定的结果后,服务器脚本调取可执行脚本内容输出给浏览器HTML页面;
E服务器脚本在接收到步骤B中调用服务器可执行脚本的请求后一定时间,服务器脚本销毁SESSION中的标识项。
2.根据权利要求1所述的保护WEB页面可执行脚本的方法,其特征在于步骤A中所述标识项为数据项,所述数据项具有特定值。
3.根据权利要求2所述的保护WEB页面可执行脚本的方法,其特征在于步骤B中与步骤A中的标识项对应的描述是指调用服务器可执行脚本的请求中设定有与所述数据项和特定值相等的符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427934.3A CN104182700A (zh) | 2013-12-12 | 2014-08-27 | 保护web页面可执行脚本的方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310691302 | 2013-12-12 | ||
CN201310691302.3 | 2013-12-12 | ||
CN201410427934.3A CN104182700A (zh) | 2013-12-12 | 2014-08-27 | 保护web页面可执行脚本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104182700A true CN104182700A (zh) | 2014-12-03 |
Family
ID=51963731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410427934.3A Pending CN104182700A (zh) | 2013-12-12 | 2014-08-27 | 保护web页面可执行脚本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104182700A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018006241A1 (en) * | 2016-07-04 | 2018-01-11 | Mcafee, Inc. | Method and apparatus to detect security vulnerabilities in web application |
CN109885792A (zh) * | 2019-01-04 | 2019-06-14 | 石化盈科信息技术有限责任公司 | 一种基于webdriver技术的APP桥接方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119675A1 (en) * | 2007-11-05 | 2009-05-07 | Higgins William P | Extensible Framework for Managing UI State in a Composite AJAX Application |
CN102707912A (zh) * | 2011-03-04 | 2012-10-03 | 佳能株式会社 | 信息处理设备、信息处理***以及控制信息处理设备的方法 |
CN102750281A (zh) * | 2011-04-19 | 2012-10-24 | 腾讯科技(深圳)有限公司 | 一种浏览器的脚本处理方法和*** |
CN103246606A (zh) * | 2013-04-26 | 2013-08-14 | 广东电网公司电力科学研究院 | Esb平台的性能方法和*** |
-
2014
- 2014-08-27 CN CN201410427934.3A patent/CN104182700A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119675A1 (en) * | 2007-11-05 | 2009-05-07 | Higgins William P | Extensible Framework for Managing UI State in a Composite AJAX Application |
CN102707912A (zh) * | 2011-03-04 | 2012-10-03 | 佳能株式会社 | 信息处理设备、信息处理***以及控制信息处理设备的方法 |
CN102750281A (zh) * | 2011-04-19 | 2012-10-24 | 腾讯科技(深圳)有限公司 | 一种浏览器的脚本处理方法和*** |
CN103246606A (zh) * | 2013-04-26 | 2013-08-14 | 广东电网公司电力科学研究院 | Esb平台的性能方法和*** |
Non-Patent Citations (1)
Title |
---|
杨建昆: "解决B/S结构网络信息安全的一种新方法", 《中国通信学会信息通信网络技术委员会2003年年会论文集》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018006241A1 (en) * | 2016-07-04 | 2018-01-11 | Mcafee, Inc. | Method and apparatus to detect security vulnerabilities in web application |
US11194914B2 (en) | 2016-07-04 | 2021-12-07 | Mcafee, Llc | Method and apparatus to detect security vulnerabilities in a web application |
CN109885792A (zh) * | 2019-01-04 | 2019-06-14 | 石化盈科信息技术有限责任公司 | 一种基于webdriver技术的APP桥接方法 |
CN109885792B (zh) * | 2019-01-04 | 2021-03-26 | 石化盈科信息技术有限责任公司 | 一种基于webdriver技术的APP桥接方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095846B2 (en) | Web application protection | |
EP3391263B1 (en) | Securing webpages, webapps and applications | |
Thakur et al. | Content sniffing attack detection in client and server side: A survey | |
US10375107B2 (en) | Method and apparatus for dynamic content marking to facilitate context-aware output escaping | |
US20150319189A1 (en) | Protecting websites from cross-site scripting | |
CN102957705B (zh) | 一种网页篡改防护的方法及装置 | |
CN106911684B (zh) | 一种鉴权方法及*** | |
KR101640902B1 (ko) | Html 문서에 포함되는 콘텐츠를 보호하는 장치 및 방법 | |
CN103763308A (zh) | 一种智能终端安全访问网页和下载数据的方法和装置 | |
US20160197950A1 (en) | Detection system and method for statically detecting applications | |
US11503072B2 (en) | Identifying, reporting and mitigating unauthorized use of web code | |
US20120023394A1 (en) | Method and apparatus for context-aware output escaping using dynamic content marking | |
CN109977685A (zh) | 网页内容加密方法,加密装置及*** | |
US20170083486A1 (en) | Regulating undesirable webpage code | |
EP3518135B1 (en) | Protection against third party javascript vulnerabilities | |
GB2507749A (en) | Ensuring completeness of a displayed web page | |
CN108319822B (zh) | 一种保护网页代码的方法、存储介质、电子设备和*** | |
Niakanlahiji et al. | WebMTD: defeating cross‐site scripting attacks using moving target defense | |
CN109088872B (zh) | 带使用期限的云平台的使用方法、装置、电子设备及介质 | |
CN110263533A (zh) | 网页安全防护方法 | |
CN104182700A (zh) | 保护web页面可执行脚本的方法 | |
CN108462749B (zh) | 一种Web应用处理方法、装置及*** | |
Kerschbaumer et al. | Towards precise and efficient information flow control in web browsers | |
Kouchaksaraei et al. | Countering wrapping attack on XML signature in SOAP message for cloud computing | |
US20160117511A1 (en) | Digital content execution control mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141203 |