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()函数的处理要更彻底
                    
                
                
            
        
浙公网安备 33010602011771号