> PHP 프레임워크 > ThinkPHP > XSS 공격을 방지하는 ThinkPHP의 방법

XSS 공격을 방지하는 ThinkPHP의 방법

angryTom
풀어 주다: 2020-03-10 12:45:36
앞으로
6215명이 탐색했습니다.

XSS 공격을 예방하기 위한 TP 설정 방법을 소개하는 글입니다. ThinkPHP를 배우고 있는 친구들에게 도움이 되었으면 좋겠습니다!

XSS 공격을 방지하는 ThinkPHP의 방법

XSS 공격을 방지하는 ThinkPHP의 방법

1 프로젝트에 서식 있는 텍스트 편집기가 없으면 전역 필터링 방법을 사용하여 애플리케이션 아래의 구성 구성 파일에 htmlspecialchars를 추가할 수 있습니다

// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars',
로그인 후 복사

XSS 공격을 방지하는 ThinkPHP의 방법

리치 텍스트 편집기가 있는 경우 이러한 종류의 XSS 방지 공격을 사용하는 것은 적합하지 않습니다

(권장 튜토리얼: thinkphp 튜토리얼)

그런 다음 작곡가를 사용하여 플러그인을 설치하여

명령

composer require ezyang/htmlpurifier
로그인 후 복사

XSS 공격을 방지하는 ThinkPHP의 방법

설치 성공 후 애플리케이션 아래 common.php에서 공용 함수가 있는 위치에 다음 코드를 추가합니다.

XSS 공격을 방지하는 ThinkPHP의 방법

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);
}
로그인 후 복사

그런 다음 애플리케이션 디렉터리의 config.php 구성 파일에

이 필터링 메소드를 해당 메소드 이름으로 변경

XSS 공격을 방지하는 ThinkPHP의 방법

프레임워크와 결합 위 코드를 직접 사용할 수도 있고

특정 필드에 대해 xss 검증을 수행할 수도 있습니다

1 명령 파일을 수정하여 다음과 같이 변경합니다. 'default_filter' => 'htmlspecialchars',

2 그런 다음 변경하려는 필드를

XSS 공격을 방지하는 ThinkPHP의 방법

으로 수정합니다. 관련 권장 사항:

PHP 비디오 튜토리얼, 학습 주소: https://www.php.cn /course/list/29/type/ 2.html

위 내용은 XSS 공격을 방지하는 ThinkPHP의 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:zhihu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿