zoukankan      html  css  js  c++  java
  • 使用HTMLPurifier防止跨站攻击(XSS)

    在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是用户提交数据(例如发 表评论,发表日志)时往Web页面里插入恶意javascript代码例如死循环,疯狂的alert,这还不算还可能会修改页面页面上的html元素(例 如登录表单的action),这样当用户浏览该页之时,嵌入其中Web里面的代码会被执行,从而达到用户的特殊目的。

        在使用PHP开发时,可以使用htmlspecialchars将用户提交过来的数据转换使之原样显示,但是这样一来会造成一些弊端,比如用户上传的图片 无法显示,html标签不会起作用,没有任何样式。解决方案就是可以使用UBB标签或者自定义标签来实现,要么就是自己写正则去过滤,但是防不胜防,并且 这样在处理起来有些繁琐。下载重点介绍一个开源的HTMLPurifier,这是一个符合W3C标准的HTML过滤器,可以生成标准的HTML代码,并且 有很多的自定义配置,我更关注的是可以过滤掉javascript代码,有效的防止XSS!

        闲话少说,放出简单代码示例和下载包:

    1. <?php
    2. //引入htmlPurifier去除XSS跨站攻击代码 生成安全的html代码        
    3. require_once('./htmlpurifier/library/HTMLPurifier.includes.php');
    4. $config HTMLPurifier_Config::createDefault();   //创建默认配置
    5. $purifier = new HTMLPurifier($config);   //实例化 并传入默认配置 ($config为空也可)
    6. $safedata $purifier->purify($_POST['content']); //开始过滤 返回过滤后的字符串
    7. echo '<pre>';
    8. print_r($safedata);
    9. ?>

      htmlpurifier解决XSS

  • 相关阅读:
    BZOJ1854: [Scoi2010]游戏
    NOIP2017 【游记】
    NOIP2017 考前汇总
    最长上升子序列nlogn算法
    BZOJ3110 K大数查询 【线段树 + 整体二分 或 树套树(非正解)】
    BZOJ1089 [SCOI2003]严格n元树 【dp + 高精】
    BZOJ1072 排列perm 【状压dp】
    NOIP2003 传染病控制 【搜索 + 卡时】
    BZOJ 1070 修车 【费用流】
    [SCOI2005]最大子矩阵
  • 原文地址:https://www.cnblogs.com/zx98/p/5824511.html
Copyright © 2011-2022 走看看