美文网首页
xss的防御

xss的防御

作者: 8c69eb57ee3a | 来源:发表于2017-09-05 01:04 被阅读0次
XSS产生的原因

xss是怎么产生的呢?是由于网站(包括前端部分和后端部分)没有对用户提交的数据过滤或者过滤不严导致服务器生成的HTML文件被破坏掉了原有的结构。

本来是要生成下面的HTML文档的

<body>
我在学习XSS
</body>

结果生成了

<body>
我在学习XSS</body><script src='bad.js'></script>
</body>

这和原本的HTML是完全不同的结构。

xss的防御

知道了问题产生的原因,自然防御的方法就有了。问题出在“没有对用户提交的数据过滤”上面,那么防御的方法自然就是过滤数据了,这是其一,其二我觉得浏览器本身可以在获取到HTML文件之后可以主动分析潜在的可能包含XSS的HTML。

1.在客户端js中过滤

我写了一个简单的小案例。

<!doctype html>
<html>
<head>
  <script>
  function checkText()
  {

    var a=document.getElementById('inputName');
    var b=a.value;
    if(b.indexOf("<")>=0)
    {
      alert('xss!');
      a.value='';//清空输入框,重新输入
      return false;//不提交数据
    }
    alert('good');
    return true;//提交数据
  }

  </script>
</head>
<body>

<form method='get' >
<input type='text' id='inputName' name='name' value=''></input>
<input type='submit' onClick='return checkText();'></input>
<!--不能写成onClick='checkText();' 否则会永远提交数据 为什么?-->
</form>

</body>

</html>
2.在服务器端过滤

由于我不会php,就不写代码了,但是思路是和客户端过滤一样的。

3.浏览器本身的功能

这个功能我不知道现在的浏览器有没有,也不知道是不是我第一个想出来的,哈哈。暂时就把这个功能叫主动防御吧。具体思路就是浏览器把每个收到的html文件都分析一遍,查看有没有可能包含潜在的xss,具体策略可以是如下:
1.统计一个标签占用的字符数,如果某个标签占用的字符数异常了就给出提醒。
比如

<input type='text' id='inputName' name='name' value=''></input>

它可能平均占用的是64个字符,如果被xss了,那么就会导致input标签被截断,这就导致它占用的字符少于64个了。
2.统计一个HTML加载的js文件以及分析js文件和html文件的相关性,也可以从js的功能方面防御。
比如平常一个网站加载10个js文件,某天突然就加载了11个。
比如正常的js应该都是处理html的数据的,某天某个js用来获取cooke了。

现在不是机器学习和大数据很火嘛,个人觉得是可以让浏览器训练一下,给它十万个xss页面,让它自我学习一下,以后就可以直接提醒用户你访问的页面可能包含xss。

相关文章

  • 安全包开发整体架构

    SSRF防御 SSRF安全漏洞以及防御实现 XSS防御 xss漏洞以及防御实现 CSRF防御 CSRF安全漏洞以及...

  • 21.浅谈前端WEB安全性(二)

    (二)浅谈前端WEB安全性5.XSS防御6.XSS分类及挖掘方法 5.XSS防御 一.概述 攻击者可以利用XSS漏...

  • xss防御

    XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Sty...

  • xss防御

    四两拨千斤:HttpOnIy严格地说,HttpOnly并非为了对抗XSS——HttpOnly解决的是XSS后的Co...

  • WEB 安全测试之 XSS 攻击

    目录结构 1、 背景知识 2、 XSS 漏洞的分类 3、 XSS 防御 4、 如何测试 XSS 漏洞 5、 HTM...

  • 【XSS】XSS防御说

    0x01 HTTP响应的X-头部 1. x-frame-options x-frame-options的值有两个:...

  • xss的防御

    XSS产生的原因 xss是怎么产生的呢?是由于网站(包括前端部分和后端部分)没有对用户提交的数据过滤或者过滤不严导...

  • 每一个工程师都要学的安全测试,老板再也不用担心服务器被黑

    本文由云+社区发表 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础、XSS基础、编码基础、XSS Paylo...

  • XSS防御——从Flask源码看XSS防御

    这两天遇到一个项目,老板问我各种安全问题的防护措施,结果我两眼一黑,想想自己以前都是注重攻击而忽视防御,因此开一个...

  • 理解XSS攻击的原理及防范措施

    web安全-xss的原理及防御 理解XSS的攻击原理和手段 反射型:发出请求时,XSS代码出现在URL中,作为输入...

网友评论

      本文标题:xss的防御

      本文链接:https://www.haomeiwen.com/subject/lobyjxtx.html