CN106850751B - 数据上传方法及装置 - Google Patents
数据上传方法及装置 Download PDFInfo
- Publication number
- CN106850751B CN106850751B CN201611219424.2A CN201611219424A CN106850751B CN 106850751 B CN106850751 B CN 106850751B CN 201611219424 A CN201611219424 A CN 201611219424A CN 106850751 B CN106850751 B CN 106850751B
- Authority
- CN
- China
- Prior art keywords
- cookies
- length
- domain name
- complete
- file destination
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据上传方法及装置,属于计算机技术领域。该方法包括:对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;确定获取到的Cookies对应的Cookies长度;根据Cookies长度,获取任一域名对应的完整Cookies;将完整Cookies与目标文件上传至服务器。本发明通过在本地获取任一域名对应的Cookies,确定获取到的Cookies对应的Cookies长度。根据Cookies长度,获取任一域名对应的完整Cookies。对目标文件进行过滤,将完整Cookies与目标文件上传至服务器。由于可根据在本地获取到的Cookies,获取任一域名对应的完整Cookies,从而避免了因Cookies过长导致数据上传不完整。后续服务器可根据上传的完整Cookies进行用户身份验证,从而不至于因Cookies不全或者Cookies完全丢失而导致验证失败。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种数据上传方法及装置。
背景技术
Cookies是用户浏览网站时,由Web服务器置于用户计算机硬盘或内存中的文本文件,它可以记录用户的用户名、密码、浏览过的网页以及停留时间等信息。当用户再次登陆该网站时,网站通过读取计算机中的Cookies文件,得知用户的相关信息,就可以做出相应的动作,例如,在页面显示欢迎标语,或者让用户不用输入用户名和密码就直接登录等等。由于Cookies带有用户属性,从而在向Web服务器上传文件时(如视频或音频文件),可同时携带Cookies以让Web服务器对用户身份进行验证。基于上述内容,现有的数据上传方法主要是通过直接获取浏览器下域名对应的Cookies,将获取到的Cookies与文件上传至服务器。
在实现本发明的过程中,发现现有技术至少存在以下问题:由于在获取浏览器下域名对应的Cookies时,Cookies实际长度可能会超过浏览器所允许的最大Cookies长度,从而当Cookies过长时会强制剔除掉超出的Cookies内容,使得上传过程中Cookies内容不全或Cookies完全丢失,进而导致数据上传不完整。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的数据上传方法及装置。
根据本发明的一方面,提供了一种数据上传方法,该方法包括:
对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;
确定获取到的Cookies对应的Cookies长度;
根据Cookies长度,获取任一域名对应的完整Cookies;
将完整Cookies与目标文件上传至服务器。
根据本发明的另一方面,提供了一种数据上传装置,该装置包括:
第一获取模块,用于对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;
确定模块,用于确定获取到的Cookies对应的Cookies长度;
第二获取模块,用于根据Cookies长度,获取任一域名对应的完整Cookies;
上传模块,用于将完整Cookies与目标文件上传至服务器。
本申请提出的技术方案带来的有益效果是:
通过在本地获取任一域名对应的Cookies,确定获取到的Cookies对应的Cookies长度。根据Cookies长度,获取任一域名对应的完整Cookies。将完整Cookies与目标文件上传至服务器。由于可根据在本地获取到的Cookies,获取任一域名对应的完整Cookies,从而避免了因Cookies过长导致数据上传不完整。后续服务器可根据上传的完整Cookies进行用户身份验证,从而不至于因Cookies不全或者Cookies完全丢失而导致验证失败。
附图说明
图1为本发明实施例的一种数据上传方法的流程示意图;
图2为本发明实施例的一种数据上传方法的流程示意图;
图3为本发明实施例的一种数据上传装置的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在向服务器上传数据时,为了验证用户身份,通常可以将Cookies与目标文件一起发送至服务器。其中,目标文件可以为视频文件或音频文件,本实施例及后续实施例不对目标文件的类型作具体限定。现有的数据上传方法主要是通过直接获取浏览器下域名对应的Cookies,将获取到的Cookies与文件直接上传至服务器。
由于在上传数据时,Cookies的实际长度可能会超过浏览器所允许的最大Cookies长度,从而在获取本地的Cookies时,会强制剔除掉超出的Cookies内容,导致获取到的Cookies内容不全或完全丢失。相应地,后续上传过程中上传的Cookies内容也可能不全或完全丢失,从而导致数据上传不完整。
针对现有技术中的问题,本发明实施例提供了一种数据上传方法。参见图1,本实施例提供的方法流程包括:101、对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;102、确定获取到的Cookies对应的Cookies长度;103、根据Cookies长度,获取任一域名对应的完整Cookies;104、将完整Cookies与目标文件上传至服务器。
需要说明的是,由于通常是某一浏览器下的某一域名对应一个Cookies,而本实施例及后续实施例也是对一个Cookies进行上传,从而本实施例及后续实施例主要针对一种浏览器下的一个域名的Cookies,对其上传过程进行说明。实际实施过程中,任一浏览器下的任一域名均可以采用本实施例及后续实施例中的方法来对数据进行上传。
其中,本实施例及后续实施例涉及到的浏览器类型可为谷歌浏览器、IE浏览器、火狐浏览器或Opera浏览器中的任意一种等等,本实施例及后续实施例对此不作具体限定。另外,域名可以为视频网站的域名、音乐网站的域名或购物网站的域名等,本实施例及后续实施例也不对域名类型作具体限定。
本发明实施例提供的方法,通过在本地获取任一域名对应的Cookies,确定获取到的Cookies对应的Cookies长度。根据Cookies长度,获取任一域名对应的完整Cookies。将完整Cookies与目标文件上传至服务器。由于可根据在本地获取到的Cookies,获取任一域名对应的完整Cookies,从而避免了因Cookies过长导致数据上传不完整。后续服务器可根据上传的完整Cookies进行用户身份验证,从而不至于因Cookies不全或者Cookies完全丢失而导致验证失败。
作为一种可选实施例,确定获取到的Cookies对应的Cookies长度,包括:
确定获取到的Cookies中预设符号的数量;
根据预设符号的数量确定对应的Cookies长度。
作为一种可选实施例,根据预设符号的数量确定对应的Cookies长度,包括:
将预设符号的数量加1后所得到的数值,作为获取到的Cookies对应的Cookies长度。
作为一种可选实施例,根据Cookies长度,获取任一域名对应的完整Cookies,包括:
对于任一域名,获取任一浏览器所允许的最大Cookies长度;
将最大Cookies长度与Cookies长度进行比较;
根据比较结果,获取任一域名对应的完整Cookies。
作为一种可选实施例,根据比较结果,获取任一域名对应的完整Cookies,包括:
当Cookies长度与最大Cookies长度相等时,向任一域名对应的服务器请求任一域名对应的完整Cookies;
当Cookies长度与最大Cookies长度不相等时,将获取到的Cookies作为任一域名对应的完整Cookies。
作为一种可选实施例,将完整Cookies与目标文件上传至服务器之前,还包括:
对目标文件进行过滤。
作为一种可选实施例,对目标文件进行过滤,包括:
检测目标文件是否为预设文件类型;
当目标文件不为预设文件类型时,停止上传目标文件。
作为一种可选实施例,对目标文件进行过滤,包括:
检测目标文件的大小是否大于预设阈值;
当目标文件的大小大于预设阈值时,停止上传目标文件。
作为一种可选实施例,将完整Cookies与目标文件上传至服务器,包括:
根据目标文件,生成预设格式的编码;
根据任一浏览器的类型,将编码及完整Cookies上传至服务器。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于上述图1对应实施例中的内容,本发明实施例提供了一种数据上传方法。参见图2,该方法包括:201、对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;202、确定获取到的Cookies对应的Cookies长度;203、根据Cookies长度,获取任一域名对应的完整Cookies;204、对目标文件进行过滤;205、将完整Cookies与目标文件上传至服务器。
其中,201、对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies。
为了便于说明,本实施例以任一类型浏览器下的任一个域名为例,对数据上传过程进行阐述。本实施例不对在本地获取任一域名对应的Cookies的方式作具体限定,包括但不限于:通过调用预设接口,在本地获取任一域名对应的Cookies。
其中,预设接口可以为html接口,本实施例对此不作具体限定。具体地,本实施例对应的Flash程序可以通过调用html接口来获取浏览器下域名的Cookies。该过程可参考如下代码(1):
ExternalInterface.call(function(){return window.document.cookie});
在上述代码(1)中,Window指的是浏览器窗口,Document是浏览器窗口文档。Cookies一般存储在浏览器窗口文档中。
其中,202、确定获取到的Cookies对应的Cookies长度。
Cookies通常是由一个个字符串组成的文本文件,从而Cookies有相应的Cookies长度,即Cookies中包含的字符串个数。本实施例不对确定获取到的Cookies对应的Cookies长度的方式作具体限定,包括但不限于:确定获取到的Cookies中预设符号的数量;根据预设符号的数量确定对应的Cookies长度。
其中,预设符号可以分号,本实施例对此不作具体限定。Cookies中的单条字符串由预设符号进行分割,从而对Cookies进行遍历,可确定Cookies中预设符号的个数,可以间接地知道Cookies中字符串的条数,从而能够确定Cookies长度。
本实施例不对根据预设符号的数量确定对应的Cookies长度的方式作具体限定,包括但不限于:将预设符号的数量加1后所得到的数值,作为获取到的Cookies对应的Cookies长度。
例如,以预设符号为分号为例。由于Cookies中最后一条字符串的后面是没有分号的,从而在分号数量的基础上加1,所得到的数值即为获取到的Cookies对应的Cookies长度。
其中,203、根据Cookies长度,获取任一域名对应的完整Cookies。
由图1对应实施例中的内容可知,由于在上传数据时,Cookies的实际长度可能会超过浏览器所允许的最大Cookies长度,从而在获取本地的Cookies时,会强制剔除掉超出的Cookies内容,导致获取到的Cookies内容不全或完全丢失。因此,本步骤主要是为了避免这种情况发生,以获取完整的Cookies。
本实施例不对根据Cookies长度,获取任一域名对应的完整Cookies的方式作具体限定,包括但不限于:对于任一域名,获取任一浏览器所允许的最大Cookies长度;将最大Cookies长度与Cookies长度进行比较;根据比较结果,获取任一域名对应的完整Cookies。
由于每一类型的浏览器所允许的最大Cookies长度都是不一样的,从而在上述过程中需要获取浏览器的信息,即该浏览器标识及该类型浏览器所允许的最大Cookies长度。例如,Microsoft的IE7及IE8增加cookie限制为每个域名50个。Firefox每个域名cookie限制长度为50,Opera每个域名cookie限制长度为30。
其中,具体获取浏览器的信息时,可参考如下代码(2):
ExternalInterface.call
("function BrowserAgent(){return navigator.userAgent;}")
在获取到浏览器所允许的最大Cookies长度后,可将最大Cookies长度与Cookies长度进行比较。根据比较结果,获取任一域名对应的完整Cookies。本实施例不对根据比较结果,获取任一域名对应的完整Cookies的方式作具体限定,包括但不限于:当Cookies长度与最大Cookies长度相等时,向任一域名对应的服务器请求任一域名对应的完整Cookies;当Cookies长度与最大Cookies长度不相等时,将获取到的Cookies作为任一域名对应的完整Cookies。
在本地保存Cookies数据时,当Cookies长度超过浏览器所允许的最大Cookies长度时,会自动剔除超出的部分,并按照浏览器所允许的最大Cookies长度,在本地保存Cookies数据。基于上述内容,可以得知当本地保存的Cookies数据长度等于浏览器所允许的最大Cookies长度时,说明本地保存的Cookies数据有可能是剔除超出部分后所遗留下的Cookies数据,即在本地获取到的Cookies数据是不完整的。当本地保存的Cookies数据长度小于浏览器所允许的最大Cookies长度时,说明本地保存的Cookies数据是肯定是完整的,即在本地获取到的Cookies数据也是完整的。
基于上述说明,对于任一浏览器下的任一域名,当Cookies长度与最大Cookies长度相等时,由于存在Cookies数据并非完整的可能性,而该域名对应服务器保存的Cookies数据是完整的,从而可向该域名对应的服务器请求该域名对应的完整Cookies。当Cookies长度与最大Cookies长度不相等时,则可直接将获取到的Cookies作为该域名对应的完整Cookies。由于后续需要将完整Cookies与目标文件上传至服务器,为了便于后续上传,可在内存中将完整Cookies赋值给变量newCookies,本实施例对此不作具体限定。
上述将最大Cookies长度与Cookies长度进行比较的过程,可参考如下代码(3):
Lose=n==n1?true:false
Lose是表示浏览器是否丢失Cookie,n为Cookie条数,n1为该类型浏览器所允许的cookie最大条数。
由于本实施例主要是对Cookies与目标文件进行上传,而目标文件存在为垃圾文件的可能性,从而可对目标文件进行过滤,来阻止上传垃圾文件。后续步骤主要是对过滤垃圾文件的过程进行说明。
其中,204、对目标文件进行过滤。
关于对目标文件进行过滤的方式,本实施例对此不作具体限定,包括但不限于如下两种方式。
第一种方式:检测目标文件是否为预设文件类型;当目标文件不为预设文件类型时,停止上传目标文件。
由于在上传目标文件时,通常上传文件的类型是指定的,从而可以通过判断目标文件是否为预设文件类型,来确定目标文件是否为垃圾文件。其中,预设文件类型可以为.png或.mp4文件等,本实施例对此不作具体限定。
具体实施时,可先初始化文件***,监听文件被选择事件,即检测用户选择目标文件的操作,该过程可参考如下代码(4):
file=new FileReference();
file.addEventListener(Event.SELECT,onFileSelect);
当文件***选择事件被触发时,可通过flie.type取得文件类型字符串赋值给变量fileType。在取得文件类型字符串后,可将文件类型字符串与预设文件类型进行匹配,从而确定目标文件是否为预设文件类型,该过程可参考如下代码(5):
TypeOk=fileType.index(“.x”)>1?True:false
在上述代码(5)中,TypeOk表示文件类型是否合法,fileType为文件类型字符串,x表示预设文件类型。
当TypeOk不合法时,即目标文件不为预设文件类型时,可停止上传目标文件。在此之后,还可提示用户选择正确文件类型,本实施例对此不作具体限定。
第二种方式:检测目标文件的大小是否大于预设阈值;当目标文件的大小大于预设阈值时,停止上传目标文件。
由于在上传目标文件时,文件太大会阻塞服务器,从而上传文件时文件的大小通常是指定的。因此,可以根据目标文件的大小,来确定目标文件是否为垃圾文件。其中,预设阈值可根据实际需求进行设置,本实施例对此不作具体限定。
具体实施时,可参考如下代码(6):
sizeeOk=flie.size>x?True:false;
在上述代码(6)中,sizeeOk表示文件大小是否合法,flie.size为文件大小。x表示***设置文件最大字节数,即预设阈值。如果sizeeOk不合法,即目标文件的大小大于预设阈值,可停止上传目标文件。在此之后,还可提示用户上传文件过大,本实施例对此不作具体限定。
需要说明的是,上述两种对目标文件进行过滤的方式,在实际实施中可选择其中任意一种方式来对目标文件进行过滤,也可通过两种方式同时对目标文件进行过滤,本实施例对此不作具体限定。另外,当同时采用两种方式对目标文件进行过滤时,具体先执行哪种方式,本实施例对此不作具体限定。具体地,可先执行第一种方式对目标文件的文件类型进行过滤,再执行第二种方式对目标文件的大小进行过滤。或者,可先执行执行第二种方式对目标文件的大小进行过滤,再第一种方式对目标文件的文件类型进行过滤。
通过上述第一种方式对文件进行过滤,能够剔除一些非法类型文件上传,节省服务器带宽。例如,服务器只接受图片上传,当上传的目标文件格式为视频格式时,可阻断该视频文件的上传。由于视频文件上传会占用大量带宽,从而通过该方式能够节省服务器带宽。
通过上述第二种方式对文件进行过滤,能够过滤掉较大的文件,从而能够节省服务器的存储空间。另外,还能够避免恶意用户攻击服务器。例如,服务器只接受10M内的文件,当上传的目标文件大小大于10M时,可阻断目标文件的上传。由于上传超过10M的文件会占用服务器的大量存储空间,从而通过该方式能够节省服务器的存储空间。另外,还能够避免恶意用户通过上传大体积的文件攻击服务器。
其中,205、将完整Cookies与目标文件上传至服务器。
由于直接上传目标文件不够安全,从而可将目标文件转换为编码,通过上传编码来实现目标文件的上传。相应地,本实施例不对将完整Cookies与目标文件上传至服务器的方式作具体限定,包括但不限于:根据目标文件,生成预设格式的编码;根据任一浏览器的类型,将编码及完整Cookies上传至服务器。
其中,预设格式的编码可以为Base64编码,本实施例不对编码格式作具体限定。通过将目标文件转换为Base64编码,能够提高数据上传时的安全性。
将目标文件转换为Base64编码的过程可参考如下代码(7):
ByteArray=file.data;
FileString=Base64.encodeByteArray(data);
在上述代码(7)中,变量FileString中存储的即为转换后的Base64编码字符串。
在将目标文件转换为预设格式的编码后,可将编码及完整Cookies上传至服务器。在对数据进行上传时,可采用http协议或Socket协议等,本实施例对此不作具体限定。
另外,由于某些类型浏览器在上传文件时,如火狐浏览器,一些版本的FlashPlayer会***性地丢失头文件中的Cookies,从而在上传目标文件之前,还需要检测浏览器是否为该类型的浏览器。
为了便于说明,以传输协议为http协议,以会丢失Cookies的浏览器类型为火狐浏览器为例,在上传数据之前,可先检测当前浏览器是否为火狐浏览器,具体检测过程可参考如下代码(8):
isFix=BrowserInfo.index(“Firefox”)>1?True:false;
在上述代码(8)中,isFix表示是否是火狐浏览器,BrowserInfo为上述步骤203中获取到的浏览器信息,即浏览器标识。通过验证获取到的浏览器标识是否为“Firefox”,从而可确定该浏览器是否为火狐浏览器。
当isFix为false时,表示该浏览器不为火狐浏览器。通过new URLRequestHeader(“cookie”,newCookies)来设置http请求头信息,将URLRequestHeader赋给request.requestHeaders。其中,newCookies即为上述步骤203中获取到的完整Cookies。
当isFix为true时,表示该浏览器为火狐浏览器。通过将URLVariables属性的属性值设置为newCookies,可让http上传请求中携带newCookies,从而避免了浏览器类型为火狐浏览器时,丢失头文件中的Cookies。该过程可参考如下代码(9):
URLVariables.cookie=newCookie;
通过上述过程,可在无论浏览器类型是不是火狐浏览器的情况下,可在http请求中强制注入Cookies,即对完整Cookies进行包装。通过强制注入Cookies可避免在某些情况下,Cookies丢失导致服务器无法校验。
在对完整Cookies进行包装后,可用URLVariables.fileData来包装目标文件对应的Base64编码。最后,可启动urlloader.load(req),从而将完整Cookies与目标文件上传至服务器。
本发明实施例提供的方法,通过在本地获取任一域名对应的Cookies,确定获取到的Cookies对应的Cookies长度。根据Cookies长度,获取任一域名对应的完整Cookies。对目标文件进行过滤,将完整Cookies与目标文件上传至服务器。由于可根据在本地获取到的Cookies,获取任一域名对应的完整Cookies,从而避免了因Cookies过长导致数据上传不完整。后续服务器可根据上传的完整Cookies进行用户身份验证,从而不至于因Cookies不全或者Cookies完全丢失而导致验证失败。
另外,通过采样两种不同的方式来对目标文件进行过滤,能够剔除一些非法类型文件上传,节省服务器带宽。除此之外,还能够过滤掉较大的文件,避免恶意用户攻击服务器,从而能够节省服务器的存储空间。
最后,对于那些可能丢失Cookies的浏览器类型,通过在http请求中强制注入Cookies,能够避免Cookies丢失而导致服务器无法进行用户身份验证。
本发明实施例提供了一种数据上传装置,该装置用于执行上述图1或图2对应实施例所提供的数据上传方法。参见图3,该装置包括:
第一获取模块301,用于对于任一浏览器下的任一域名,在本地获取任一域名对应的Cookies;
确定模块302,用于确定获取到的Cookies对应的Cookies长度;
第二获取模块303,用于根据Cookies长度,获取任一域名对应的完整Cookies;
上传模块304,用于将完整Cookies与目标文件上传至服务器。
作为一种可选实施例,确定模块302,包括:
第一确定单元,用于确定获取到的Cookies中预设符号的数量;
第二确定单元,用于根据预设符号的数量确定对应的Cookies长度。
作为一种可选实施例,第二确定单元,用于将预设符号的数量加1后所得到的数值,作为获取到的Cookies对应的Cookies长度。
作为一种可选实施例,第二获取模块303,包括:
第一获取单元,用于对于任一域名,获取任一浏览器所允许的最大Cookies长度;
比较单元,用于将最大Cookies长度与Cookies长度进行比较;
第二获取单元,用于根据比较结果,获取任一域名对应的完整Cookies。
作为一种可选实施例,第二获取单元,用于当Cookies长度与最大Cookies长度相等时,向任一域名对应的服务器请求任一域名对应的完整Cookies;当Cookies长度与最大Cookies长度不相等时,将获取到的Cookies作为任一域名对应的完整Cookies。
作为一种可选实施例,该装置还包括:
过滤模块,用于对目标文件进行过滤。
作为一种可选实施例,过滤模块,用于检测目标文件是否为预设文件类型;当目标文件不为预设文件类型时,停止上传目标文件。
作为一种可选实施例,过滤模块,用于检测目标文件的大小是否大于预设阈值;当目标文件的大小大于预设阈值时,停止上传目标文件。
作为一种可选实施例,上传模块304,用于根据目标文件,生成预设格式的编码;根据任一浏览器的类型,将编码及完整Cookies上传至服务器。
本发明实施例提供的装置,通过在本地获取任一域名对应的Cookies,确定获取到的Cookies对应的Cookies长度。根据Cookies长度,获取任一域名对应的完整Cookies。对目标文件进行过滤,将完整Cookies与目标文件上传至服务器。由于可根据在本地获取到的Cookies,获取任一域名对应的完整Cookies,从而避免了因Cookies过长导致数据上传不完整。后续服务器可根据上传的完整Cookies进行用户身份验证,从而不至于因Cookies不全或者Cookies完全丢失而导致验证失败。
另外,通过采样两种不同的方式来对目标文件进行过滤,能够剔除一些非法类型文件上传,节省服务器带宽。除此之外,还能够过滤掉较大的文件,避免恶意用户攻击服务器,从而能够节省服务器的存储空间。
最后,对于那些可能丢失Cookies的浏览器类型,通过在http请求中强制注入Cookies,能够避免Cookies丢失而导致服务器无法进行用户身份验证。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种数据上传方法,其特征在于,所述方法包括:
对于任一浏览器下的任一域名,在本地获取所述任一域名对应的Cookies;
确定获取到的Cookies对应的Cookies长度;
根据所述Cookies长度,获取所述任一域名对应的完整Cookies;
将所述完整Cookies与目标文件上传至服务器;
所述确定获取到的Cookies对应的Cookies长度,包括:
确定获取到的Cookies中预设符号的数量;
根据预设符号的数量确定对应的Cookies长度;
所述根据预设符号的数量确定对应的Cookies长度,包括:
将预设符号的数量加1后所得到的数值,作为获取到的Cookies对应的Cookies长度;
所述根据所述Cookies长度,获取所述任一域名对应的完整Cookies,包括:
对于所述任一域名,获取所述任一浏览器所允许的最大Cookies长度;
将所述最大Cookies长度与所述Cookies长度进行比较;
根据比较结果,获取所述任一域名对应的完整Cookies。
2.根据权利要求1所述的方法,其特征在于,所述根据比较结果,获取所述任一域名对应的完整Cookies,包括:
当所述Cookies长度与所述最大Cookies长度相等时,向所述任一域名对应的服务器请求所述任一域名对应的完整Cookies;
当所述Cookies长度与所述最大Cookies长度不相等时,将获取到的Cookies作为所述任一域名对应的完整Cookies。
3.根据权利要求1所述的方法,其特征在于,所述将所述完整Cookies与目标文件上传至服务器之前,还包括:
对所述目标文件进行过滤。
4.根据权利要求3所述的方法,其特征在于,所述对所述目标文件进行过滤,包括:
检测所述目标文件是否为预设文件类型;
当所述目标文件不为预设文件类型时,停止上传所述目标文件。
5.根据权利要求3所述的方法,其特征在于,所述对所述目标文件进行过滤,包括:
检测所述目标文件的大小是否大于预设阈值;
当所述目标文件的大小大于预设阈值时,停止上传所述目标文件。
6.根据权利要求1所述的方法,其特征在于,所述将所述完整Cookies与目标文件上传至服务器,包括:
根据所述目标文件,生成预设格式的编码;
根据所述任一浏览器的类型,将所述编码及所述完整Cookies上传至服务器。
7.一种数据上传装置,其特征在于,所述装置包括:
第一获取模块,用于对于任一浏览器下的任一域名,在本地获取所述任一域名对应的Cookies;
确定模块,用于确定获取到的Cookies对应的Cookies长度;
第二获取模块,用于根据所述Cookies长度,获取所述任一域名对应的完整Cookies;
上传模块,用于将所述完整Cookies与目标文件上传至服务器;
所述确定模块,包括:
第一确定单元,用于确定获取到的Cookies中预设符号的数量;
第二确定单元,用于根据预设符号的数量确定对应的Cookies长度;
所述第二确定单元,用于将预设符号的数量加1后所得到的数值,作为获取到的Cookies对应的Cookies长度;
所述第二获取模块,包括:
第一获取单元,用于对于所述任一域名,获取所述任一浏览器所允许的最大Cookies长度;
比较单元,用于将所述最大Cookies长度与所述Cookies长度进行比较;
第二获取单元,用于根据比较结果,获取所述任一域名对应的完整Cookies。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219424.2A CN106850751B (zh) | 2016-12-26 | 2016-12-26 | 数据上传方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219424.2A CN106850751B (zh) | 2016-12-26 | 2016-12-26 | 数据上传方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850751A CN106850751A (zh) | 2017-06-13 |
CN106850751B true CN106850751B (zh) | 2019-06-21 |
Family
ID=59136581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611219424.2A Active CN106850751B (zh) | 2016-12-26 | 2016-12-26 | 数据上传方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850751B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532824A (zh) * | 2012-07-06 | 2014-01-22 | 阿里巴巴集团控股有限公司 | 即时通讯消息通知的方法、浏览器及服务器 |
CN103955477A (zh) * | 2014-03-31 | 2014-07-30 | 北京奇虎科技有限公司 | 在浏览器中写读Cookie信息的方法、装置和浏览器 |
EP2800317A1 (en) * | 2011-12-27 | 2014-11-05 | ZTE Corporation | Terminal device and user information synchronization method |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
-
2016
- 2016-12-26 CN CN201611219424.2A patent/CN106850751B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2800317A1 (en) * | 2011-12-27 | 2014-11-05 | ZTE Corporation | Terminal device and user information synchronization method |
CN103532824A (zh) * | 2012-07-06 | 2014-01-22 | 阿里巴巴集团控股有限公司 | 即时通讯消息通知的方法、浏览器及服务器 |
CN103955477A (zh) * | 2014-03-31 | 2014-07-30 | 北京奇虎科技有限公司 | 在浏览器中写读Cookie信息的方法、装置和浏览器 |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
Non-Patent Citations (1)
Title |
---|
《浅析Cookies欺骗攻击与防御策略》;王永乐等;《信息技术》;20140825(第8期);第176-179页 |
Also Published As
Publication number | Publication date |
---|---|
CN106850751A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
CN106302337B (zh) | 漏洞检测方法和装置 | |
US9680850B2 (en) | Identifying bots | |
CN101388768B (zh) | 检测恶意http请求的方法及装置 | |
KR101001132B1 (ko) | 웹 어플리케이션의 취약성 판단 방법 및 시스템 | |
US20070136809A1 (en) | Apparatus and method for blocking attack against Web application | |
US10972496B2 (en) | Upload interface identification method, identification server and system, and storage medium | |
CN107302586B (zh) | 一种Webshell检测方法以及装置、计算机装置、可读存储介质 | |
CN110417718B (zh) | 处理网站中的风险数据的方法、装置、设备及存储介质 | |
CN107332804B (zh) | 网页漏洞的检测方法及装置 | |
KR101902747B1 (ko) | 클라이언트 측 웹 취약점 분석 방법 및 장치 | |
CN111628990A (zh) | 识别攻击的方法、装置和服务器 | |
CN110909350B (zh) | 一种远程精准识别WebShell后门的方法 | |
KR101372906B1 (ko) | 악성코드를 차단하기 위한 방법 및 시스템 | |
CN113364784B (zh) | 检测参数生成方法、装置、电子设备及存储介质 | |
CN113420300B (zh) | 一种检测和防御文件上传漏洞的方法及*** | |
US10757118B2 (en) | Method of aiding the detection of infection of a terminal by malware | |
CN106850751B (zh) | 数据上传方法及装置 | |
CN105490993B (zh) | 在浏览器中防止Cookie跟踪的方法和装置 | |
CN113742631B (zh) | 一种基于cdn的网站图片防盗链方法 | |
CN110851822B (zh) | 网络下载安全处理方法和装置 | |
CN106487771B (zh) | 网络行为的获取方法及装置 | |
CN114048483A (zh) | Xss漏洞的检测方法、装置、设备及介质 | |
CN114329459A (zh) | 浏览器防护方法及装置 | |
CN113542287A (zh) | 网络请求的管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230821 Address after: 518000 Youyiju Lighting City, Shanglin Community, Yuanling Street, Futian District, Shenzhen City, Guangdong Province 4008, at the junction of Bagua Road and Nigang Road Patentee after: Shenzhen Hetang Huizhi Technology Co.,Ltd. Address before: 430000 Wuhan Donghu Development Zone, Wuhan, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |