Heim > Artikel > PHP-Framework > Die Methode von ThinkPHP zur Verhinderung von XSS-Angriffen
Dieser Artikel stellt vor, wie man TP einrichtet, um XSS-Angriffe zu verhindern. Ich hoffe, dass er Freunden, die ThinkPHP lernen, hilfreich sein wird.
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',
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/htmlpurifierFügen Sie nach erfolgreicher Installation den folgenden Code in common.php unter der Anwendung hinzu, in der die öffentlichen Funktionen platziert sind
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 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 werdenSie können auch eine XSS-Überprüfung für ein bestimmtes Feld durchführen1 Ändern Sie die Befehlsdatei und ändern Sie es in „default_filter“ => „htmlspecialchars“,2 Dann, wenn Sie möchten, werden die geänderten Felder in
Related geändert Empfehlungen:PHP-Video-Tutorial, Lernadresse:
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!