html5 防止脚本攻击,php防止xss攻击,过滤不正常的所有字段脚本

先安装扩展composer require lincanbin/white-html-filter

自己新建一个类<?php

namespace xss;

use lincanbin\WhiteHTMLFilter;

class xss

{

public function parse($uedata)

{

$filter = new WhiteHTMLFilter();

$filter->config->removeAllAllowTag();

$filter->config->modifyTagWhiteList(array(

'a' => array('target', 'href', 'title', 'class', 'style'),

'abbr' => array('title', 'class', 'style'),

'address' => array('class', 'style'),

'area' => array('shape', 'coords', 'href', 'alt'),

'article' => array(),

'aside' => array(),

'audio' => array('autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'),

'b' => array('class', 'style'),

'bdi' => array('dir'),

'bdo' => array('dir'),

'big' => array(),

'blockquote' => array('cite', 'class', 'style'),

'br' => array(),

'caption' => array('class', 'style'),

'center' => array(),

'cite' => array(),

'code' => array('class', 'style'),

'col' => array('align', 'valign', 'span', 'width', 'class', 'style'),

'colgroup' => array('align', 'valign', 'span', 'width', 'class', 'style'),

'dd' => array('class', 'style'),

'del' => array('datetime'),

'details' => array('open'),

'div' => array('class', 'style'),

'dl' => array('class', 'style'),

'dt' => array('class', 'style'),

'em' => array('class', 'style'),

'font' => array('color', 'size', 'face'),

'footer' => array(),

'h1' => array('class', 'style'),

'h2' => array('class', 'style'),

'h3' => array('class', 'style'),

'h4' => array('class', 'style'),

'h5' => array('class', 'style'),

'h6' => array('class', 'style'),

'header' => array(),

'hr' => array(),

'i' => array('class', 'style'),

'img' => array('src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex', 'style'),

'ins' => array('datetime'),

'li' => array('class', 'style'),

'mark' => array(),

'nav' => array(),

'ol' => array('class', 'style'),

'p' => array('class', 'style'),

'pre' => array('class', 'style'),

's' => array(),

'section' => array(),

'small' => array(),

'span' => array('class', 'style'),

'sub' => array('class', 'style'),

'sup' => array('class', 'style'),

'strong' => array('class', 'style'),

'table' => array('width', 'border', 'align', 'valign', 'class', 'style'),

'tbody' => array('align', 'valign', 'class', 'style'),

'td' => array('width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'),

'tfoot' => array('align', 'valign', 'class', 'style'),

'th' => array('width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'),

'thead' => array('align', 'valign', 'class', 'style'),

'tr' => array('rowspan', 'align', 'valign', 'class', 'style'),

'tt' => array(),

'u' => array(),

'text' => array(),

'ul' => array('class', 'style'),

'video' => array('autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style')

));

$filter->loadHTML($uedata);

$filter->clean();

return $filter->outputHtml();

}

}

测试:

我将一个富文本编辑器的看云文档的html全部复制到了一个test控制中,我们来看看过滤和不过滤的效果!

首先是不过滤的:

控制器中是原样输出的.

1a3402a480309e7bc1facb3f92b44430.png

33d8fe44dd226bcea16dd772b4ded5aa.png

现在上已经过滤的

f360a7717770f9d7822e21dfde9f94cd.png

fb72656f0c359bb260e99163164952e7.png

可以看见把CSS文件 script脚本都过滤了,

00ae27bb877755b4c460211da97ae74f.png

这类的都被过滤了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值