浅谈常用的几种web攻击方式

一、Dos攻击(Denial of Service attack)

  是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。

二、跨站点请求伪造(CSRF,Cross-Site Request Forgeries)

  是指攻击者通过已经设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态的更新。属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了请求。

  一个CSRF最简单的例子就是用户A登录了网站A在虚拟账户里转账了1000块钱,用户A在本地生成了网站A的cookie,用户A在没有关闭网站A的情况下有访问了恶意网站B,恶意网站B包含请求A网站的代码,利用了本地的cookie经过身份验证的身份又向网站A发送了一次请求,这时你就会发现你在网站A的账户又少了1000块。这就是基本的CSRF攻击方式。

三、SOL注入攻击

  是指通过对web连接的数据库发送恶意的SQL语句而产生的攻击,从而产生安全隐患和对网站的威胁,可以造成逃过验证或者私密信息泄露等危害。

  SQL注入的原理是通过在对SQL语句调用方式上的疏漏,恶意注入SQL语句。

  SQL注入常见的两个例子:

    1、私密信息泄露

       假如一个出版书籍的网站,具有根据作者姓名查询已出版书籍的功能,作者未出版的书籍不能被普通用户看到,因为版权属于隐私的问题。那么假设请求是用HTTP的GET请求来完成的,其地址栏请求内容为:www.book.com?serach=echo

       完成此功能的SQL语句为简单的根据条件查找:select * from book where author = ‘echo‘ and flag = 1; flag等于1代表书籍已出版。

       这时如果有的用户直接地址栏里输入www.book.com?serach=echo‘--   这样请求会发生什么??

       这样的请求传到服务器里的状态会是这样子的 select * from book where author = ‘echo‘ -- and flag = 1;在SQL语句中--代表注释,会自动忽略掉后面的内容,所以这个请求是骗过服务器把作者为echo的已出版和未出版的书籍全部显示在网页上。造成网站违背开发者的意图,造成信息泄露。

四、XSS攻击(Cross-Site scripting)

  跨站脚本攻击,是指在通过注册的网站用户的浏览器内运行非法的HTML标签或javascript,从而达到攻击的目的,如盗取用户的cookie,改变网页的DOM结构,重定向到其他网页等。

       

  

时间: 2024-08-11 07:34:50

浅谈常用的几种web攻击方式的相关文章

web攻击方式和防御方法

在http请求报文中加载攻击代码,就能发起对web应用的攻击.通过url查询字段或者表单.http首部.cookie等途径吧攻击代码传入,若这时web应用存在安全漏洞,那内部信息就会遭到窃取! 对web的攻击模式有两种: 主动攻击(主动攻击服务器) 被动攻击(上传木马程序,用户访问时触发http陷阱) 实施的安全策略主要分为两步: 客户端验证 服务端验证(输入值验证,输出值转义) 两种主要的攻击方式 1.SQL注入攻击(php防止方法是使用mysqli_real_escape_string或者a

浅谈常用的Web安全技术手段

提示客户使用较为复杂的密码. 使用邮箱或者手机验证码验证. 复杂的验证码. 密码进行加密算法(如:MD5,AES...). 限制每日登录的错误次数. 限制异常IP. 系统界面出现异常时显示友好界面,避免敏感信息泄露. 及时释放资源,避免内存溢出. 记录重要信息的操作日志. 避免跨站脚本攻击. 过滤查询,防SQL注入,参数化实现. 敏感信息不要存放Cookie中,以防Cookie劫持. 前台js客户端和后台代码服务器端双向校验. And so on....欢迎补充!

浅谈常见的七种加密算法及实现

前言 数字签名.信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入.交易.信息通讯.oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标.这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用. 正文 1. 数字签名 数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式.一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证.分别由 发送者 持有能够 代表

浅谈C#.NET防止SQL注入式攻击

1#region 防止sql注入式攻击(可用于UI层控制)  2  3///   4/// 判断字符串中是否有SQL攻击代码  5///   6/// 传入用户提交数据  7/// true-安全:false-有注入攻击现有:  8public bool ProcessSqlStr(string inputString)  9{ 10    string SqlStr = @"and|or|exec|execute|insert|select|delete|update|alter|create

浅谈Bootstrap自适应功能在Web开发中的应用

随着移动端市场的强势崛起,web的开发也变得愈发复杂,对于个体开发者来说,自己开发的网站,在电脑.手机.Pad等上面都要有正常的显示以及良好的用户体验.如果每次都要自己去调整网页去匹配各个不同的客户端设备,这个工作量可想而知.如果网站可以自适应浏览器大小,对于开发者来说,无疑是天大的福音.今天,我通过自己的实践,简单的探探boostrap的自适应功能,这也是众多平台中,我认为比较好的一个. Boostrap是什么 Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了

浅谈js的几种模式(三)

接着前面两篇,终于到了第三篇了,天真冷. 组合使用构造函数模式和原型模式 前面讲到了js中的原型模式,是为了解决不共享的问题,然而也因为原型模式的共享性带来了一些问题.原型中所有的属性,对它的实例都是共享的,但是有时我们希望每个实例中能有自己私有的属性,那么此时我们就要组合使用构造函数模式和原型模式.例: function Person (sex) { this.sex=sex; } Person.prototype.name="DJL"; Person.prototype.job=&

浅谈创建对象的两种方式

经常使用IDE不容易看出编译和运行的明显区别,因为像eclipse这样的开发工具会自动进行编译.当你创建一个类的时候就编译成一个class文件,在此基础上做的修改保存后又会触发一次编译.所以我们可以借助记事本来看看什么是运行时调用,来体验一下创建对象的两种方式. 首先来看一个例子,有以下的接口和两个实现类: public interface Fruit { public void color(); } public class Apple implements Fruit { @Override

浅谈常用接口中的幂等设计

幂等设计的功效:执行多次操作和执行一次操作的结果都是一样的. HTTP四大动作中: GET:用于获取资源,不会对服务器产生任何影响,视为安全的.因此其有幂等性. POST:用于创建或更新资源,每次执行的结果都不一样.就属这货最不安分.其不具备幂等性. PUT:用于创建或更新资源,定位到具体资源.因此具有幂等性. DELETE:用于删除资源,定位到具体资源.因此具有幂等性. 我们通常在设计Web api的时候,需要考虑某些接口操作的幂等性.例如转账,客户A通过转账操作将500元钱转给客户B,该操作

浅谈Javascript 中几种克隆(clone)方式

clone就是把原来的东西原样复制一份,新复制的东西和以前的东西没有任何关系 一:在Javascript里,如果克隆对象是基本类型,我们直接赋值就可以了: var sStr = "kingwell"; var cStr = sStr; alert(cStr);//输出kingwell sStr = "abc"; alert(cStr);//输出kingwell; 把一个值赋给另一个变量时,当那个变量的值改变的时候,另一个值不会受到影响. 这里需要注意的是,复制会把A