【计算机网络】常见的 Web 安全问题原理及防御

一、SQL 注入

SQL注入是一种众所周知的攻击,可以通过简单的措施轻松阻止。

1. SQL注入的原因

SQL注入的原因,是将查询参数,直接拼接在 SQL 语句中,然后把用户输入的字符串,当作 “SQL语句” 来执行。

2. SQL注入的防御

1)采用SQL语句预编译和绑定变量,是防御SQL注入的最佳方法。

即让SQL引擎预先进行语法分析,产生语法树,生成执行计划;这样,无论你后面输入的参数是什么,都不会影响SQL语句的语法结构,只会被当作字符串字面值参数。

2)在没有采用SQL语句预编译的场景下,可以严格检查查询参数的数据类型,还可以使用一些安全函数来防御SQL注入。

参考:SQL 注入防御方法总结

二、XSS和CSRF攻击

1. 定义

XSS(Cross Site Scripting跨站脚本):XSS定义的主语是“脚本”,是一种跨站执行的脚本,也就是Javascript脚本,指的是在网站上注入Javascript脚本,执行非法操作。 

XSS攻击发生的条件是可以在网站上执行Javascript脚本,一般在站点中总会有发表文章、留言等信息的表单,这种表单一般是写入到数据库中,然后在某个页面进行展示。我们可以在这些表单中直接编写Javascript代码(<script>alert("hack sucess!");</script>)进行测试,看是否可以执行。如果在信息展示页面Javascript代码可以执行,XSS攻击就成功了。

https://blog.csdn.net/l31299/article/details/72792613

CSRF(Cross-site request forgery跨站请求伪造):CSRF定义的主语是“请求”,是一种跨站的伪造的请求,指的是跨站伪造用户的请求,模拟用户的操作

站内CSRF攻击发生的条件是以XSS攻击为前提的。通过XSS攻击,可以获取到用户的cookie信息;那么就可以在Javascript代码中执行站内CSRF攻击,伪造用户请求。

跨站CSRF攻击:1)如果站点不存在XSS漏洞,就只能进行跨站攻击了,并且这种跨站攻击因为不能执行Javascript代码,相关参数只能通过 get 方式进行传递,如果参数的接收方式是 post 的话,可以防止这种攻击。2)举例来说,假设我们知道某个用户的邮箱,我们给他发送一封html格式的邮件,邮件内容包含了一个隐藏的img标签<img src="http://www.sitename.com/delete/id/23" style="display:none">。如果用户站点保持登录状态的情况下打开这封邮件,也能成功执行删除操作。即实现了跨站CSRF攻击,因为这次的请求是从用户查看邮件的地址发出的,所以是"跨站的"。

2. 防御

XSS攻击的防御可以通过以下两方面操作: 
1)对用户表单输入的数据进行过滤,对 Javascript 代码进行转义,然后再存入数据库。 
2)在信息的展示页面,也要进行转义,防止 Javascript 在页面上执行。

CSRF攻击的防御可以通过以下两方面操作: 
1)所有需要用户登录之后才能执行的操作属于重要操作,这些操作传递参数应该使用 post 方式,更加安全。 
2)为防止跨站请求伪造,我们在某次请求的时候都要带上一个csrf_token参数,用于标识请求来源是否合法,csrf_token参数由系统生成,存储在SESSION中。

参考:浅析XSS和CSRF攻击及防御

三、暴力破解

举例分析:对手机验证码进行暴力破解和防御。

1. 定义

假设 1)用户可以通过手机号+验证码的方式进行登录;2)验证码为4位数字(0001~9999中间的一个),有效期为1小时。那么我们只要在1小时内一个个地试验,肯定有一次能输入正确,即为暴力破解。

2. 暴力破解方法:

1)如果已知登录请求的接口地址URL及参数名称,那么我们就可以在浏览器的控制台不断发送请求,直到成功。

2)抓包工具Fiddler,只需要对Request Body中的txtPhoneCode进行修改就好了,不需要写9999个请求那么麻烦。

3)密码破解工具,只需要输入相应的规则,该工具会自动发送请求,直到成功。

3. 暴力破解防御:

就以本文案例来说,加长这个短信验证码的长度,本来是4位,我们可以变成6位。对IP进行限制,在该IP下规定时间内出现错误超过3次,则封停24小时。对手机号做限制,如果第一次输入错误,则延长10秒进行登录,第二次输入错误则延长1分钟才能进行登录,依次类推。

参考:web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。

四、DDOS攻击

1. 定义

对攻击网站发动大量的正常或非正常请求,耗尽目标主机资源或网络资源,从而使被攻击的主机不能为合法用户提供服务,这个就属于DDOS攻击。

2. 防御

对于DDOS攻击,建议买高防的DDOS服务器就可以了。

参考:web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。

END

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值