web前后端漏洞分析与防御(一)-XSS

所谓的安全,其实是指两个方面

  • 私密性:不被非法获取和利用(Get)
    • 代码层面
    • 架构层面
    • 运维层面
    • 问题
      • 用户身份被盗用
      • 用户密码泄露
      • 用户资料被盗取
      • 网站数据库泄露
      • 其他
  • 可靠性:不丢失不损坏不被篡改

跨站脚本攻击XSS(Cross Site Scripting)

跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS原理

  • 攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
  • 诱使受害者打开受到攻击的服务器URL。
  • 受害者在Web浏览器中打开URL,恶意脚本执行

XSS分类

  • 反射型(url参数直接注入)
    • URL转换(转网址)
  • 存储型(存储到DB后读取时注入)
    • 把恶意脚本存储到攻击目标的数据库中,等待猎物点击

XSS注入点

  • HTML节点内容

 

#{content}
注入点 
  • HTML属性(提前终止属性)

注入点 

web前后端漏洞分析与防御(一)-XSS_第1张图片


- Javascript代码(字符串提前关闭)

 

1
  • 富文本
    • 富文本具有HTML
    • HTML有XSS攻击的风险

XSS实例

 

http://localhost:8045/?from=%3Cscript%20src=%22https://cdn.bootcss.com/jquery/3.2.1/jquery.js%22%3Ealert(1)%3C/script%3E;hanxiao

web前后端漏洞分析与防御(一)-XSS_第2张图片

XSS防御(浏览器,只针对反射性)

 

chrome浏览器自带防御,反射性XSS(HTML内容和属性),就两种
ctx.set('X-XSS-Protection',1);
参数出现在HTML内容或属性

js和富文本的无法拦截

web前后端漏洞分析与防御(一)-XSS_第3张图片

 

HTML内容的防御

  • 用户发表,进入数据库之前转义
  • 显示时进行转义
转义< < > >

web前后端漏洞分析与防御(一)-XSS_第4张图片

 

HTML属性的防御

 

空格,单引号,双引号
一般空格不转义,但是这样我们就需要想到使用单引号或者双引号

 

 

JavaScript的防御

/ "  转义
小心注释符//和引号提前截断

web前后端漏洞分析与防御(一)-XSS_第5张图片

 

富文本防御

 

js可以藏在标签里,超链接url里,何种属性里
  • 过滤
    • 黑名单(正则过滤,简单,全面困难)
      • 去掉

你可能感兴趣的:(【web前后端漏洞分析与防御】)