Cookie安全与CSRF和XSS攻击知识点收集
个人简单理解:
1、XSS最简单的理解就是可以在表单提交的内容上嵌入JS执行代码,然后页面渲染的时候没有过滤时会自动执行这个脚本。
2、CSRF可以理解为当你登录了京东,浏览器上保存了你登录的Cookie,此时你有打开另一个网页,这个网页上有一个IFrame只想你了你的京东后台订单列表的,那么这个IFrame就能正常读取你订单的数据,注意,这个数据实在另一个网页上读取的。
3、Cookie来说,现在的浏览器基本都已经杜绝了JS能正常读取其它站点的Cookie,如果要获取只能在当前网页上嵌入其它代码来获取本站的Cookie。
4、综上所述,其实CSRF离不开Cookie,并不是说要获取Cookie,而是利用浏览器保存已有的Cookie数据来做跳转,而XSS恶意代码执行是辅助CSRF去执行,当然,XSS还有可能有其它用途,比如挖矿等等。现在基本上都不用打开另外一个页面去获取Cookie,结合XSS在本站下自动执行脚本动作,也不用获取Cookie,直接提交时默认就已经带上了本站的全部Cookie信息。所以这个XSS是实际操作CSRF是一个攻击概念。
解决方式简单理解:
1、Cookie上有几个属性能杜绝JS获取本地Cookie,比如:HttpOnly。Secure是只能在SSL下使用。现在的浏览器都已经杜绝了跨站点通过JS获取Cookie的,所以不存在能在B站获取A站的全部Cookie。
2、CSRF的防御可以网页上增加tooken的机制,比如Java框架提供了OWASP-CSRFGuard,再比如使用JWT这些token认证。同样在渲染的HTML内容上增加meta头限制使用IFrame等。
3、XSS的功能可以用简单过滤提交内容来限制。
5、综上所述,其实主要是增加其复杂性,但如果从网络运营商上就已经控制了你的网络入口,那么你请求的任何内容都经过网络运营商时,这些内容都可以被难道,从而伪造出可提交的数据。当然一些通过SSL可以比较有效的防范,但依然还是有办法实现的。所以,这些功能只能做到99%的防范,不能完全杜绝。
Cookie:
https://segmentfault.com/a/1190000004556040
https://www.owasp.org/index.php/HttpOnly
http://www.cnblogs.com/dynasty/archive/2012/01/29/2330913.html
http://xmong.iteye.com/blog/1566102
http://www.freebuf.com/articles/web/42802.html
CSRF:
https://baike.baidu.com/item/CSRF/2735433
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
https://www.cnblogs.com/shytong/p/5308667.html
http://netsecurity.51cto.com/art/201104/256035.htm
http://blog.csdn.net/stpeace/article/details/53512283
http://www.freebuf.com/articles/web/55965.html(CSRF攻击示例,结合XSS实现)
http://www.freebuf.com/vuls/131691.html
https://www.cnblogs.com/lovesong/p/5233195.html
https://segmentfault.com/q/1010000000713614
https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/
https://www.zhihu.com/question/39011147
http://blog.csdn.net/xeseo/article/details/9467099(Java OWASP-CSRFGuard框架)
https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project(Java OWASP-CSRFGuard框架)
http://xmong.iteye.com/blog/1564261
XSS:
http://xmong.iteye.com/blog/1565910
https://baike.baidu.com/item/XSS/917356
http://blog.csdn.net/ghsau/article/details/17027893
http://www.freebuf.com/articles/web/40520.html
https://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html
https://www.zhihu.com/question/24918141
https://www.cnblogs.com/dsky/archive/2012/04/06/2434768.html
http://www.freebuf.com/articles/web/42727.html
http://www.freebuf.com/sectool/42722.html
http://bbs.51cto.com/tag-XSS.html
http://www.hekaiyu.cn/xss/272.html
https://www.cnblogs.com/xiaozi/p/5588099.html
最新文章
- ASP.NET Core 整合Autofac和Castle实现自动AOP拦截
- codingNet项目的创建
- SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)
- poj 2001:Shortest Prefixes(字典树,经典题,求最短唯一前缀)
- erlang rabbitmq-server安装
- 利用__index和__newindex实现默认值表、监控表、只读表
- Python 字典(Dictionary)
- [SAP ABAP开发技术总结]业务对象和BAPI
- hihocoder #1177 : 顺子 模拟
- 线程控制之线程和fork
- UNIX标准化及实现之选项
- WEB页面的生命周期,DOMContentLoaded,load,beforeunload,unload
- frame buffer简单应用
- .net core2.x - 关于仓储(Repository)
- cvc-complex-type.3.2.2: 元素 'constructor-arg' 中不允许出现属性 'name'
- 关于xampp默认安装后mysql/mariadb密码的修改
- RabbitMq(2) 简单消息队列
- 【Vijos1404】遭遇战(最短路)
- CAD中批量打印
- 手工利用Chrome浏览器“Javascript控制台”
热门文章
- 带权并查集:CF-2015 ACM Arabella Collegiate Programming Contest(F题)
- PHP GD库---之头像合成九宫格
- UVa 10934 DP Dropping water balloons
- Oracle 了解 DDL 操作与 REDO 的关系
- [POJ 1006] Biorhythms C++解题
- API生命周期第三阶段:API实施模式,以及结合swagger和项目现状的最佳模式
- Java中接口的作用
- BZOJ4514 [Sdoi2016]数字配对 【费用流】
- jenkins配置发送邮件
- 关于python数据类型的一些举例