网站攻击的方式有哪几种

1、xss(跨站脚本攻击):富文本、评论

利用站点开放的文本编辑并发布的功能,输入并执行js脚本,窃取cookie等敏感信息。

预防方法:

方法一:cookie添加httpOnly属性,这是使用js是不能读取和操作cookie的。

方法二:在cookie中添加校验信息。

方法三:对用户输入进行编码(encode)、过滤(移除style、script、iframe相关节点)、校正()

js编码解码:
1、使用参数时,使用encodeURIComponent
2、进行url跳转时,使用encodeURI
3、js使用数据时,使用escape
 
2、csrf(跨站请求伪造):支付扣款

伪造用户的请求,冒充用户在站内进行操作。

方法一:使用referer来判定来源页面

方法二:关键操作只接受post请求,因为get请求的参数携带在url中,很容易模拟。

方法三:在http请求中加上token,并在服务器端验证这个token。

方法四:登录、支付的页面加上一些用户互动,比如验证码,确保当前请求是用户发起的。

两者的区别:

1、xss不需要登录;csrf需要用户先登录获取到cookie;

2、xss是在网站A注入js代码,然后执行js代码,达到篡改网站A的内容;

csrf利用网站A的漏洞,去请求网站A的api。

 

Cookie和Token都存需要放在Header里面,为什么只劫持前者?

1、http是无状态的,为了使域名下的所有网页能共享某些数据,因此出现了session、cookie以及token。

2、cookie是用于记录用户状态的一种方式,装有sessionId,由服务端设置,存储在客户端在每个请求中会自动携带。

3、token是无状态的,用户信息都被加密到token中,服务器收到token后解密就可以知道是哪个用户,token不会在请求中自动携带,而需要手动添加。

cookie:用户点击了链接,cookie未失效情况下,后端以为是用户的正常操作,于是进行扣款等操作。

token:用户点击链接,由于浏览器不会自动带上token,即使发了请求,但是后端token验证不通过。

posted @ 2020-04-12 21:27  2350305682  阅读(1674)  评论(0编辑  收藏  举报