9Cells

Laravel에서 HTMLPurifier 사용하기

XSS 공격을 막기위해 사용자 입력을 정리해야 하는 경우가 있습니다. PHP 패키지 ezyang/htmlpurifier를 사용하여 이 작업을 할 수 있습니다.

Laravel에서 다음과 같은 코드로 purify 할 수 있습니다.

$dir = "HTMLPurifier";
$cachePath = storage_path("app/$dir");
if (!File::exists($cachePath)) {
    Storage::makeDirectory($dir);
}
$config = \HTMLPurifier_Config::createDefault();
$config->set('Cache.SerializerPath', $cachePath);
$purifier = new \HTMLPurifier($config);
$content = $purifier->purify($content);

HTMLPurifier 는 캐시 디렉토리 작성 권한을 요구하기 때문에 라라벨의 storage 디렉토리에 HTMLPurifier 디렉토리를 만들어 캐시 디렉토리로 사용합니다.

WYSIWYG 에디터 Quill에서 이미지 업로드 구현에서도 이 코드를 사용하는 것을 볼 수 있습니다.