zoukankan      html  css  js  c++  java
  • 网站攻击的方式有哪几种

    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验证不通过。

  • 相关阅读:
    几个常用排序的代码实现堆排序|快排|归并排序 Marathon
    0647回文子串 Marathon
    任意输入一个日期输出是当年的第几天星期几
    从输入URL到浏览器显示页面发生了什么
    常用链接整理
    computed 与 method
    将博客搬至CSDN
    leetcode_Two Sum
    VC++6.0与Office2010冲突解决方案
    C&C++_malloc函数
  • 原文地址:https://www.cnblogs.com/annie211/p/12687785.html
Copyright © 2011-2022 走看看