身在互联网的时候,web在给我们带来便利的同时,有些人也在盯着这些便利,因此出现了攻击网站的现象。所以我们在开发的时候,要注意这些容易被攻击的地方,以及做好防御的措施,下面将介绍一些这些 常见的攻击手段以及解决办法

1.SQL注入

攻击方式

大多数人拥有字母数字式密码,或者有安全意识的人,拥有附带其他键盘符号的字母数字式密码。由于 这种想法,开发人员可能允许输入任何字符作为密码。这通常是没问题的,除非他们忘记清洁或检查输入数据。这种情况比应该的要发生的频繁得多。使用 SQL 数据库的密码系统(在许多网站上非常普遍的场景)可能运行这样的查询:

SELECT * FROM users WHERE 'username' = '$USER' AND 'password'='$PASS';

$USER 和 $PASS 会用用户提供的用户名和密码来代替。那么如果用户输入‘bob’和‘1234’,那么结果的查询是:
           SELECT * FROM users WHERE 'username' = 'bob' AND 'password' = '1234';

而来自数据库的返回值会是所有用 bob 作为用户名且用 1234 作为密码的数据元组。如果黑客输入 admin 和 <<’hi’ 或 1=1>>–,那么查询是:
          SELECT * FROM users WHERE 'username' = 'admin' and `password` = 'hi' OR 1=1--'

注意用户输入的引号如何与原始查询中的第三个引号匹配。数据库现在会返回用户名为 admin 的所有元组,并且会取消对密码的检查,因为 ‘password’ = ‘hi’ OR 1=1 命令数据库寻找密码是 hi 的元组或 1=1 的元组,而由于 1 总是 1,所以每行都是候选。– 是 SQL 注释标志,取消查询中原始的其他引号,并且还将取消任何额外的检查,因此如果有额外的凭证(也就是,keyfob 或 captcha)也会被忽略。现在黑客可以以管理员的身份进入系统并且不用不得不给出合法的密码。通过利用越来越复杂的查询,黑客可以变更、添加,或查询数据。对于数据库,这令黑客具有同应用程序相同的特权。

 解决方案

a.前端页面需要校验用户的输入数据(限制用户输入的类型、范围、格式、长度),不能只靠后端去校验用户数据。一来可以提高后端处理的效率,二来可以提高后端数据的安全。
          b.后端不要动态sql语句,使用存储过程查询语句。限制用户访问数据库权限。后端接受前端的数据时要过滤一些特殊字符(如:“--”等字符)
          c.后端如果出现异常的话,要使用自定义错误页,防止用户通过服务器默认的错误页面找到服务器漏洞。

安全查询(参数化查询):

//获取参数,拆分参数String custname = request.getParameter("customerName"); String query = "SELECT account_balance FROM user_data WHERE user_name = ? ";//创建连接PreparedStatement pstmt = connection.prepareStatement( query );//将参数格式化pstmt.setString( 1, custname); //获取查询结果ResultSet results = pstmt.executeQuery();

安全查询(存储过程)

//获取参数
String custname = request.getParameter("customerName");
try {//调用数据库的存储过程CallableStatement cs = connection.prepareCall("{call sp_getAccountBalance(?)}");//将参数格式化cs.setString(1, custname);//获取查询结果ResultSet results = cs.executeQuery();        } catch (SQLException se) {
}

不安全查询

String query = "SELECT account_balance FROM user_data WHERE user_name = " + request.getParameter("customerName");//动态查询,直接拼接字符串try {//创建连接Statement statement = connection.createStatement();//获取查询结果ResultSet results = statement.executeQuery( query );}

2.XSS攻击

引用: XSS攻击及防御

3.CSRF攻击

      引用:CSRF攻击与防御

4.Dos攻击

Dos攻击是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。
攻击方式:
Ping Flood攻击即利用ping命令不停的发送的数据包到服务器。
                             SYN Flood攻击即利用tcp协议原理,伪造受害者的ip地址,一直保持与服务器的连接,导致受害者连接服务器的时候拒绝服务。
           解决方案:
设置路由器与交换机的安全配置,即设置防火墙。

5.Cookies攻击

通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。
现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性

6.重定向攻击

一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.

7.文件上传攻击

a.文件名攻击,上传的文件采用上传之前的文件名,可能造成:客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.
b.文件后缀攻击.上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.
c..文件内容攻击.IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。
注意:该文章参照以下资料
常见的web攻击手段
WEB网站常见受攻击方式及解决办法
常见的web攻击有哪些
浅谈常用的几种web攻击方式
XSS攻击及防御
CSRF攻击与防御

浅谈常用的几种web攻击方式以及解决办法相关推荐

  1. 常见的几种web攻击方式及原理

    常见的几种web攻击方式 SQL注入攻击 重定向攻击 上传文件攻击 Dos攻击(Denial of Service attack) 跨站点请求伪造(CSRF,Cross-Site Request Fo ...

  2. WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的 ...

  3. php网站实战,PHP实战之WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法 跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见 ...

  4. 浅谈常用的几种显微镜相比的区别

    一.数码显微镜 数码显微镜在观察物体时能产生正立的三维空间影像.立体感强,成像清晰和宽阔,又具有长工作距离,并是适用范围非常广泛的常规显微镜.它操作方便.直观.检定效率高. 数码显微镜适用于电子工业生 ...

  5. java布尔类型比较器_浅谈Java中几种常见的比较器的实现方法

    在java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题. 通常对象之间的比较可以从两个方面去看: 第一个方面:对象的地址是否一样,也就是是否引用自同一个对象.这种方式可以直接使用& ...

  6. java 对象之间转换_浅谈java对象之间相互转化的多种方式

    浅谈java对象之间相互转化的多种方式,对象,属性,参数,赋值,不支持 浅谈java对象之间相互转化的多种方式 易采站长站,站长之家为您整理了浅谈java对象之间相互转化的多种方式的相关内容. 第一种 ...

  7. Linux常用的四种配置网卡方式

    Linux常用的四种配置网卡方式(RHEL8.5) 此方法同样适用于RHEL7 一.VIM文本编辑器 1.打开编辑器,进入此目录中,cd /etc/sysconfig/network-scripts/ ...

  8. 10种网络安全攻击方式详解!

    在网络攻击逐渐增加的当下,无论是企业还是个人做好网络安全防护都显得尤为重要,而想要有效应对网络攻击,我们就需要对攻击手段进行一定的了解,本文为大家盘点最常见的10种网络安全攻击方式,快来一起看看吧,希 ...

  9. 断网安装是什么意思_ARP攻击是什么意思 受到ARP断网攻击的详细解决办法图解...

    在局域网中尤其是公司或者网络服务器所在的局域网,经常容易遭受到一些ARP断网攻击.另外一些电脑用户的电脑也时候会遭受APR攻击.很多电脑爱好者朋友都不知道ARP攻击是什么意思?以下小编为大家简单介绍下 ...

最新文章

  1. 大学计算机课程改革项目,大学计算机课程改革.ppt
  2. 又一个Jupyter神器,操作Excel自动生成Python代码
  3. Entityframework:启用延时加载的主意事项(只为强化记忆)
  4. boost::function_types::has_property_tag用法的测试程序
  5. GPU Gems1 - 19 基于图像的光照(Image-Based Lighting)
  6. JAVA进阶教学之(序列化和反序列化)
  7. 2021年呼和浩特高考段考成绩查询,2019届呼和浩特市高三段考成绩排名分析
  8. Java基础——Arrays工具类的使用
  9. CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
  10. 快速查找对方IP经典技巧汇总
  11. eclipse优化配置
  12. 分享舍得网开发经验(修改版)(转载)
  13. 请教FlashCs3导入图片时出现无法导入问题。
  14. 杀死一只知更鸟——派克的经典作品
  15. 【HPU】[1732]序列的区间操作
  16. Lesson 18 Kaggle医学影像识别 PART 1
  17. IP 基础知识全家桶,45 张图一套带走
  18. 初识lemur--试验indribuildindex命令
  19. flink-streaming-platform-web 源码解读
  20. 视频格式: QSV转MP4

热门文章

  1. 项目文档编制-招标书
  2. 惠普笔记本禁用触屏功能
  3. 问题:jq中只有slideDown()和slideUp()或者slideToggle(),想要左右滑动怎么办
  4. ppa什么网_psp用播放器ppa ppa叫什么
  5. spidermonkey_Mozilla改进了SpiderMonkey JavaScript引擎中的RegExp支持
  6. 企业_商誉_管理_系统(调查需求)
  7. 体力劳动?脑力劳动?
  8. 【案例 5-1】 模拟订单号生成
  9. 【华为鸿蒙3.0/荣耀安卓12使用VMOS Pro的激活方式】
  10. 系统自带的CMD教程