首頁  >  文章  >  php框架  >  ThinkPHP防止XSS攻擊的方法

ThinkPHP防止XSS攻擊的方法

angryTom
angryTom轉載
2020-03-10 12:45:366138瀏覽

本篇文章介紹了設定TP防止XSS攻擊的方法,希望對學習ThinkPHP的朋友有幫助!

ThinkPHP防止XSS攻擊的方法

ThinkPHP防止XSS攻擊的方法

1 如果您的專案沒有富文本編輯器然後就可以使用全域過濾方法在application下面的config設定檔加上htmlspecialchars

// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars',

ThinkPHP防止XSS攻擊的方法

如果有富文本編輯器的話就不適合使用這種防XSS攻擊

#(推薦教學:thinkphp教學

那麼使用composer 安裝外掛程式來處理

指令

composer require ezyang/htmlpurifier

ThinkPHP防止XSS攻擊的方法

安裝成功以後在application 下面的common.php 放公共函數的地方加入如下程式碼

ThinkPHP防止XSS攻擊的方法

if (!function_exists('remove_xss')) {
    //使用htmlpurifier防范xss攻击
    function remove_xss($string){
    //composer安装的,不需要此步骤。相对index.php入口文件,引入HTMLPurifier.auto.php核心文件
    // require_once './plugins/htmlpurifier/HTMLPurifier.auto.php';
    // 生成配置对象
    $cfg = HTMLPurifier_Config::createDefault();
    // 以下就是配置:
    $cfg -> set('Core.Encoding', 'UTF-8');
    // 设置允许使用的HTML标签
    $cfg -> set('HTML.Allowed','div,b,strong,i,em,a[href|title],ul,ol,li,br,p[style],span[style],img[width|height|alt|src]');
    // 设置允许出现的CSS样式属性
    $cfg -> set('CSS.AllowedProperties', 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align');
    // 设置a标签上是否允许使用target="_blank"
    $cfg -> set('HTML.TargetBlank', TRUE);
    // 使用配置生成过滤用的对象
    $obj = new HTMLPurifier($cfg);
    // 过滤字符串
    return $obj -> purify($string);
}

然後在application目錄下的config.php 設定檔

把這個過濾方法改成那個方法名稱即可

ThinkPHP防止XSS攻擊的方法

結合框架的使用和插件的使用可以使用這個上面的程式碼可以直接使用的

也可以針對某個欄位進行xss驗證

1 修改command的檔案把改成這個'default_filter' => 'htmlspecialchars',

2 然後在你要更改的欄位上面修改成

ThinkPHP防止XSS攻擊的方法

相關推薦:

PHP影片教學課程,學習網址:https:// www.php.cn/course/list/29/type/2.html

以上是ThinkPHP防止XSS攻擊的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:zhihu.com。如有侵權,請聯絡admin@php.cn刪除