CN107423340A - 用于网页渲染的参数处理方法和装置 - Google Patents

用于网页渲染的参数处理方法和装置 Download PDF

Info

Publication number
CN107423340A
CN107423340A CN201710313963.0A CN201710313963A CN107423340A CN 107423340 A CN107423340 A CN 107423340A CN 201710313963 A CN201710313963 A CN 201710313963A CN 107423340 A CN107423340 A CN 107423340A
Authority
CN
China
Prior art keywords
rendering parameter
escape
target rendering
parameter
array
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
CN201710313963.0A
Other languages
English (en)
Inventor
葛雨辰
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710313963.0A priority Critical patent/CN107423340A/zh
Publication of CN107423340A publication Critical patent/CN107423340A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种用于网页渲染的参数处理方法和装置。其中,该方法包括:从数组中确定目标渲染参数,其中,目标渲染参数为网页渲染时待渲染的参数;判断目标渲染参数是否需要转义;如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;根据实体化转义结果进行网页渲染。本发明解决了通过手动转义防止XSS造成的开发效率低的技术问题。

Description

用于网页渲染的参数处理方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种用于网页渲染的参数处理方法和装置。
背景技术
在进行页面渲染时,通常情况下,对于页面中需要渲染的参数需要进行转义,在转义容易出现跨站脚本攻击(Cross Site Scripting,简称为XSS),现有技术中,通常只能通过开发手动调用XSS过滤方法实现对局部变量的XSS代码过滤,以PHP主流框架YII的业务逻辑为例,只能通过encode方法进行手动转义,对任何不可信的参数都需要调用yii\helpers\Html::encode()方法进行手动转义,由此可见,现有技术方案太过依赖开发人员的开发习惯,安全性较差,在大量的开发过程中,容易出现遗漏的现象,而且频繁调用XSS过滤方法也降低了开发效率,更重要的是当有需要整体方案修改时,修改点就是所有的方法调用入口,修改成本过高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种用于网页渲染的参数处理方法和装置,以至少解决通过手动转义防止XSS造成的开发效率低的技术问题。
根据本发明实施例的一个方面,提供了一种网页渲染的参数处理,包括:从数组中确定目标渲染参数,其中,所述目标渲染参数为网页渲染时待渲染的参数;判断所述目标渲染参数是否需要转义;如果判断出所述目标渲染参数需要转义,则对所述目标渲染参数进行实体化转义,得到实体化转义结果;根据所述实体化转义结果进行网页渲染。
根据本发明实施例的另一方面,还提供了一种网页渲染的参数装置,包括:确定单元,用于从数组中确定目标渲染参数,其中,所述目标渲染参数为网页渲染时待渲染的参数;第一判断单元,用于判断所述目标渲染参数是否需要转义;转义单元,用于在判断出所述目标渲染参数需要转义时,对所述目标渲染参数进行实体化转义,得到实体化转义结果;第一渲染单元,用于根据所述实体化转义结果进行网页渲染。
在本发明实施例中,采用从数组中确定目标渲染参数的方式,通过判断所述目标渲染参数是否需要转义;如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;根据实体化转义结果进行网页渲染,达到了通过框架自动转义防止XSS的目的,从而实现了提高开发效率的技术效果,进而解决了通过手动转义防止XSS造成的开发效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的用于网页渲染的参数处理方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的用于网页渲染的参数处理方法的流程图;
图3是根据本发明实施例的另一种可选的用于网页渲染的参数处理方法的流程图;
图4是根据本发明实施例的一种可选的用于网页渲染的参数处理装置的示意图;
以及
图5是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
Biny:自研的一套PHP轻量级web开发框架。
XSS:跨站脚本攻击(Cross Site Scripting)的缩写。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
实施例1
根据本发明实施例,提供了一种用于网页渲染的参数处理的方法实施例。
可选地,在本实施例中,上述用于网页渲染的参数处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的用于网页渲染的参数处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的用于网页渲染的参数处理方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种可选的用于网页渲染的参数处理方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,从数组中确定目标渲染参数,其中,目标渲染参数为网页渲染时待渲染的参数。
步骤S204,判断目标渲染参数是否需要转义。
步骤S206,如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果。
步骤S208,根据实体化转义结果进行网页渲染。
通过上述步骤S202至步骤S208,通过判断目标渲染参数是否需要转义;如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;根据实体化转义结果进行网页渲染,可以解决通过手动转义防止XSS造成的开发效率低的技术问题,进而达到了通过框架自动转义防止XSS的技术效果。
在步骤S202提供的技术方案中,目标渲染参数是网页渲染时需要渲染的参数,网页可以是PHP页面,目标渲染参数可以是网页中的所有参数,也可以是网页中的部分参数,目标渲染参数存储在数组中,在进行网页渲染时,对网页中的参数进行渲染,需要先从数组中确定目标渲染参数,对目标渲染参数进行渲染,可以是每次对一个目标渲染参数进行渲染,渲染完成之后再对下一个目标渲染参数进行渲染,也可以是多个流程同时进行,每个流程分别对一个目标渲染参数进行渲染。
在步骤S204提供的技术方案中,在确定出目标渲染参数之后,判断目标渲染参数是否需要转义,转义可以是html实体化转义,如果目标渲染参数不需要转义,则目标渲染参数可以直接使用进行渲染,无需转义,如果目标渲染参数需要转义,则表示目标渲染参数需要进行处理之后才能用于进行参数渲染。
在步骤S206提供的技术方案中,在判断出目标渲染参数需要转义之后,对目标渲染参数进行实体化转义,得到实体化转义结果,实体化转义可以是将html内容进行实体化转义。
在步骤S208提供的技术方案中,在将目标渲染参数进行实体化转义,得到实体化转义结果之后,根据实体化转义结果进行网页渲染。
作为一种可选的实施例,在从数组中确定目标渲染参数之前,将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,模板层为网页使用的语言逻辑层;将存入模板层的数组封装为预设类别的数组。
网页使用的语言可以是PHP语言,可以将网页页面中所有需要渲染的参数通过数组的方式传给VIEW层(PHP自身逻辑层),然后将数组封装为预设类别,预设类别可以是TXArray类,TXArray类为自定义的数组的类,除了具有数组的功能之外,还具有特殊的方法和功能。
作为一种可选的实施例,由于预设类别的数组中存储有多个需要渲染的参数,在确定目标渲染参数时,从预设类别的数组中读取一个参数作为目标渲染参数;判断读取到的目标渲染参数的类型是否为字符串,如果是字符串类型,则可以对目标渲染参数进行实体化转义,得到实体化转义结果,并且将实体化转义结果存入缓存以备后续使用时直接调用。
作为一种可选的实施例,如果判断出目标渲染参数的类型不为字符串,表示目标渲染参数不能进行实体化转义,需要判断目标渲染参数的类型是否为数组,如果判断出目标渲染参数本身为数组,则将目标渲染参数进行封装,重新构建成预设类别的数组以重新对数组中的参数进行是否需要转义的判断,并且将重新构建成的预设类别的数组存入缓存;如果判断出目标渲染参数不为数组,则将目标渲染参数存入缓存,并且可以直接使用目标渲染参数进行网页渲染。
作为一种可选的实施例,判断目标渲染参数是否需要转义之后,检测是否有已缓存的目标渲染参数转义结果;如果检测到有已缓存的目标渲染参数转义结果,则使用已缓存的目标渲染参数转义结果进行网页渲染;能够提高流程处理效率,减少重复工作,如果检测到没有已缓存的目标渲染参数转义结果,则判断目标渲染参数的类型是否为字符串,表示该目标渲染参数没有处理过,需要开始流程重新处理。
作为一种可选的实施例,如果判断出目标渲染参数不需要转义,则可以直接使用目标渲染参数进行网页渲染。
本发明实施例的网页渲染的参数处理方法可以作为一种基于PHP页面渲染层的自动反XSS注入机制,通过框架介入PHP自身渲染逻辑,在用户调用PHP原生获取逻辑时,判断并自动过滤XSS注入漏洞,开发人员在无需考虑XSS注入的情况下,框架自动完成了反XSS注入工作,相对于现有技术中具有以下优势:无需开发手动调用XSS方法,可以避免遗漏;在用到时才会进行转义过滤(包括多层结构子对象),不会影响性能;支持用户选择单个变量不进行转义。开发人员使用通用的PHP语法就自动处理了XSS安全隐患,而默认是过滤的方式也避免了遗漏的可能。同时也降低了开发成本。
本发明还提供了一种优选实施例,图3是根据本发明实施例的另一种可选的用于网页渲染的参数处理方法的流程图,如图3所示,该方法可以包括以下步骤:
步骤S301:需要渲染的参数通过数组的方式传给VIEW层(PHP自身逻辑层)。
步骤S302:框架自动将该数组转化成TXArray类。
步骤S303:是否需要转义,当开发调用显示某个参数时,判断是否需要转义。如果判断结果为是,则执行步骤S304,如果判断结果为否,则可以直接输出,执行步骤S310。
本发明实施例也提供了无需转义的使用方法,以应对个别特殊业务逻辑,使用方式如下:
$array['param']//转义内容
$array->param//原内容
$array[0]//转义内容
$array->get(0)//原内容
步骤S304:判断是否有缓存,也即,是否有已转义的缓存,如果判断结果为是,则可以使用缓存内容,执行步骤S310。如果判断结果为否,则执行步骤S305。
步骤S305:判断是否为string类型,如果判断结果为是,则执行步骤S307,如果判断结果为否,则执行步骤S306。
步骤S306:判断是否为Array类型,如果判断结果为是,则执行步骤S308,如果判断结果为否,则执行步骤S309。
步骤S307:如果需要转义的参数类型为字符串,则对参数进行实体化转义。
步骤S308:如果判断出参数类型为Array,则重新构建新的TXArray,将数组转化成TXArray,以便下次再次调用使用。如果需要获取该数组中的某个参数,可以重复步骤S303到S309。
步骤S309:在实体化转义完成之后,将实体化转义结果计入缓存;在重新构建新的TXArray之后,将新构建的TXArray计入缓存;在判断出不是Array类型之后,可以将参数计入缓存,并且直接用于进行参数渲染。
在判断出需要进行转义且没有缓存时,需要进行XSS转义,需要再次对需要转义的参数类型进行判断,如果是字符串类型,则需要进行实体化转义,如果是数组类型,则直接将该数组转化成TXArray类,以便下次再调用使用。如果是其他类型,则不做修改,直接使用。实体化转义可以使用原生PHP方法htmlspecialchars,具体方法如下:
本发明实施例通过重构ArrayObject中的getIterator和offsetGet方法来实现XSS转义逻辑嵌入,另外还提供了__get__set__isset等魔法方法以实现其他应用场景(直接获取)。
步骤S310:在进行完上述步骤之后,对参数进行渲染。
本发明实施例的用于网页渲染的参数处理方法可以集成在Biny框架中,在Biny的页面渲染层将所有页面中需要渲染的参数放在一个数组中。同时将该数组转化成一个TXArray类对象。该对象继承了系统ArrayObject类的。具有系统数组的所有方法。同时在TXArray类中对数组获取参数,遍历获取等方法进行重构。使其具有在渲染某一个参数时自动过滤XSS的特性。
本发明对参数层级也有有效控制。在参数无需渲染的情况下,不会浪费性能进行该参数的过滤工作,其原理如下:
参数在未被渲染时,不会对参数进行任何动作。直到该参数需要被渲染时,会先进行参数属性判断,如果已有缓存,则直接输出缓存对象。如果是个字符串,则进行XSS过滤转义(转义方式为html实体化转义,可有效防止XSS注入)。如果是数组,则将该数组重新转换成TXArray类,如果需要渲染该数组中元素,则递归原判断转义方式。
本发明涉及的XSS自动防注入机制,由程序实现,其相对于产品而言是一个黑盒。从产品侧最直观的感受就是使用了这个机制的产品XSS漏洞可以被完全根除。
通过上述的用于网页渲染的参数处理方法可以大大提高程序安全性,不依赖开发习惯即可自动完成XSS的防注入工作,能够大大提高开发效率。代码可读性也提高很多,还可以减少代码耦合性,后期可自行添加参数特殊处理,降低改动成本。
作为一种可选的实施方式,本发明实施例的框架还可以通过递归遍历所需渲染的参数对所有参数预先进行XSS过滤,然而这种方式在多层结构的数据下会浪费大量的性能,并非理想的实现方式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述用于网页渲染的参数处理方法的用于网页渲染的参数处理装置。图4是根据本发明实施例的一种可选的用于网页渲染的参数处理装置的示意图,如图4所示,该装置可以包括:
确定单元10,用于从数组中确定目标渲染参数,其中,目标渲染参数为网页渲染时待渲染的参数;
第一判断单元20,用于判断目标渲染参数是否需要转义;
转义单元30,用于在判断出目标渲染参数需要转义时,对目标渲染参数进行实体化转义,得到实体化转义结果;
第一渲染单元40,用于根据实体化转义结果进行网页渲染。
需要说明的是,该实施例中的确定单元10可以用于执行本申请实施例1中的步骤S202,该实施例中的第一判断单元20可以用于执行本申请实施例1中的步骤S204,该实施例中转义单元30可以用于执行本申请实施例1中的步骤S206,该实施例中的第一渲染单元40可以用于执行本申请实施例1中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决了通过手动转义防止XSS造成的开发效率低的技术问题,进而达到通过框架自动转义防止XSS的技术效果。
作为一种可选的实施例,该装置还包括:存储单元,用于在从数组中确定目标渲染参数之前,将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,模板层为网页使用的语言逻辑层;第一封装单元,用于将存入模板层的数组封装为预设类别的数组。
作为一种可选的实施例,确定单元10用于从预设类别的数组中读取一个参数作为目标渲染参数;该装置还包括:第二判断单元,用于对目标渲染参数进行实体化转义之前,判断目标渲染参数的类型是否为字符串;转义单元用于在判断出目标渲染参数的类型为字符串时,对目标渲染参数进行实体化转义,得到实体化转义结果,并且将实体化转义结果存入缓存。
作为一种可选的实施例,该装置还包括:第三判断单元,用于在判断出目标渲染参数的类型不为字符串时,判断目标渲染参数的类型是否为数组;第二封装单元,用于在判断出目标渲染参数为数组时,将目标渲染参数进行封装,重新构建成预设类别的数组,并且将重新构建成的预设类别的数组存入缓存;在判断出目标渲染参数不为数组时,将目标渲染参数存入缓存,使用目标渲染参数进行网页渲染。
作为一种可选的实施例,该装置还包括:检测单元,用于在判断目标渲染参数是否需要转义之后,检测是否有已缓存的目标渲染参数转义结果;第二渲染单元,用于在检测到有已缓存的目标渲染参数转义结果时,使用已缓存的目标渲染参数转义结果进行网页渲染;在检测到没有已缓存的目标渲染参数转义结果时,判断目标渲染参数的类型是否为字符串。
作为一种可选的实施例,该装置还包括:第三渲染单元,用于在判断目标渲染参数是否需要转义之后,在判断出目标渲染参数不需要转义时,使用目标渲染参数进行网页渲染。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例3
根据本发明实施例,还提供了一种用于实施上述用于网页渲染的参数处理方法的服务器或终端。
图5是根据本发明实施例的一种终端的结构框图,如图5所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图5所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的用于网页渲染的参数处理方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的用于网页渲染的参数处理方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:从数组中确定目标渲染参数,其中,目标渲染参数为网页渲染时待渲染的参数;判断目标渲染参数是否需要转义;如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;根据实体化转义结果进行网页渲染。
处理器201还用于执行下述步骤:将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,模板层为网页使用的语言逻辑层;将存入模板层的数组封装为预设类别的数组。
处理器201还用于执行下述步骤:如果判断出目标渲染参数的类型不为字符串,则判断目标渲染参数的类型是否为数组;如果判断出目标渲染参数为数组,则将目标渲染参数进行封装,重新构建成预设类别的数组,并且将重新构建成的预设类别的数组存入缓存;如果判断出目标渲染参数不为数组,则将目标渲染参数存入缓存,使用目标渲染参数进行网页渲染。
处理器201还用于执行下述步骤:检测是否有已缓存的目标渲染参数转义结果;如果检测到有已缓存的目标渲染参数转义结果,则使用已缓存的目标渲染参数转义结果进行网页渲染;如果检测到没有已缓存的目标渲染参数转义结果,则判断目标渲染参数的类型是否为字符串。
处理器201还用于执行下述步骤:如果判断出目标渲染参数不需要转义,则使用目标渲染参数进行网页渲染。
采用本发明实施例,采用从数组中确定目标渲染参数的方式,通过判断目标渲染参数是否需要转义;如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;根据实体化转义结果进行网页渲染,达到了通过框架自动转义防止XSS的目的,从而实现了提高开发效率的技术效果,进而解决了通过手动转义防止XSS造成的开发效率低的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图5所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图5其并不对上述电子装置的结构造成限定。例如,终端还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行用于网页渲染的参数处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,从数组中确定目标渲染参数,其中,目标渲染参数为网页渲染时待渲染的参数;
S2,判断目标渲染参数是否需要转义;
S3,如果判断出目标渲染参数需要转义,则对目标渲染参数进行实体化转义,得到实体化转义结果;
S4,根据实体化转义结果进行网页渲染。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,模板层为网页使用的语言逻辑层;将存入模板层的数组封装为预设类别的数组。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果判断出目标渲染参数的类型不为字符串,则判断目标渲染参数的类型是否为数组;如果判断出目标渲染参数为数组,则将目标渲染参数进行封装,重新构建成预设类别的数组,并且将重新构建成的预设类别的数组存入缓存;如果判断出目标渲染参数不为数组,则将目标渲染参数存入缓存,使用目标渲染参数进行网页渲染。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:检测是否有已缓存的目标渲染参数转义结果;如果检测到有已缓存的目标渲染参数转义结果,则使用已缓存的目标渲染参数转义结果进行网页渲染;如果检测到没有已缓存的目标渲染参数转义结果,则判断目标渲染参数的类型是否为字符串。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:如果判断出目标渲染参数不需要转义,则使用目标渲染参数进行网页渲染。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种用于网页渲染的参数处理方法,其特征在于,包括:
从数组中确定目标渲染参数,其中,所述目标渲染参数为网页渲染时待渲染的参数;
判断所述目标渲染参数是否需要转义;
如果判断出所述目标渲染参数需要转义,则对所述目标渲染参数进行实体化转义,得到实体化转义结果;
根据所述实体化转义结果进行网页渲染。
2.根据权利要求1所述的方法,其特征在于,在从数组中确定目标渲染参数之前,所述方法还包括:
将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,所述模板层为所述网页使用的语言逻辑层;
将存入所述模板层的所述数组封装为预设类别的数组。
3.根据权利要求2所述的方法,其特征在于,
从数组中确定目标渲染参数包括:从所述预设类别的数组中读取一个参数作为目标渲染参数;
对所述目标渲染参数进行实体化转义之前,所述方法还包括:判断所述目标渲染参数的类型是否为字符串;
对所述目标渲染参数进行实体化转义包括:如果判断出所述目标渲染参数的类型为字符串,则对所述目标渲染参数进行实体化转义,得到实体化转义结果,并且将所述实体化转义结果存入缓存。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果判断出所述目标渲染参数的类型不为字符串,则判断所述目标渲染参数的类型是否为数组;
如果判断出所述目标渲染参数为数组,则将所述目标渲染参数进行封装,重新构建成所述预设类别的数组,并且将重新构建成的所述预设类别的数组存入缓存;
如果判断出所述目标渲染参数不为数组,则将所述目标渲染参数存入缓存,使用所述目标渲染参数进行网页渲染。
5.根据权利要求3所述的方法,其特征在于,判断所述目标渲染参数是否需要转义之后,所述方法还包括:
检测是否有已缓存的所述目标渲染参数转义结果;
如果检测到有所述已缓存的所述目标渲染参数转义结果,则使用已缓存的所述目标渲染参数转义结果进行网页渲染;
如果检测到没有所述已缓存的所述目标渲染参数转义结果,则判断目标渲染参数的类型是否为字符串。
6.根据权利要求1所述的方法,其特征在于,判断所述目标渲染参数是否需要转义之后,所述方法还包括:
如果判断出所述目标渲染参数不需要转义,则使用所述目标渲染参数进行网页渲染。
7.一种用于网页渲染的参数处理装置,其特征在于,包括:
确定单元,用于从数组中确定目标渲染参数,其中,所述目标渲染参数为网页渲染时待渲染的参数;
第一判断单元,用于判断所述目标渲染参数是否需要转义;
转义单元,用于在判断出所述目标渲染参数需要转义时,对所述目标渲染参数进行实体化转义,得到实体化转义结果;
第一渲染单元,用于根据所述实体化转义结果进行网页渲染。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储单元,用于在从数组中确定目标渲染参数之前,将网页页面中所有待渲染的参数以数组的方式存入模板层,其中,所述模板层为所述网页使用的语言逻辑层;
第一封装单元,用于将存入所述模板层的所述数组封装为预设类别的数组。
9.根据权利要求8所述的装置,其特征在于,
所述确定单元用于从所述预设类别的数组中读取一个参数作为目标渲染参数;
所述装置还包括:第二判断单元,用于对所述目标渲染参数进行实体化转义之前,判断所述目标渲染参数的类型是否为字符串;
所述转义单元用于在判断出所述目标渲染参数的类型为字符串时,对所述目标渲染参数进行实体化转义,得到实体化转义结果,并且将所述实体化转义结果存入缓存。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三判断单元,用于在判断出所述目标渲染参数的类型不为字符串时,判断所述目标渲染参数的类型是否为数组;
第二封装单元,用于在判断出所述目标渲染参数为数组时,将所述目标渲染参数进行封装,重新构建成所述预设类别的数组,并且将重新构建成的所述预设类别的数组存入缓存;
在判断出所述目标渲染参数不为数组时,将所述目标渲染参数存入缓存,使用所述目标渲染参数进行网页渲染。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
检测单元,用于在判断所述目标渲染参数是否需要转义之后,检测是否有已缓存的所述目标渲染参数转义结果;
第二渲染单元,用于在检测到有所述已缓存的所述目标渲染参数转义结果时,使用已缓存的所述目标渲染参数转义结果进行网页渲染;
在检测到没有所述已缓存的所述目标渲染参数转义结果时,判断目标渲染参数的类型是否为字符串。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三渲染单元,用于在判断所述目标渲染参数是否需要转义之后,在判断出所述目标渲染参数不需要转义时,使用所述目标渲染参数进行网页渲染。
CN201710313963.0A 2017-05-05 2017-05-05 用于网页渲染的参数处理方法和装置 Pending CN107423340A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710313963.0A CN107423340A (zh) 2017-05-05 2017-05-05 用于网页渲染的参数处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710313963.0A CN107423340A (zh) 2017-05-05 2017-05-05 用于网页渲染的参数处理方法和装置

Publications (1)

Publication Number Publication Date
CN107423340A true CN107423340A (zh) 2017-12-01

Family

ID=60424900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710313963.0A Pending CN107423340A (zh) 2017-05-05 2017-05-05 用于网页渲染的参数处理方法和装置

Country Status (1)

Country Link
CN (1) CN107423340A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111882635A (zh) * 2020-07-24 2020-11-03 上海米哈游天命科技有限公司 一种画面渲染方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023395A1 (en) * 2010-07-22 2012-01-26 International Business Machines Corporation Method and apparatus for dynamic content marking to facilitate context-aware output escaping
CN102999723A (zh) * 2012-11-20 2013-03-27 焦点科技股份有限公司 主动防御xss攻击的数据防御组件生成方法及其装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023395A1 (en) * 2010-07-22 2012-01-26 International Business Machines Corporation Method and apparatus for dynamic content marking to facilitate context-aware output escaping
CN102999723A (zh) * 2012-11-20 2013-03-27 焦点科技股份有限公司 主动防御xss攻击的数据防御组件生成方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "PHP 安全三板斧(五):过滤、验证和转义之转义篇 & Blade 模板引擎避免 XSS 攻击原理探究", 《HTTP://LARAVELACADEMY.ORG/POST/4699.HTML》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111882635A (zh) * 2020-07-24 2020-11-03 上海米哈游天命科技有限公司 一种画面渲染方法、装置、设备和介质
CN111882635B (zh) * 2020-07-24 2024-09-13 上海米哈游天命科技有限公司 一种画面渲染方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN104361076B (zh) 浏览器的异常处理方法和装置
CN108038546A (zh) 用于压缩神经网络的方法和装置
CN104243541B (zh) 兼具网络中继器功能的网络摄影机的设定方法
CN106844522A (zh) 一种网络数据爬取方法和装置
CN108696490A (zh) 账号权限的识别方法及装置
CN101631108A (zh) 为网络服务器的防火墙产生规则文件的方法和系统
CN105955888A (zh) 一种页面调试预览方法及系统
CN106657197A (zh) 文件上传的方法和装置
CN107391626A (zh) 落地页的创建方法和装置
CN104537005B (zh) 用于网页爬取的数据处理方法及装置
CN106960062A (zh) 网页截图方法及系统
CN107104924A (zh) 网站后门文件的验证方法及装置
CN103838851B (zh) 三维场景模型文件的渲染方法和装置
CN107370804A (zh) 软件应用处理方法和装置
CN107205162A (zh) 视频识别方法及装置
CN107562548A (zh) 传输数据的方法和装置
CN107203470B (zh) 页面调试方法和装置
CN108255936A (zh) 一种网页的编辑方法、系统及编辑器
CN107666473A (zh) 一种攻击检测的方法及控制器
CN107820114A (zh) 特效展示方法及装置
CN106815524A (zh) 恶意脚本文件的检测方法及装置
CN106204003A (zh) 虚拟资源的安全转移方法、装置及系统
CN107329997A (zh) 页面显示方法及装置、客户端、存储介质
CN106686545A (zh) 一种无线保真国家码的应用方法及装置
CN107423340A (zh) 用于网页渲染的参数处理方法和装置

Legal Events

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

Application publication date: 20171201

RJ01 Rejection of invention patent application after publication