当前位置: 首页 > news >正文

美食网站设计模板网站建设什么科目

美食网站设计模板,网站建设什么科目,百度小程序开发工具,中国企业公司大全一次性付费进群#xff0c;长期免费索取教程#xff0c;没有付费教程。进微信群回复公众号#xff1a;微信群#xff1b;QQ群#xff1a;460500587教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍 微信公众号#xff1a;计算机与网络安全ID#xff1a;Computer-net… 一次性付费进群长期免费索取教程没有付费教程。进微信群回复公众号微信群QQ群460500587 教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍 微信公众号计算机与网络安全IDComputer-network在Web系统中允许用户上传文件作为一个基本功能是必不可少的如论坛允许用户上传附件多媒体网站允许用户上传图片视频网站允许上传头像、视频等。但如果不能正确地认识到上传带来的风险不加防范会给整个系统带来毁灭性的灾难。在PHP项目中提供上传功能并在服务器端未对上传的文件格式进行合理的校验是存在巨大风险的。如果恶意攻击者利用上传漏洞上传一些webshell则可能完全控制整个网站程序执行系统命令获取数据库链接字串进行操作数据库等危险操作。1、文件上传漏洞以下是一个不安全的上传代码示例即文件上传PHP接收代码upload.php。$upload_diruploads; // 用户上传文件保存目录$upload_file$upload_dir.basename($_FILES[userfile][name]);if(move_uploaded_file($_FILES[userfile][tmp_name],$uploadfile)) {echo 恭喜您文件上传成功;} else {echo 文件上传失败;}?以下是文件上传HTML代码upload.html。请选择上传文件这是一个简单的上传文件功能其中由用户上传文件如果上传成功保存文件的路径为http://服务器路径/uploads/文件名称。如果攻击者上传一个如下内容的hacker.php脚本文件到服务器system($_GET[shell]);?则攻击者就可以通过该文件进行URL请求http://服务器路径/uploads/hacker.php?shellls%20-al从而可以执行任何shell命令。图1所示是恶意脚本的执行结果其中列出了该目录下的所有文件。图1  上传漏洞造成的webshell执行结果2、检查文件类型防止上传漏洞上面例子中的代码非常简单并没有进行任何的上传限制。如果要限制通常的做法是限制文件上传类型。下面在PHP代码中增加了文件类型限制来防止上传漏洞。if($_FILES[userfile][type]!image/gif) {die(请上传正确的文件类型);}$uploaddiruploads;$uploadfile$uploaddir.basename($_FILES[userfile][name]);if(move_uploaded_file($_FILES[userfile][tmp_name],$uploadfile)) {echo 恭喜您文件上传成功;} else {echo 文件上传失败;}?在这种情况下如果攻击者试图上传shell.php则应用程序在上传请求中将检查文件MIME类型。以下是拒绝上传的HTTP请求返回数据包。POST /upload.php HTTP/1.1TE: deflate,gzip;q0.3Connection: TE,closeHost: localhost:8080User-Agent: Mozilla/5.0(Macintosh: Inter Mac OS X10_13_2)AppleWebKit/537.36(KHTML,like gecko) Chrome/65.0.3325.181Safari/537.36Content-Type: multipart/form-data;boundaryxYzzYContent-Length:32--s76f8a7sf8as9f8a9f80as8df--Content-Disposition: form-data;nameuserfile;filenameshell.phpContent-Type: text/plainsystem($_GET[shell]);?--s76f8a7sf8as9f8a9f80as8df--HTTP/1.1 200 OKDate: Thu, 31 May 2019 22:00:01 GMTServer: ApacheX-Powered-By: PHP/5.6Content-Length: 30Connection: closeContent-Type: text/html请上传正确的文件类型这里成功地通过检测类型防止了非授权类型文件的上传服务器拒绝接收文件。但是如果只进行上传文件类型的检查也是不够的攻击者通过修改POST数据包中Content-Typetext/plain字段为Content-Typeimage/gif然后发送数据包即可成功实现恶意脚本的上传。3、检查文件扩展名称防止上传漏洞除了检查文件类型外研发人员最常用的防范方法之一就是基于白名单或者黑名单验证所传文件的扩展名称是否符合。以下代码通过黑名单方式对文件类型进行限制。$blacklistarray(.php,phtml,.php3,.php4); // 黑名单$uploaddiruploads/;$uploadfile$uploaddir.basename($_FILES[userfile][name]);$itemsubstr($_FILES[userfile][name],-4);if(in_array($item,$whitelist)) {die(请上传正确的文件类型);}if(move_uploaded_file($_FILES[userfile][tmp_name],$uploadfile)) {echo 恭喜您文件上传成功;} else {echo 上传失败;}?以下是白名单模式限制文件类型的代码示例。$whitelistarray(.jpg,.gif,png); //白名单$uploaddiruploads/;$uploadfile$uploaddir.basename($_FILES[userfile][name]);$itemsubstr($_FILES[userfile][name],-4);if(!in_array($item,$whitelist)) {die(请上传正确的文件类型);}if(move_uploaded_file($_FILES[userfile][tmp_name],$uploadfile)) {echo 恭喜您文件上传成功;} else {echo 上传文件失败;}?从黑名单和白名单两种不同的验证方法来看白名单方式绝对要比黑名单安全得多。但是并不是说采用白名单方式验证就足够安全了。IIS服务存在一个漏洞(Microsoft Internet Infomation Server 6.0 ISAPI Filename Analytic Vulnerability)如上传一个名为hacker.php;.gif的文件到服务器PHP脚本文件因限制最后4个字符所以本文件是合法的但是当上传后浏览该文件——http://服务器路径/uploads/hacker.php;.gif时就可以绕过Web程序的逻辑检查从而能导致服务器以IIS进程权限执行任意恶意用户定义的脚本。此漏洞只针对于IIS特定版本。在Apache程序中同样存在一个由扩展名解析的漏洞。当恶意攻击上传一个有多个扩展名的PHP脚本文件时如果最后的扩展名未定义就会解析前一个扩展比如hacker.php.2018文件。当将该文件上传时如果是以白名单、黑名单方式进行验证就可以绕过验证上传非法文件到服务器当浏览http://服务器路径/uploads/hacker.php.2018时就会被当成PHP脚本执行。4、文件上传漏洞的综合防护以上例子说明不可以只通过一种安全手段来阻止攻击者进行非法文件上传应该同时综合应用检测文件类型、检查文件后缀、黑白名单、使用随机文件名称等多种方法进行防范。下面的代码是综合应用示例。/*** 生成随机字符串* param int $len* $return string*/function genRandomString($len) {$charsarray(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9);$charsLencount($chars)-1;shuffle($chars); // 将精妙绝伦打乱$output;for($i0;$i$len;$i) {$output.$chars[mt_rand(0,$charsLen)];}return $output;}$whitelistarray(.jpg,.gif,png); //白名单$itemsubstr($_FILES[userfile][name],-4);if(!in_array($item,$whitelist)) {die(请上传正确的文件类型);}if($_FILES[userfile][type]!image/gif) { // 校验文件MIME类型die(请上传正确的文件类型);}$uploaddir/tmp/uploads; // 将用户上传的文件放到项目目录之外$uploadfile$uploaddir.genRandomString(20).$item; // 使用随机文件名if(move_uploaded_file($_FILES[userfile][tmp_name],$uploadfile)) {echo 恭喜您文件上传成功;} else {echo 上传文件失败;}?验证上传文件的扩展名以白名单、黑名单方式为主但最好使用白名单。除了在代码逻辑中防止上传漏洞外同时也可以在项目部署时将上传目录放到项目工程目录之外当作静态资源文件处理并且对文件的权限进行设定禁止文件的执行权限。当用户上传文件到服务器保存时一定要使用随机文件名进行存储并保证所存储的扩展名合法。保证文件名的唯一性也保证了存储的安全性可以防止上传文件非法扩展进行解析。微信公众号计算机与网络安全IDComputer-network【推荐书籍】
http://www.zqtcl.cn/news/942170/

相关文章:

  • 工业设计招聘信息网站常用的seo网站优化排名
  • 温岭市建设规划局网站网站规划与建设ppt
  • 龙岩网站建设较好的公司做网站销售的换工作
  • 潞城建设局网站建设网站服务器自营方式的特点
  • 西安网站seo公司东莞市专注网站建设怎么样
  • dede游戏网站模板如何做盆栽蔬菜网站
  • 江都建设网站网站开发技术介绍
  • 网站介绍视频怎么做网站建设优化服务
  • 可以左右滑动的网站有口碑的盐城网站建设
  • 360报危险网站注册界面设计
  • 不用淘宝客api如何做网站北京移动官网网站建设
  • 手表哪个网站做的好河北网站备案流程
  • 凡科做的网站推效果网站做seo第一步
  • 建设在线观看视频网站免费企业网站建设免费
  • 网站开发需要后台吗哪家建站公司好
  • 个人建设网站论文网站视频怎么做的
  • 不同类型的购物网站汉川网站建设
  • 网站开发需求文档范文广州公司网站托管
  • 网站制作公司官网首页撸撸撸做最好的导航网站
  • 网站建设毕业设计综述centos 安装wordpress lnmp
  • 济宁专业做网站网站建设中 html
  • 中国排名高的购物网站最新发布的手机2022
  • 备案的网站名与公司名称出国用哪个地图app好
  • 网站建设工作室图片文章资讯类网站
  • 深圳自助建站系统网站题目有哪些
  • 郑州做网站kuihuakeji软文发布的平台与板块
  • 一那个网站可以做一建题安全文化企业示范企业评价标准
  • 网站没有关键词收录phpstudy配置网站
  • 返利网站怎么做的做网站推广见客户的话术
  • 两个人看的视频在线观看成都网站seo厂家