网站攻击的三种手段及预防方法
2015-12-23 09:57
876 查看
网站被攻击,在当下屡见不鲜,并且目前的网络攻击模式各种各样,让人防不胜防。在这种情况下,知道一些常见的网站攻击的方法就显得尤为重要了,这对于我们维护好网站,防范网站侵犯具有一定的积极作用。在这里,小编总结了3种常见的网站攻击的方法及预防措施,供大家参考。
1、恶意攻击
恶意攻击通常有两种,一种是get方式,一种是post方式。
Get方式,俗称肉鸡攻击,也称傀儡机。肉鸡攻击是指可以被黑客远程控制的机器。比如用"灰鸽子"等诱导客户点击或者电脑被黑客攻破或用户电脑有漏洞被种植了木马,黑客可以随意操纵它并利用它做任何事情。肉鸡通常被用作DDOS攻击。可以是各种系统,如windows、linux、unix等,更可以是一家公司、企业、学校甚至是政府军队的服务器。所谓电脑肉鸡,就是拥有管理权限的远程电脑,也就是受黑客远程控制的电脑。要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。防范通常是从硬件角度来着手,比如购买防火墙等。
Post方式,是指模拟表单,向网站发出请求,如:论坛灌水,暴力破解。
暴力攻击是一种不使用任何特殊手段而去尝试各种可能性的攻击方式。它的更正式的叫法是穷举攻击--穷举各种可能性的攻击。对于访问控制,典型的暴力攻击表现为攻击者通过大量的尝试去试图登录系统。在多数情况下,用户名是已知的,而只需要猜测密码。尽管暴力攻击没有技巧性可言,但词典攻击似乎有一定的技巧性。最大的区别是在进行猜测时的智能化。词典攻击只会最可能的情况列表中进行穷举,而不像暴力攻击一样去穷举所有的可能情况。
防止暴力破解的方式是进行验证码校验或限制允许错误的次数还算是一个比较有效的安全手段,但是这样做的两难之处在于如何在不影响合法用户使用的情况下识别与阻止攻击者。
2、Sql注入
所谓SQL注入,就是通过输入特殊的符号,以构造一个新的SQL命令,将其插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,达到攻击的目的。下面介绍2个例子理解一下。
万能密码
输入一个奇怪的密码,尝试登陆,如下图:
上图表单,提交到后台相当于执行如下sql:
SELECT * from wanbu_data_user where username='xxx' and PASSWORD='xxx' or 1
简写为:SELECT * from wanbu_data_user where 1
所以很不安全,有很大的隐患。为了解决这个问题我们可以将密码进行md5加密,将加密后是密码保存到数据库中(为了提高安全性可以将密码2次md5加密)。这样,登录校验会将密码框中的字符串进行加密,从而提交了安全性。
万能用户名
输入一个奇怪的用户名,尝试登陆,如下图:
上图表单,提交到后台相当于执行如下sql:
SELECT * from wanbu_data_user where username='xxx or 1#' and PASSWORD='xxx'
从上述两种例子可以看出,用户通过输入一个特殊的符号(’)或者(#),就可以改变查询SQL,从而改变它的本意。为了从根本上解决sql注入,我们需要将这些特殊符号失去其本身的意义,也就是所谓的转义。
如何转义,有两种方式:
mysql扩展函数,Mysql_real_escape_string()
Php函数,addslashes()
关于这两个函数的用法,小编会在接下来有关权限的文章中提到,敬请期待!
3、Xss攻击
XSS攻击,跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,用户通过输入一些入恶意脚本代码(包括html代码和js代码),实现对网站的攻击。
例如下面的例子,在输入框中数据一行js代码,当点击‘确定’按钮后,会弹出‘你好吗?’的弹框。
类似这种例子很多,比如输入下面的js代码就可以获取cookie信息。
由此看来,永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。XSS防御有如下方式:
Htmlspecialchars()函数
Htmlentities()函数
最后再次强调,凡是用户的输入,不管是前后还是后台,不管是post还是get,都需要处理。安全问题很重要,程序所有的模块都需要考虑到安全问题。只有我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。
1、恶意攻击
恶意攻击通常有两种,一种是get方式,一种是post方式。
Get方式,俗称肉鸡攻击,也称傀儡机。肉鸡攻击是指可以被黑客远程控制的机器。比如用"灰鸽子"等诱导客户点击或者电脑被黑客攻破或用户电脑有漏洞被种植了木马,黑客可以随意操纵它并利用它做任何事情。肉鸡通常被用作DDOS攻击。可以是各种系统,如windows、linux、unix等,更可以是一家公司、企业、学校甚至是政府军队的服务器。所谓电脑肉鸡,就是拥有管理权限的远程电脑,也就是受黑客远程控制的电脑。要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。防范通常是从硬件角度来着手,比如购买防火墙等。
Post方式,是指模拟表单,向网站发出请求,如:论坛灌水,暴力破解。
暴力攻击是一种不使用任何特殊手段而去尝试各种可能性的攻击方式。它的更正式的叫法是穷举攻击--穷举各种可能性的攻击。对于访问控制,典型的暴力攻击表现为攻击者通过大量的尝试去试图登录系统。在多数情况下,用户名是已知的,而只需要猜测密码。尽管暴力攻击没有技巧性可言,但词典攻击似乎有一定的技巧性。最大的区别是在进行猜测时的智能化。词典攻击只会最可能的情况列表中进行穷举,而不像暴力攻击一样去穷举所有的可能情况。
防止暴力破解的方式是进行验证码校验或限制允许错误的次数还算是一个比较有效的安全手段,但是这样做的两难之处在于如何在不影响合法用户使用的情况下识别与阻止攻击者。
2、Sql注入
所谓SQL注入,就是通过输入特殊的符号,以构造一个新的SQL命令,将其插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,达到攻击的目的。下面介绍2个例子理解一下。
万能密码
输入一个奇怪的密码,尝试登陆,如下图:
上图表单,提交到后台相当于执行如下sql:
SELECT * from wanbu_data_user where username='xxx' and PASSWORD='xxx' or 1
简写为:SELECT * from wanbu_data_user where 1
所以很不安全,有很大的隐患。为了解决这个问题我们可以将密码进行md5加密,将加密后是密码保存到数据库中(为了提高安全性可以将密码2次md5加密)。这样,登录校验会将密码框中的字符串进行加密,从而提交了安全性。
万能用户名
输入一个奇怪的用户名,尝试登陆,如下图:
上图表单,提交到后台相当于执行如下sql:
SELECT * from wanbu_data_user where username='xxx or 1#' and PASSWORD='xxx'
从上述两种例子可以看出,用户通过输入一个特殊的符号(’)或者(#),就可以改变查询SQL,从而改变它的本意。为了从根本上解决sql注入,我们需要将这些特殊符号失去其本身的意义,也就是所谓的转义。
如何转义,有两种方式:
mysql扩展函数,Mysql_real_escape_string()
Php函数,addslashes()
关于这两个函数的用法,小编会在接下来有关权限的文章中提到,敬请期待!
3、Xss攻击
XSS攻击,跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,用户通过输入一些入恶意脚本代码(包括html代码和js代码),实现对网站的攻击。
例如下面的例子,在输入框中数据一行js代码,当点击‘确定’按钮后,会弹出‘你好吗?’的弹框。
类似这种例子很多,比如输入下面的js代码就可以获取cookie信息。
由此看来,永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。XSS防御有如下方式:
Htmlspecialchars()函数
Htmlentities()函数
最后再次强调,凡是用户的输入,不管是前后还是后台,不管是post还是get,都需要处理。安全问题很重要,程序所有的模块都需要考虑到安全问题。只有我们的代码中不存在漏洞,攻击者就无从下手,我们要做一个没有缝的蛋。
相关文章推荐
- 解决一些网站文字不能复制的问题?java应用
- 网站为什么只能重置密码,而不能真正的“找回密码”
- MySQL下高可用故障转移方案MHA的超级部署教程
- php+mysql制作的投票功能 适合网站做问卷调查活动
- LVS+keepalived+LNMP架构
- DS8880要将双控高端存储架构进行到底
- Android系统的基本架构
- 架构师应该做些什么
- 微网站
- 用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式
- Cypress固件架构彻底解析及USB枚举
- 老李推荐:第1章3节《MonkeyRunner源码剖析》概述:架构
- Android应用架构之Android MVP使用
- Android中的四层架构,五块区域
- Android中的四层架构,五块区域
- 免费的论文查重网站
- [置顶] 应用系统架构设计
- [置顶] 应用系统架构设计
- [置顶] 应用系统架构设计
- 应用系统架构设计