常见网络攻击类型
XSS(Cross-site scripting)跨站脚本攻击
- 服务器对客户端的输入检测不严格 ,导致客户端输入的恶意JAVASCRIPT代码被植入到HTML代码中,这些JAVASCRIPT代码得以执行,实现一些特殊的目的------“你害别人”。
- 当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
- 过滤:
替换:转义字符
限制:限制输入
CSRF(Cross-site request forgery)跨站请求伪造
1.攻击者利用用户在浏览器中保存的认证信息,向对应的站点发送伪造请求----“别人害你”。
2.用户的认证是通过保存在cookie中的数据实现。在发送请求时,只要浏览器中保存了对应的cookie,服务器端就会认为用户已经处于登录状态,而攻击者正是利用了这一机制。
3.解决方案:
1). 正确使用HTTP方法
防范CSRF的基础就是正确使用HTTP方法。在普通的Web程序中,一般只会用到GET和POST方法。而且目前在HTML中仅支持GET和POST方法(借助AJAX则可以使用其他方法)。在使用HTTP方法时,通常应该遵循下面 的原则:
1、 GET方法输入安全方法,不会改变资源状态,仅用于获取资源。页面中所有可以通过链接发起的请求都属于GET请求。
2、 POST方法用户创建、修改和删除资源。在HTML中使用form标签创建表单并设置提交方法为POST,在提交时会创建POST请求。
在GET请求中,查询参数用来传入过滤返回的资源,但是在某些情况下,也可以通过查询参数传递少量非敏感信息。
在删除资源时,应该将删除按钮内嵌在使用了POST方法的form元素中
2). CSRF令牌校验------详情去看计算机网络
XSS 与CSRF的区别
XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。