如何全面防范网站的XSS攻击

图片
0 507
lvphp 2017-10-23发布
签名:LVEVEN创始人

如何防范网站的XSS攻击,如果使用htmlspecialchars()函数防范html和css代码可以防范成功!但是对JS代码攻击不起作用。该如何全面防范那?

请看下面小编的图文演示操作;

工具/原料

电脑,浏览器,XSS,代码编辑器,TP框架,PHP

一、防范XSS攻击前首先要了解什么是XSS:

  1. 1

    1. 什么是XSS攻击?

    网站form表单收集数据的时候,有的用户非法/恶意的把”html/css/js”代码内容给植入到form表单域中,进而给存储到数据库里边了,这种植入静态代码到表单的行为就是XSS攻击。

     

    一个网站如果有10个form表单,为了用户体验比较好,只给其中两个比较重要的form表单设置“表单验证”功能,其他8个form表单,任由用户随意的填写喜欢的信息。

    那么这8个form表单就给用户机会形成xss攻击。

     

    如何全面防范网站的XSS攻击

  2. 2

    2.给XSS攻击形成的条件。

    如何全面防范网站的XSS攻击



  3. 3

    3.植入JS代码,形成XSS攻击。

    如何全面防范网站的XSS攻击



  4. 4

    4.页面每次请求展示,都有一个弹出框,XSS攻击效果体现出来了。

    如何全面防范网站的XSS攻击




  5. 5

    5.形成XSS攻击,通过CSS样式内容进行攻击。

    如何全面防范网站的XSS攻击





  6. 6

    6.XSS攻击效果。

    如何全面防范网站的XSS攻击
    END






二、使用htmlspecialchars()函数防范效果:

  1. 1

    1. 普通表单域

    如何全面防范网站的XSS攻击


  2. 2

    2.

    通过上图,xss攻击的原理:

    直接把原生的html代码给存储到数据库里边去了

    这个原生html代码 在浏览器里边是要被解析运行的,一运行 xss攻击效果就有体现

     

    防范之一:

    可以把原生的html代码给变为符号实体存储

    在php中有htmlspecialchars()函数可以把”<”  ”>”符号变为符号实体 

    如何全面防范网站的XSS攻击


  3. 3

    3.

    在tp框架中做xss攻击可以通过create方法实现数据收集,就自动防止xss攻击了

    create()------>I()------->htmlspecialchars()

    如何全面防范网站的XSS攻击



  4. 4

    4.进行测试添加商品,用XSS攻击网站。

    如何全面防范网站的XSS攻击




  5. 5

    5.添加商品后,回到商品页面看都XSS攻击失效了。说明htmlspecialchars()函数防范成功。

    如何全面防范网站的XSS攻击


  6. 6

    6.是因为HTML代码变成符号实体存储到了数据库。

    如何全面防范网站的XSS攻击
    END


三、使用JS代码攻击htmlspecialchars()函数:

  1. 1

    1.试图XSS攻击。但是攻击失败。

    如何全面防范网站的XSS攻击



  2. 2

    2.XSS攻击的失败原因分析。

    如何全面防范网站的XSS攻击



  3. 3

    3.通过JS“源代码”再次发起攻击:

    如何全面防范网站的XSS攻击




  4. 4

    4.把标签再给点击回来。

    如何全面防范网站的XSS攻击






  5. 5

    5.标签没有被"符号实体"转化,XSS攻击成功。这说明:htmlspecialchars()函数

    防范失败!

    如何全面防范网站的XSS攻击
    END







四、使用htmlpurifier插件全面防范xss攻击:

  1. 1

    1.首先去下载htmlpurifier插件。

    如何全面防范网站的XSS攻击



  2. 2

    2.把下载好的htmlpurifier插件进行解压。解压到Library目录并改名字。注意:是TP框架中的Library目录。

    如何全面防范网站的XSS攻击


  3. 3

    3.引入htmlpurifier到项目中。

    如何全面防范网站的XSS攻击






  4. 4

    4.进行代码编写,代码引入。

    1).把htmlpurifier的实体功能,通过函数给体现出来。

    2).对收集到的编辑器内容进行过滤处理,防止XSS代码攻击。

    如何全面防范网站的XSS攻击
    如何全面防范网站的XSS攻击







  5. 5

    5.再次发起xss攻击,看看htmlpurifier插件的防范效果。通过下图测试说明防范XSS攻击成功。说明htmlpurifier插件防范是有效的。

    原因分析:数据库没有出现script标签,说明“htmlpurifier”起作用了其把script标签直接删除了。

    如何全面防范网站的XSS攻击
    如何全面防范网站的XSS攻击
    END







五、总结:

  1. 1. 富文本编辑器使用

    a) 引入3个js文件

    b) 制作textarea标签

    c) 执行一段编辑器对应的js代码

    编辑器核心代码:javascript+php

    编辑器功能按钮做增减设置

    2. 防止xss攻击

    create() / I() / htmlspecialchars()

    ① 普通表单域   create()

    ② 富文本编辑器  htmlpurifier

    3.通过引入htmlpurifier插件起到了全面防范XSS攻击效果。

    做网站的朋友可以引入htmlpurifier插件试试。希望能帮助到大家。

    END


打赏我,让我更有动力~

收藏   0 | Support  0 | Against  0
Login | Register Can Publish Content

精美音乐推荐

最近热帖
window + php 安装redis扩展 0
返回顶部