Heim  >  Artikel  >  PHP-Framework  >  Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

angryTom
angryTomnach vorne
2020-03-10 12:45:366126Durchsuche

Dieser Artikel stellt vor, wie man TP einrichtet, um XSS-Angriffe zu verhindern. Ich hoffe, dass er Freunden, die ThinkPHP lernen, hilfreich sein wird.

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

ThinkPHPs Methode zur Verhinderung von XSS-Angriffen

1 Wenn Ihr Projekt keinen Rich-Text-Editor hat, können Sie dies tun Verwenden Sie die globale Filtermethode, indem Sie htmlspecialchars

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

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

zur Konfigurationsdatei unter der Anwendung hinzufügen. Wenn Sie über einen Rich-Text-Editor verfügen, ist die Verwendung dieser Art nicht geeignet des Anti-XSS-Angriffs

(Empfohlenes Tutorial: thinkphp-Tutorial)

Dann verwenden Sie Composer, um das Plug-in zu installieren, um den

Befehl

composer require ezyang/htmlpurifier

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

Fügen Sie nach erfolgreicher Installation den folgenden Code in common.php unter der Anwendung hinzu, in der die öffentlichen Funktionen platziert sind


Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

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);
}

und fügen Sie dann die Konfigurationsdatei config.php im Anwendungsverzeichnis hinzu

Ändern Sie diese Filtermethode in diesen Methodennamen

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

Sie können verwenden Dies geschieht durch die Kombination der Verwendung des Frameworks und der Verwendung von Plug-Ins. Der obige Code kann direkt verwendet werden

Sie können auch eine XSS-Überprüfung für ein bestimmtes Feld durchführen

1 Ändern Sie die Befehlsdatei und ändern Sie es in „default_filter“ => „htmlspecialchars“,

2 Dann, wenn Sie möchten, werden die geänderten Felder in

Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen

Related geändert Empfehlungen:


PHP-Video-Tutorial, Lernadresse:

https:// www.php.cn/course/list/29/type/2.html

Das obige ist der detaillierte Inhalt vonDie Methode von ThinkPHP zur Verhinderung von XSS-Angriffen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zhihu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen