1. 忘记密码漏洞

黑客使用抓包工具分析Http请求,在忘记密码找回时,需要发送一套短信验证码,如果验证码数字比较短的话,很容易使用暴力破解方式攻击破。

防御手段:

  • 忘记密码验证码最好在6-8位。
  • 一旦频繁调用接口验证时,应该使用图形验证码拦截,防止机器模拟。
  • 使用黑名单和白名单机制,防御攻击。

2. 上传文件漏洞

上传漏洞这个顾名思义,就是攻击者通过上传木马文件,直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。导致该漏洞的原因在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。

防御手段:

  1. 对文件格式限制,只允许某些格式上传。
  2. 对文件格式进行校验,前端跟服务器都要进行校验(前端校验扩展名,服务器校验扩展名、Content_Type等)。
  3. 将上传目录放置到项目工程目录之外,当做静态资源文件路径,并且对文件的权限进行设定,禁止文件下的执行权限。

示例代码:

/*** 文件上传*/protected void doPost(HttpServletRequest request, HttpServletResponse response) {String root = request.getServletContext().getRealPath("/upload");DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);try {List<FileItem> list = upload.parseRequest(request);for (FileItem it : list) {// 如果是file文件类型if (!it.isFormField()) {FileType fileType = getFileType(it.getInputStream());if (fileType == null) {// 非图片格式response.getWriter().write("fail");return;}String imgValue = fileType.getValue();System.out.println("imgValue:" + imgValue);// 是图片格式it.write(new File(root + "/" + it.getName()));response.getWriter().write("success");}}} catch (Exception e) {try {response.getWriter().write("exception");} catch (IOException e1) {e1.printStackTrace();}e.printStackTrace();}}// 判断文件是图片格式public static FileType getFileType(InputStream is) throws IOException {byte[] src = new byte[28];is.read(src, 0, 28);StringBuilder stringBuilder = new StringBuilder("");if (src == null || src.length <= 0) {return null;}for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v).toUpperCase();if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}FileType[] fileTypes = FileType.values();for (FileType fileType : fileTypes) {if (stringBuilder.toString().startsWith(fileType.getValue())) {return fileType;}}return null;}

3. 其他攻击和漏洞

  • 直接异常信息:会给攻击者以提示,可以使用mvc中的工具,把错误码异常等进行封装HTML注释, 会暴露功能,方便攻击, 上线时去除注释。

  • 文件上传:如果本身功能就是上传文件去执行,那么就有可能执行非常危险的命令。 解决方式是,设置文件白名单,限制文件类型,另外还可以重新命名文件,改名为不可执行的路径遍历, 使用相对路径来遍历未开放的目录。 方式是将JS,CSS部署在独立的服务器,使用独立域名。 其他文件不使用静态URL访问,动态参数不包含文件路径信息。

总结

互联网并发与安全系列教程(07) - 常见的Web安全漏洞(其它漏洞)相关推荐

  1. OMV搭建系列教程[6] – 安装AriaNG Web前端

    OMV搭建系列教程[0] – 最小化安装Debian9 OMV搭建系列教程[1] – Debian9安装OpenMediaVault OMV搭建系列教程[2] – 安装omv-extras OMV搭建 ...

  2. 常见的web中间件java框架漏洞总结

    对近期的web中间件漏洞进行了解.因此我对常见的web中间件漏洞进行了收集以及整理.(本篇文章将持续更新) 文章目录 一.IIS IIS6.x IIS7.x 二.Apache Apache HTTPD ...

  3. Unity3d游戏引擎Windy系列教程:常见组件扫盲讲解引入unity所需的脚本语言基础

    既然好不容易等到周末,那么我多更几章好了,马上要进行的就是一个新的大类题目常见组件扫盲讲解系列博文,看完这个系列的博文你应该可以熟练运用Unity里面常见的组件了. 组件实现各种功能和效果,所以在un ...

  4. Unity3d游戏引擎Windy系列教程:常见组件扫盲讲解3(Animator)

    大家好,又见面了,今提来谈一谈Animator,这应该是一个非常有用的组件了,它的作用便是人物控制器,应该说是unity里面的一大亮点,当然今天不对他做非常深入的讲解,角色控制应该但做一个板块进行讲解 ...

  5. iOS系列教程之常见开发Tips(转自阿峰的博客)

    开发技巧和常见错误汇总,不定期更新中,也欢迎大家总结跟帖 1:ARC下NSNotificationCenter需要remove - (void) dealloc { // [super dealloc ...

  6. 【视频教程】帝国CMS制作网站系列教程07

    在很早之前跟大家分享过Bootstrap的视频教程,今天我跟大家分享一套帝国CMS制作网站的视频教程,本视频教程,主要是通过在本地搭建环境,制作网站的一个过程. 在这里,我给大家提供了一套帝国7.5版 ...

  7. Hyper-V 2016 系列教程52 常见的虚拟机文件格式介绍

    常见的几种虚拟机文件格式如表5-2所示,表里包含了开放虚拟化通用文件格式.XenServer.VMware.Microsoft三大厂商的自已开发的文件格式.   表5-2                ...

  8. canvas系列教程07 ——捕获、拖拽、抛掷、缓动动画、弹性动画

    捕获物体 多边形以及不规则图形的捕获非常复杂,采用的方法是分离轴定理(SAT)和最小平移向量(MTV).这里不展开介绍,有兴趣的小伙伴可以自行搜索了解一下.下面来介绍一下矩形和圆的捕获. 矩形的捕获 ...

  9. Auto.js Pro安卓免ROOT引流脚本开发系列教程07微信运动点赞(4)

    课程内容 翻页前判断是否在指定页面 翻页到达底部的处理 封装接口函数 开发环境与工具 开发环境:Visual Studio Code Auto.js:Pro 7.0.3-7 终端设备:红米NOTE5A ...

最新文章

  1. 这位年仅27岁的阿联酋人工智能部长,竟计划2117年火星造城,真是有钱帅气又任性!
  2. C++容器适配器之priority_queue
  3. request的setAttribute()怎么用的?
  4. 【Linux】一步一步学Linux——lsattr命令(116)
  5. oracle12c 清理归档,Oracle 12c中数据删除(delete)新特性之数据库内归档功能
  6. linux忘记mysql密码_linux下忘记mysql root密码解决办法 | 系统运维
  7. 使用标准库函数对象的例子
  8. SQL Server 2017 AlwaysOn AG 自动初始化(十二)
  9. 3D引擎多线程:渲染与逻辑分离
  10. github添加ToKen到本地并写入netrc实现自动登录
  11. 最近一个快要结束的项目的BUG分析
  12. java 爬虫 sessionid_java爬虫实战之模拟登陆
  13. 以太网测试仪的RFC2544测试你了解吗?
  14. Post man 使用教程
  15. 电脑三种方式连接打印机
  16. 仿9GAG制作过程(三)
  17. Java-SE 学习笔记 第一章-Java历史及其基本介绍
  18. linux ccid驱动下载,ccid驱动支持
  19. Flex弹性盒子(一篇带你掌握潮流 Flex 布局)
  20. 学生会计算机办公软件培训制度,学生干部办公软件技能培训

热门文章

  1. Julia-第一章简介和资源汇总
  2. 解决:Jackson反序列化Java内部类失败(序列化后的识别码为LinkedHashMap,而非内部类本身)
  3. 日本转运海淘包裹被税、退运处理流程详解—北京篇
  4. 电力电子转战数字IC——我的IC笔试(2022.10.14更新)
  5. 安装redis时被意外攻击 newinit
  6. 知识点总结之Java语言的优点
  7. Android SQLite 数据库常用命令
  8. 基于SSM体育竞赛运动会成绩管理系统JAVA毕业设计源码介绍
  9. 又一所“省会大学”,来了!
  10. 线上环境频繁GC问题排查,Finalizer对象该背这个锅吗?