허니팟 클래스
허니팟 클래스는 app/Config/Filters.php 파일에서 활성화된 경우, 봇(Bot)이 CodeIgniter4 애플리케이션에 요청을 보낼 때를 감지할 수 있게 해줍니다. 이는 모든 폼에 폼 필드를 추가하는 방식으로 동작하며, 이 폼 필드는 사람에게는 숨겨져 있지만 봇에게는 접근 가능합니다. 해당 필드에 데이터가 입력되면 요청이 봇으로부터 왔다고 간주하며, HoneypotException을 발생시킬 수 있습니다.
허니팟 활성화
허니팟을 활성화하려면 app/Config/Filters.php를 수정해야 합니다. $globals 배열에서 honeypot의 주석을 해제하면 됩니다:
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Filters extends BaseConfig
{
// ...
public $globals = [
'before' => [
'honeypot',
// 'csrf',
// 'invalidchars',
],
'after' => [
'toolbar',
'honeypot',
// 'secureheaders',
],
];
// ...
}
샘플 허니팟 필터가 system/Filters/Honeypot.php로 제공됩니다. 적합하지 않은 경우 app/Filters/Honeypot.php에 직접 만들고, app/Config/Filters.php의 $aliases를 적절히 수정하십시오.
허니팟 사용자 정의
허니팟은 사용자 정의가 가능합니다. 아래 필드는 app/Config/Honeypot.php 또는 .env에서 설정할 수 있습니다.
$hidden- 허니팟 필드의 가시성을 제어하는true또는false; 기본값은true$label- 허니팟 필드의 HTML 레이블, 기본값은'Fill This Field'$name- 템플릿에 사용되는 HTML 폼 필드의 이름; 기본값은'honeypot'$template- 허니팟에 사용되는 폼 필드 템플릿; 기본값은'<label>{label}</label><input type="text" name="{name}" value="">'$container- 템플릿을 감싸는 컨테이너 태그; 기본값은'<div style="display:none">{template}</div>'. CSP를 활성화하는 경우style="display:none"을 제거할 수 있습니다.$containerId- [v4.3.0 이후] 이 설정은 CSP를 활성화할 때만 사용됩니다. 컨테이너 태그의 id 속성을 변경할 수 있으며, 기본값은'hpc'입니다.