laravel:防止xss攻击

一,什么是xss?

XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,
使用户加载并执行攻击者恶意制造的网页程序。
这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java,VBScript,ActiveX,Flash 或者甚至是普通的 HTML。
攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。

二,代码:

1, 安装第三方库

地址:

github.com/ezyang/htmlpurifier

安装:

liuhongdi@lhdpc:/web/api$ composer require ezyang/htmlpurifier

2,实际调用:

public function testvalid(Request $request) {


        $params = $this->validate($request, [
            'content' => 'required|string',
        ]);
         //原始输入内容
         $content = $params['content'];
         var_dump($content);
         
         //strip_tags输出
         var_dump(strip_tags($content));
         
         //HTMLPurifier输出
        $config = \HTMLPurifier_Config::createDefault();
        $config->set('HTML.Allowed', '');
        $purifier = new \HTMLPurifier($config);

        $value = $purifier->purify($content);

        var_dump($value);
 }

 

三,运行效果:

string(59) "<script>
    alert('hello,js');
</script>这是一段测试文字"
string(42) "alert('hello,js');这是一段测试文字"
string(24) "这是一段测试文字"

可以看到: 第三行htmlpurifier对文字的处理比第二行strip_tags()函数的处理要更彻底

posted @ 2024-08-12 16:28  刘宏缔的架构森林  阅读(55)  评论(0编辑  收藏  举报