XSS和跨域请求

XSS和跨域请求

  • 跨站脚本攻击,利用网站漏洞从用户那里恶意盗取信息。
    原理
    1、前端未对输入进行过滤
    2、后台未对接受到的参数过滤
    3、输出过滤

利用条件

  • 网站页面可传入参数,并嵌入其中
  • 该参数用户可控
  • 参数过滤不严格

利用方式

  • 获取用户cookie
  • 记录用户的键盘输入
  • 获取用户浏览器信息
  • 网站挂马,篡改网页内容
  • XSS蠕虫

跨域请求
一个站点中的资源去访问另外一个不同域名站点上的资源。

  • cookie是指:能够让网站服务器把少量文本数据存储到客户端的一种技术。因为http协议是无状态的,web服务器无法区分请求的来源。所以web服务器需要额外的数据用于维护会话。Cookie随http请求、响应一起被传递。服务端通过set-Cookie向客户端发送需要被设置的cookie ,客户端通过Cookie头向服务器传递Cookie。他的主要作用是标识用户、维持会话。

  • session是指:当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为SessionID),如果已包含则说明以前已经为此客户端创建过session,服务器就按照SessionID把这个session检索出来使用;如果客户端请求不包含SessionID,则为此客户端创建一个session并且生成一个与此session相关联的SessionID,这个SessionID将会在本次响应中返回给客户端保存。

  • cookie与session的共性:标识用户、维持会话

  • cookie与session的区别
    (1)cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去,session是放在服务器上的,过期与否取决于服务期的设定。
    (2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
    (3)cookie在客户端的限制是3K
    (4)session保存在服务端会占用性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE

  • 同源策略
    同源策略限制了不同源之间如何进行资源交互,是用于隔离潜在恶意文件的重要安全机制。 是否同源由URL决定,URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。此策略可防止某个网页上的恶意脚本通过该页面的文档对象模型(DOM)访问另一网页上的敏感数据。
    (1)file同源:域名或IP地址、子域名、端口、协议
    (2)cookie同源:不管使用哪个协议(HTTP/HTTPS)或端口号,浏览器都允许给定的域以及其任何子域名访问cookie。设置 cookie时,可以使用 domain / path / secure 和 http-only 标记来限定其访问性。
    (3)可跨域的标签:<script> 、<link> 、<img> / <video> / <audio>
    (4)其他跨域方法:JSONP、CORS、window.name、window.postMessage

XSS类型

  • 反射型
    主要用于将恶意脚本附加到请求参数中,只在用户单击url时触发,而且只执行一次,非持久化。常用来窃取客户端cookie或进行钓鱼欺骗,通过引诱用户点击一个恶意连接来实施攻击
  • DOM型
    是一种特殊的反射性XSS,它是基于DOM文档对象模型的一种漏洞,都是非持久型XSS漏洞。不会传递给服务器,所以返回包看不到。俗称的不需要连网。
  • 存储型
    恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性。比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全。一般出现在网站的留言、评论、日志等交互处。

XSS绕过

  • 闭合标签绕过
    1、 <!-- --!> <!-- -->注释闭合
    2、<textarea>、<title>等RCDATA标签内无法xss需要先使用闭合
    3、value等元素属性闭合

  • 绕过小括号、双引号、单引号
    1、利用反引号‘:<script>alert1'</script>
    2、编码绕过:利用实体编码、unicode编码绕过

  • 混淆绕过
    换行、缺失>闭合的标签、空格、TAB

  • 关键字绕过
    大小写绕过、编码绕过、字符拼接

  • 空格绕过
    利用 / 代替空格、编码绕过(利用实体编码、unicode编码绕过)

  • 利用eval方法绕过

  • 利用控点在标签内部的绕过

XSS防御

  • 对输入和URL参数进行过滤:限制输入数据长度、对输入数据格式进行验证、过滤或删除危险字符

  • 对输出进行编码:php使用htmlspeicalchars()函数,输出实体编码

  • 设置HttpOnly 防止cookie被js盗取:session.cookie_httponly=1

  • 设置CSP:CSP:Content Security Policy(内容安全策略),其旨在减少跨站脚本攻击。由开发者定义一些安全性的策略声明,来指定可信的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值