Skip to content

Latest commit

 

History

History
1887 lines (1393 loc) · 122 KB

readme.ko.md

File metadata and controls

1887 lines (1393 loc) · 122 KB

phpMussel v3 섀명서 (한국얎).

목찚

Regarding translations: My native language is English. Because this is a free and open-source hobby project which generates zero income, and translatable content is likely to change as the features and functionality supported by the project changes, it doesn't make sense for me to spend money for translations. Because I'm the sole author/developer/maintainer for the project and I'm not a ployglot, any translations I produce are very likely to contain errors. Sorry, but realistically, that won't ever change. If you find any such errors/typos/mistakes/etc, your assistance to correct them would be very much appreciated. Pull requests are invited and encouraged. Otherwise, if you find these errors too much to handle, just stick with the original English source. If a translation is irredeemably incomprehensible, let me know which, and I can delete it. If you're not sure how to perform pull requests, ask. I can help.


1. 서묞

슀크늜튞가 hook된 곳에서 ClamAV 등의 서명을 Ʞ반윌로 시슀템에 업로드된 파음 낎의 튞로읎 목마, 바읎러슀, 멀웚얎 및 Ʞ타 위협 요소륌 탐지하Ʞ 위한 PHP 슀크늜튞읞 phpMussel을 읎용핎 죌셔서 감사합니닀.

PHPMUSSEL COPYRIGHT 2013 and beyond GNU/GPLv2 by Caleb M (Maikuolan).

읎 슀크늜튞는 자유 소프튞웚얎입니닀; 자유 소프튞웚얎 재닚읎 공표한 GNU 음반 공쀑 사용 허가서의 버전 2 또는 ê·ž 읎후 버전 (선택 사항)의 조걎에 따띌 읎륌 재배포하거나 수정할 수 있습니닀. 읎 슀크늜튞가 유용할 것읎띌는 희망에서 배포되었지만 ì–Žë– í•œ 볎슝도 하지 않습니닀; 상품성 또는 특정 목적에 대한 적합성에 대한 묵시적읞 볎슝조찚 하지 않습니닀. 자섞한 사항은 LICENSE.txt 파음 또는 닀음 링크에서 확읞할 수 있는 GNU 음반 공쀑 사용 허가서륌 찞조하시Ʞ 바랍니닀:

프로젝튞에 영감을 죌고 읎 슀크늜튞가 활용하는 서명을 제공하는 ClamAV에게 감사의 말씀을 드늜니닀. ê·ž 서명 없읎는 읎 슀크늜튞가 졎재하지 않았거나 극히 제한적읞 가치밖에 없었을 것입니닀.

프로젝튞 파음을 혞슀팅하는 GitHub곌 Bitbucket, phpMussel읎 활용하는 서명의 추가적읞 소슀: PhishTank, NLNetLabs, Malware.Expert 등, 읎 프로젝튞륌 지원핎 죌신 분듀, 제가 잊얎버늬고 얞꞉하지 못했을 닀륞 분듀곌 읎 슀크늜튞륌 사용하는 당신에게 감사의 말씀을 드늜니닀.


2. 섀치 방법

2.0 COMPOSER륌 읎용하여 섀치

phpMussel v3을 섀치하는 권장되는 방법은 Composer륌 통핎 섀치하는 것입니닀.

펞의륌 위핎 예전의 죌 저장소륌 통핎 가장 음반적윌로 필요한 phpMussel 의졎성을 섀치할 수 있습니닀:

composer require phpmussel/phpmussel

또는 구현 시 필요할 의졎성을 개별적윌로 선택할 수 있습니닀. 특정 의졎성만 원하고 몚든 것읎 ë‹€ 필요하지는 않을 가능성읎 높습니닀.

phpMussel을 읎용하여 묎엇읎든 하렀멎 phpMussel 윔얎 윔드베읎슀가 필요합니닀:

composer require phpmussel/core

phpMussel에 대한 프론튞엔드 ꎀ늬 Ʞ능을 제공합니닀:

composer require phpmussel/frontend

웹 사읎튞에 대핮 자동 파음 업로드 검사륌 제공합니닀:

composer require phpmussel/web

phpMussel을 대화형 CLI 몚드 애플늬쌀읎션윌로 활용할 수 있도록 핮 쀍니닀:

composer require phpmussel/cli

phpMussel곌 PHPMailer륌 연결하여 phpMussel읎 2닚계 읞슝, 찚닚된 파음 업로드에 대한 읎메음 알늌 등에 PHPMailer륌 활용할 수 있도록 핮 쀍니닀:

composer require phpmussel/phpmailer

phpMussel읎 묎엇읎든 감지하렀멎 서명을 섀치핎알 합니닀. 읎륌 위한 특정 팚킀지는 없습니닀. 서명을 섀치하렀멎 읎 묞서의 닀음 섹션을 찞조하섞요.

또는 Composer륌 사용하고 싶지 않닀멎 여Ʞ에서 사전 팚킀지된 ZIP을 닀욎로드할 수 있습니닀:

https://github.com/phpMussel/Examples

사전 팚킀지된 ZIP에는 앞서 얞꞉한 몚든 의졎성곌 몚든 표쀀 phpMussel 서명 파음곌 구현 시 phpMussel을 사용하는 방법에 대한 예제가 포핚되얎 있습니닀.

2.1 서명 섀치

phpMussel은 특정 위협을 감지하Ʞ 위핎 서명을 요구합니닀. 서명을 섀치하는 2가지 죌요 방법읎 있습니닀:

  1. "SigTool"을 읎용하여 서명 생성 및 수동 섀치.
  2. "phpMussel/Signatures"나 "phpMussel/Examples"에서 서명 닀욎로드 후 수동 섀치.
2.1.0 "SigTool"을 읎용하여 서명 생성 및 수동 섀치.

ì°žì¡°: SigTool 섀명서.

ì°žê³  사항: SigTool은 ClamAV의 서명만 처늬합니닀. phpMussel의 테슀튞 샘플을 탐지하는 데 필요한 서명읎 포핚된 phpMussel 전용 서명곌 같읎 닀륞 소슀에서 서명을 얻윌렀멎 여Ʞ에 얞꞉된 닀륞 방법윌로 볎완핎알 합니닀.

2.1.1 "phpMussel/Signatures"나 "phpMussel/Examples"에서 서명 닀욎로드 후 수동 섀치

뚌저 phpMussel/Signatures로 가섞요. 저장소에 닀양한 GZ 압축 서명 파음읎 포핚되얎 있습니닀. 필요한 파음을 닀욎로드하고 압축을 í‘Œ 닀음 섀치볞의 signatures 디렉토늬에 복사하섞요.

또는 phpMussel/Examples에서 최신 ZIP을 닀욎로드하섞요. 귞늬고 핎당 압축 파음에 듀얎 있는 서명을 섀치볞에 복사/붙여넣Ʞ할 수 있습니닀.


3. 사용 방법

3.0 PHPMUSSEL 구성

phpMussel을 섀치한 후 읎륌 구성하Ʞ 위핎 구성 파음읎 필요합니닀. phpMussel 구성 파음에 INI나 YML 파음 형식을 사용할 수 있습니닀. 예제 ZIP 쀑 하나륌 읎용하여 작업하는 겜우 읎믞 두 가지 예제 구성 파음읞 phpmussel.ini와 phpmussel.yml 파음읎 있습니닀; 원한닀멎 둘 쀑 하나륌 선택하여 작업할 수 있습니닀. 예제 ZIP 쀑 하나륌 읎용하여 작업하지 않는닀멎 새 파음을 만듀얎알 합니닀.

phpMussel의 Ʞ볞 구성에 만족하고 아묎것도 변겜하지 않윌렀멎 빈 파음을 구성 파음로 사용할 수 있습니닀. 구성 파음에서 구성되지 않은 것은 Ʞ볞값을 사용하므로 Ʞ볞값곌 닀륞 것을 사용하고 싶은 것만 명시적윌로 구성하멎 됩니닀 (슉, 빈 구성 파음은 phpMussel읎 몚든 Ʞ볞값을 사용하도록 합니닀).

phpMussel 프론튞엔드륌 사용하고 싶닀멎 프론튞엔드 구성 페읎지에서 몚든 것을 구성할 수 있습니닀. 당 v3부터는 프론튞엔드 로귞읞 정볎가 구성 파음에 저장되므로 프론튞엔드에 로귞읞하렀멎 최소한 로귞읞할 때 사용할 계정을 구성핎알 하며, 귞런 닀음 로귞읞한 후 프론튞엔드 구성 페읎지륌 읎용하여 닀륞 것듀을 구성할 수 있습니닀.

아래는 사용자 읎늄읎 "admin"읎고 비밀번혞가 "password"읞 새 계정을 프론튞엔드에 추가합니닀.

INI 파음의 겜우:

[user.admin]
password='$2y$10$FPF5Im9MELEvF5AYuuRMSO.QKoYVpsiu1YU9aDClgrU57XtLof/dK'
permissions='1'

YML 파음의 겜우:

user.admin:
 password: "$2y$10$FPF5Im9MELEvF5AYuuRMSO.QKoYVpsiu1YU9aDClgrU57XtLof/dK"
 permissions: 1

원하는 대로 구성 읎늄을 지정할 수 있윌며 (ì–Žë–€ 형식을 사용하는지 phpMussel읎 알 수 있도록 확장자륌 유지하는 한) 원하는 곳에 저장할 수 있습니닀. 로더륌 읞슀턎슀화할 때 겜로륌 제공하여 phpMussel읎 얎디서 구성 파음을 찟을지 알렀쀄 수 있습니닀. 겜로가 제공되지 않윌멎 phpMussel은 vendor 디렉토늬의 상위에서 구성 파음 찟Ʞ륌 시도합니닀.

Apache와 같은 음부 환겜에서는 구성 파음 앞에 점을 붙여 읎륌 숚Ʞ고 공개 액섞슀륌 막을 수도 있습니닀.

phpMussel에서 사용할 수 있는 닀양한 구성 지시묞에 대한 자섞한 낎용은 읎 묞서의 구성 섹션을 찞조하섞요.

3.1 PHPMUSSEL 윔얎

phpMussel을 얎떻게 사용하고 싶든 거의 몚든 구현에는 최소한 닀음곌 같은 낎용읎 포핚됩니닀:

<?php
$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);

큎래슀 읎늄읎 암시하듯읎 로더는 phpMussel을 사용하는 데 Ʞ볞적윌로 필요한 것듀을 쀀비하는 것을 닎당하고 슀캐너는 몚든 핵심 검사 Ʞ능을 닎당합니닀.

로더의 생성자는 맀개변수 5개륌 허용하며 몚두 선택 사항입니닀.

public function __construct(
    string $ConfigurationPath = '',
    string $CachePath = '',
    string $QuarantinePath = '',
    string $SignaturesPath = '',
    string $VendorPath = ''
)

1번짞 맀개변수는 구성 파음의 전첎 겜로입니닀. 생략하멎 phpMussel은 vendor 디렉토늬의 상위에서 phpmussel.ini나 phpmussel.yml읎띌는 읎늄의 구성 파음을 찟습니닀.

2번짞 맀개변수는 phpMussel읎 캐싱곌 임시 파음 저장에 사용하도록 허용하는 디렉토늬의 겜로입니닀. 생략하멎 phpMussel은 vendor 디렉토늬의 상위에 phpmussel-cache띌는 읎늄윌로 사용할 새 디렉토늬 만듀Ʞ륌 시도합니닀. 읎 겜로륌 직접 지정하고 싶닀멎 지정된 디렉토늬에 있는 닀륞 데읎터의 원치 않는 손싀을 방지하Ʞ 위핎 빈 디렉토늬륌 선택하는 것읎 가장 좋습니닀.

3번짞 맀개변수는 phpMussel읎 격늬에 사용하도록 허용하는 디렉토늬의 겜로입니닀. 생략하멎 phpMussel은 vendor 디렉토늬의 상위에 phpmussel-quarantine읎띌는 읎늄윌로 사용할 새 디렉토늬 만듀Ʞ륌 시도합니닀. 읎 겜로륌 직접 지정하고 싶닀멎 지정된 디렉토늬에 있는 닀륞 데읎터의 원치 않는 손싀을 방지하Ʞ 위핎 빈 디렉토늬륌 선택하는 것읎 가장 좋습니닀. 격늬에 사용되는 디렉토늬에 대한 공개 액섞슀륌 막는 것읎 좋습니닀.

4번짞 맀개변수는 phpMussel의 서명 파음읎 포핚된 디렉토늬의 겜로입니닀. 생략하멎 phpMussel은 vendor 디렉토늬의 상위에 있는 phpmussel-signatures띌는 읎늄의 디렉토늬에서 서명 파음 찟Ʞ륌 시도합니닀.

5번짞 맀개변수는 vendor 디렉토늬의 겜로입니닀. 절대로 닀륞 것을 가늬쌜서는 안 됩니닀. 생략하멎 phpMussel은 슀슀로 읎 디렉토늬 찟Ʞ륌 시도합니닀. 읎 맀개변수는 음반적읞 Composer 프로젝튞와 구조가 같지 않을 수도 있는 구현곌 쉜게 통합할 수 있도록 제공됩니닀.

슀캐너의 생성자는 맀개변수 1개만 허용하며 읎는 필수입니닀: 읞슀턎슀화된 로더 객첎. 읎는 ì°žì¡°ë¡œ 전달되므로 변수륌 읎용하여 읞슀턎슀화핎알 합니닀 (값윌로 전달하Ʞ 위핎 슀캐너 낎에서 직접 읞슀턎슀화하는 것은 phpMussel을 사용하는 올바륞 방법읎 아닙니닀).

public function __construct(\phpMussel\Core\Loader &$Loader)

3.2 자동 파음 업로드 검사

업로드 핞듀러륌 읞슀턎슀화하렀멎:

$Web = new \phpMussel\Web\Web($Loader, $Scanner);

파음 업로드륌 검사하렀멎:

$Web->scan();

선택적윌로, 원하는 겜우 phpMussel은 묞제가 있는 겜우 업로드의 읎늄 복구륌 시도할 수 있습니닀:

$Web->demojibakefier();

완전한 예륌 듀멎:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$Web = new \phpMussel\Web\Web($Loader, $Scanner);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Scans file uploads (execution terminates here if the scan finds anything).
$Web->scan();

// Fixes possible corrupted file upload names (Warning: modifies the content of $_FILES).
$Web->demojibakefier();

// Cleanup.
unset($Web, $Scanner, $Loader);

?><html>
    <form enctype="multipart/form-data" name="upload" action="" method="post">
      <div class="spanner">
        <input type="file" name="upload_test[]" value="" />
        <input type="submit" value="OK" />
      </div>
    </form>
</html>

phpMussel 테슀튞 전용윌로 제공되는 묎핎한 샘플읞 ascii_standard_testfile.txt 파음 업로드 시도:

슀크늰샷

3.3 CLI 몚드

CLI 핞듀러륌 읞슀턎슀화하렀멎:

$CLI = new \phpMussel\CLI\CLI($Loader, $Scanner);

완전한 예륌 듀멎:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$CLI = new \phpMussel\CLI\CLI($Loader, $Scanner);

unset($CLI, $Scanner, $Loader);

슀크늰샷:

슀크늰샷

3.4 프론튞엔드

프론튞엔드륌 읞슀턎슀화하렀멎:

$FrontEnd = new \phpMussel\FrontEnd\FrontEnd($Loader, $Scanner);

완전한 예륌 듀멎:

<?php
// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$FrontEnd = new \phpMussel\FrontEnd\FrontEnd($Loader, $Scanner);
$Web = new \phpMussel\Web\Web($Loader, $Scanner);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Scans file uploads (execution terminates here if the scan finds anything).
$Web->scan();

// Fixes possible corrupted file upload names (Warning: modifies the content of $_FILES).
$Web->demojibakefier();

// Load the front-end.
$FrontEnd->view();

// Cleanup.
unset($Web, $FrontEnd, $Scanner, $Loader);

슀크늰샷:

슀크늰샷

3.5 슀캐너 API

원하는 겜우 닀륞 프로귞랚읎나 슀크늜튞에서 phpMussel 슀캐너 API륌 구현할 수도 있습니닀.

완전한 예륌 듀멎:

// Path to vendor directory.
$Vendor = __DIR__ . DIRECTORY_SEPARATOR . 'vendor';

// Composer's autoloader.
require $Vendor . DIRECTORY_SEPARATOR . 'autoload.php';

// Location of the test files.
$Samples = sprintf($Vendor . '%1$sphpmussel%1$score%1$stests%1$s_support%1$ssamples', DIRECTORY_SEPARATOR);

$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);
$Loader->Events->addHandler('sendMail', new \phpMussel\PHPMailer\Linker($Loader));

// Execute the scan.
$Results = $Scanner->scan($Samples);

// Cleanup.
unset($Scanner, $Loader);

var_dump($Results);

핎당 예시에서 죌목핎알 할 쀑요한 부분은 scan() 메서드입니닀. scan() 메서드는 맀개변수 2개륌 허용합니닀:

public function scan(mixed $Files, int $Format = 0): mixed

1번짞 맀개변수는 묞자엎읎나 배엎음 수 있윌며 슀캐너에 묎엇을 검사핎알 하는지 알렀쀍니닀. 특정 파음읎나 디렉토늬륌 나타낮는 묞자엎읎나 여러 파음/디렉토늬륌 지정하는 읎러한 묞자엎의 배엎음 수 있습니닀.

묞자엎읞 겜우 데읎터륌 찟을 수 있는 위치륌 가늬쌜알 합니닀. 배엎읞 겜우 ë°°ì—Ž 킀는 검사할 항목의 원래 읎늄을 나타낎알 하고 값은 데읎터륌 찟을 수 있는 위치륌 가늬쌜알 합니닀.

2번짞 맀개변수는 정수읎며 슀캐너가 검사 결곌륌 반환하는 방법을 알렀쀍니닀.

검사 결곌륌 검사한 각 항목에 대한 정수의 ë°°ì—Žë¡œ 반환하렀멎 1을 지정하섞요.

읎러한 정수의 의믞는 닀음곌 같습니닀:

결곌 섀명
-5 닀륞 읎유로 검사륌 완료하지 못했음을 나타냄.
-4 암혞화로 읞핎 데읎터륌 검사할 수 없었음을 나타냄.
-3 phpMussel 서명 파음에 묞제가 있었음을 나타냄.
-2 검사 쀑 손상된 데읎터가 감지되얎 검사륌 완료하지 못했음을 나타냄.
-1 PHP가 검사륌 수행하Ʞ 위핎 요구하는 확장 Ʞ능읎나 애드옚읎 없얎서 검사륌 완료하지 못했음을 나타냄.
0 검사 대상읎 졎재하지 않아서 검사할 것읎 없었음을 나타냄.
1 대상읎 성공적윌로 검사되었고 묞제가 감지되지 않았음을 나타냄.
2 대상읎 성공적윌로 검사되었고 묞제가 감지되었음을 나타냄.

검사 결곌륌 부욞로 반환하렀멎 2륌 지정하섞요.

결곌 섀명
true 묞제가 감지됚 (검사 대상읎 악의적읎거나 위험핚).
false 묞제가 감지되지 않음 (검사 대상읎 정상음 수 있음).

검사 결곌륌 검사한 각 항목에 대한 사람읎 읜을 수 있는 텍슀튞의 ë°°ì—Žë¡œ 반환하렀멎 3을 지정하섞요.

출력 예시:

array(3) {
  ["dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt"]=>
  string(73) "Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!"
  ["c845b950f38399ae7fe4b3107cab5b46ac7c3e184dddfec97d4d164c00cb584a:491:coex_testfile.rtf"]=>
  string(53) "Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!"
  ["d45d5d9df433aefeacaece6162b835e6474d6fcb707d24971322ec429707c58f:185:encrypted.zip"]=>
  string(77) "Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!"
}

검사 결곌륌 사람읎 읜을 수 있는 텍슀튞의 묞자엎로 반환하렀멎 4륌 지정하섞요 (3곌 비슷하지만 합쳐젞 있습니닀).

출력 예시:

Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)! Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)! Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!

형식화된 텍슀튞 (슉, CLI륌 사용할 때 표시되는 검사 결곌)륌 반환하렀멎 닀륞 값을 지정하섞요.

출력 예시:

string(1826) "Fri, 17 Jul 2020 18:50:47 +0800 Started.
─→ Checking "ascii_standard_testfile.txt".
──→ Detected phpMussel-Testfile.ASCII.Standard (ascii_standard_testfile.txt)!
─→ Checking "coex_testfile.rtf".
──→ Detected phpMussel-Testfile.CoEx (coex_testfile.rtf)!
─→ Checking "encrypted.zip".
──→ Detected encrypted archive; Encrypted archives not permitted (encrypted.zip)!
─→ Checking "exe_standard_testfile.exe".
──→ Filetype blacklisted (exe_standard_testfile.exe)!
─→ Checking "general_standard_testfile.txt".
──→ Detected phpMussel-Testfile.General.Standard (general_standard_testfile.txt)!
─→ Checking "graphics_standard_testfile.gif".
──→ Detected phpMussel-Testfile.Graphics.Standard (graphics_standard_testfile.gif)!
─→ Checking "hash_testfile_md5.txt".
──→ Detected phpMussel-Testfile.HASH.MD5 (hash_testfile_md5.txt)!
─→ Checking "hash_testfile_sha1.txt".
──→ Detected phpMussel-Testfile.HASH.SHA1 (hash_testfile_sha1.txt)!
─→ Checking "hash_testfile_sha256.txt".
──→ Detected phpMussel-Testfile.HASH.SHA256 (hash_testfile_sha256.txt)!
─→ Checking "hello.txt".
──→ No problems found.
─→ Checking "html_standard_testfile.html".
──→ Detected phpMussel-Testfile.HTML.Standard (html_standard_testfile.html)!
─→ Checking "ole_testfile.ole".
────→ Detected phpMussel-Testfile.OLE.Standard (ole_testfile.bin)!
─→ Checking "pdf_standard_testfile.pdf".
──→ Detected phpMussel-Testfile.PDF.Standard (pdf_standard_testfile.pdf)!
─→ Checking "pe_sectional_testfile.exe".
──→ Filetype blacklisted (pe_sectional_testfile.exe)!
─→ Checking "swf_standard_testfile.swf".
──→ Detected phpMussel-Testfile.SWF.Standard (swf_standard_testfile.swf)!
Fri, 17 Jul 2020 18:50:50 +0800 Finished.
"

도볎시였: 파음을 검사할 때 파음에 대한 특정 섞부 정볎에 액섞슀하는 방법은 묎엇읞가요?

3.6 2닚계 읞슝

2닚계 읞슝 ("2FA")을 활성화핎서 프론튞엔드륌 더 안전하게 만듀 수 있습니닀. 2FA가 활성화된 계정윌로 로귞읞하멎 핎당 계정곌 연결된 읎메음 죌소로 읎메음읎 전송됩니닀. 읎 읎메음에는 사용자가 핎당 계정윌로 로귞읞하Ʞ 위핎 사용자 읎늄곌 비밀번혞에 추가로 입력핎알 하는 "2FA 윔드"가 포핚되얎 있습니닀. 읎는 섞션곌 연결된 2FA 윔드륌 받고 읎용하Ʞ 위핎서는 계정곌 연결된 읎메음 죌소에도 액섞슀할 수 있얎알 하므로 계정 비밀번혞륌 얻는 것만윌로는 핎컀나 잠재적 공격자가 핎당 계정윌로 로귞읞하Ʞ에 충분하지 않닀는 것을 의믞합니닀. 따띌서 프론튞엔드륌 더 안전하게 만듭니닀.

PHPMailer륌 섀치한 후 phpMussel 구성 페읎지나 구성 파음을 통핎 PHPMailer에 대한 구성 지시묞을 채워알 합니닀. 읎러한 구성 지시묞에 대한 더 많은 정볎는 읎 묞서의 구성 섹션에 포핚되얎 있습니닀. PHPMailer 구성 지시묞을 채욎 후 enable_two_factor륌 true로 섀정하섞요. 읎제 2닚계 읞슝읎 활성화되었을 것입니닀.

닀음윌로, phpMussel읎 핎당 계정윌로 로귞읞할 때 얎디로 2FA 윔드륌 볎낌지 알 수 있도록 읎메음 죌소륌 계정곌 ì—°ê²°í•Žì•Œ 합니닀. 읎렇게 하렀멎 읎메음 죌소륌 계정의 사용자 읎늄윌로 사용하거나 ([email protected]처럌) 음반적윌로 읎메음을 볎낌 때처럌 읎메음 죌소륌 사용자 읎늄에 포핚시킀섞요 (Foo Bar <[email protected]>처럌).


4. PHPMUSSEL 확장

phpMussel은 확장성을 엌두에 두고 섀계되었습니닀. phpMussel 조직의 저장소에 대한 pull 요청곌 음반적읞 Ʞ여는 얞제나 환영합니닀. 귞러나 특정 저장소에 Ʞ여하Ʞ에는 적합하지 않은 방법윌로 phpMussel을 수정하거나 확장핎알 한닀멎 귞렇게 하는 것도 가능합니닀 (예: 조직에서 Ʞ밀성읎나 개읞 정볎 볎혞가 필요하여 공개할 수 없거나 phpMussel을 요구하는 플러귞읞곌 새 Composer 팚킀지와 같읎 자첎 저장소에서 공개하는 것읎 좋을 수 있는 특정 구현 전용읞 수정읎나 확장의 겜우).

v3부터 몚든 phpMussel Ʞ능은 큎래슀로 졎재하며 읎는 겜우에 따띌서는 PHP에서 제공하는 객첎 상속 메컀니슘읎 phpMussel을 확장하는 쉜고 적절한 방법읎 될 수 있음을 의믞합니닀.

phpMussel은 확장성을 위한 자첎 메컀니슘도 제공합니닀. v3 읎전에 선혞되는 메컀니슘은 phpMussel의 통합 플러귞읞 시슀템읎었습니닀. v3부터 선혞되는 메컀니슘은 events orchestrator입니닀.

phpMussel을 확장하고 새 플러귞읞을 작성하Ʞ 위한 boilerplate 윔드는 boilerplates 저장소에 공개되얎 있습니닀. 현재 지원하는 몚든 읎벀튞 목록곌 boilerplate 윔드륌 사용하는 방법에 대한 더 자섞한 섀명도 포핚되얎 있습니닀.

v3 boilerplate 윔드의 구조는 phpMussel 조직의 닀양한 phpMussel v3 저장소의 구조와 동음하닀는 것을 알 수 있습니닀. 귞것은 우연읎 아닙니닀. 가능하멎 확장 목적윌로 v3 boilerplate 윔드륌 활용하고 phpMussel v3 자첎와 유사한 섀계 원칙을 활용하는 것을 추천합니닀. 새 확장읎나 플러귞읞을 공개하Ʞ로 선택한 겜우 읎에 대한 Composer 지원을 통합할 수 있윌며 귞러멎 닀륞 사람듀읎 phpMussel v3 자첎와 같은 방법윌로 닀륞 Composer 의졎성곌 핚께 확장읎나 플러귞읞을 요구하고 구현에 필요한 읎벀튞 핞듀러륌 적용하는 것만윌로 확장읎나 플러귞읞을 활용하는 것읎 읎론적윌로 가능할 것입니닀. (묌론 닀륞 사람듀읎 졎재할 수도 있는 필요한 읎벀튞 핞듀러와 공개한 것의 올바륞 섀치와 활용에 필요한 Ʞ타 정볎륌 알 수 있도록 섀명을 포핚하는 것을 잊지 마섞요).


5. 섀정 옵션

닀음은 phpMussel에서 허용하는 구성 지시묞 목록입니닀, 귞듀의 목적곌 Ʞ능에 대한 섀명곌 핚께.

구성 (v3)
│
├───core
│       scan_log [string]
│       scan_log_serialized [string]
│       error_log [string]
│       outbound_request_log [string]
│       truncate [string]
│       log_rotation_limit [int]
│       log_rotation_action [string]
│       timezone [string]
│       time_offset [int]
│       time_format [string]
│       ipaddr [string]
│       delete_on_sight [bool]
│       lang [string]
│       lang_override [bool]
│       scan_cache_expiry [int]
│       maintenance_mode [bool]
│       statistics [bool]
│       hide_version [bool]
│       disabled_channels [string]
│       default_timeout [int]
├───signatures
│       active [string]
│       fail_silently [bool]
│       fail_extensions_silently [bool]
│       detect_adware [bool]
│       detect_joke_hoax [bool]
│       detect_pua_pup [bool]
│       detect_packer_packed [bool]
│       detect_shell [bool]
│       detect_deface [bool]
│       detect_encryption [bool]
│       heuristic_threshold [int]
├───files
│       filesize_limit [string]
│       filesize_response [bool]
│       filetype_whitelist [string]
│       filetype_blacklist [string]
│       filetype_greylist [string]
│       check_archives [bool]
│       filesize_archives [bool]
│       filetype_archives [bool]
│       max_recursion [int]
│       block_encrypted_archives [bool]
│       max_files_in_archives [int]
│       chameleon_from_php [bool]
│       can_contain_php_file_extensions [string]
│       chameleon_from_exe [bool]
│       chameleon_to_archive [bool]
│       chameleon_to_doc [bool]
│       chameleon_to_img [bool]
│       chameleon_to_pdf [bool]
│       archive_file_extensions [string]
│       block_control_characters [bool]
│       corrupted_exe [bool]
│       decode_threshold [string]
│       scannable_threshold [string]
│       allow_leading_trailing_dots [bool]
│       block_macros [bool]
│       only_allow_images [bool]
├───quarantine
│       quarantine_key [string]
│       quarantine_max_filesize [string]
│       quarantine_max_usage [string]
│       quarantine_max_files [int]
├───virustotal
│       vt_public_api_key [string]
│       vt_suspicion_level [int]
│       vt_weighting [int]
│       vt_quota_rate [int]
│       vt_quota_time [int]
├───urlscanner
│       google_api_key [string]
│       maximum_api_lookups [int]
│       maximum_api_lookups_response [bool]
│       cache_time [int]
├───legal
│       pseudonymise_ip_addresses [bool]
│       privacy_policy [string]
├───supplementary_cache_options
│       prefix [string]
│       enable_apcu [bool]
│       enable_memcached [bool]
│       enable_redis [bool]
│       enable_pdo [bool]
│       memcached_host [string]
│       memcached_port [int]
│       redis_host [string]
│       redis_port [int]
│       redis_timeout [float]
│       redis_database_number [int]
│       pdo_dsn [string]
│       pdo_username [string]
│       pdo_password [string]
├───frontend
│       frontend_log [string]
│       max_login_attempts [int]
│       numbers [string]
│       default_algo [string]
│       theme [string]
│       magnification [float]
│       custom_header [string]
│       custom_footer [string]
├───web
│       uploads_log [string]
│       forbid_on_block [bool]
│       unsupported_media_type_header [bool]
│       max_uploads [int]
│       ignore_upload_errors [bool]
│       theme [string]
│       magnification [float]
│       custom_header [string]
│       custom_footer [string]
└───phpmailer
        event_log [string]
        enable_two_factor [bool]
        enable_notifications [string]
        skip_auth_process [bool]
        host [string]
        port [int]
        smtp_secure [string]
        smtp_auth [bool]
        username [string]
        password [string]
        set_from_address [string]
        set_from_name [string]
        add_reply_to_address [string]
        add_reply_to_name [string]

"core" (칎테고늬)

음반 섀정 (닀륞 칎테고늬에 속하지 않는 섀정).

"scan_log" [string]
  • 전첎 슀캔 결곌륌 Ʞ록하는 파음의 파음 읎늄. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"scan_log_serialized" [string]
  • 전첎 슀캔 결곌륌 Ʞ록하는 파음의 파음 읎늄 (serialization 형식을 읎용). 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"error_log" [string]
  • 치명적읎지 않은 였류륌 탐지하Ʞ위한 파음. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"outbound_request_log" [string]
  • 아웃바욎드 요청의 결곌륌 Ʞ록하Ʞ 위한 파음. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"truncate" [string]
  • 로귞 파음읎 특정 크Ʞ에 도달하멎 잘 있습니까? 값은 로귞 파음읎 잘 늬Ʞ 전에 컀질 가능성읎있는 B/KB/MB/GB/TB 닚위의 최대 크Ʞ입니닀. Ʞ볞값 "0KB"은 절닚을 핎제합니닀 (로귞 파음은 묎한정 확장 할 수 있습니닀). 찞고 : 개별 로귞 파음에 적용됩니닀! 로귞 파음의 크Ʞ는 음ꎄ 적윌로 고렀되지 않습니닀.
"log_rotation_limit" [int]
  • 로귞 회전은 한 번에 졎재핎알하는 로귞 파음 수륌 제한합니닀. 새 로귞 파음을 만듀 때 쎝 로귞, 파음 수가 지정된 제한을 쎈곌하멎, 지정된 작업읎 수행됩니닀. 여Ʞ서 원하는 한계륌 지정할 수 있습니닀. 값 0은 로귞 회전을 비활성화합니닀.
"log_rotation_action" [string]
  • 로귞 회전은 한 번에 졎재핎알하는 로귞 파음 수륌 제한합니닀. 새 로귞 파음을 만듀 때 쎝 로귞, 파음 수가 지정된 제한을 쎈곌하멎, 지정된 작업읎 수행됩니닀. 여Ʞ서 원하는 동작을 지정할 수 있습니닀.
log_rotation_action
├─Delete ("제한읎 더 읎상 쎈곌되지 않을 때까지, 가장 였래된 로귞 파음을 삭제하십시였.")
└─Archive ("제한읎 더 읎상 쎈곌되지 않을 때까지, 가장 였래된 로귞 파음을 볎ꎀ 한 닀음 삭제하십시였.")
"timezone" [string]
  • 사용할 시간대륌 지정합니닀 (예 : Africa/Cairo, America/New_York, Asia/Tokyo, Australia/Perth, Europe/Berlin, Pacific/Guam, 등등). PHP가 자동윌로 처늬하도록하렀멎, "SYSTEM"을 지정하십시였.
timezone
├─SYSTEM ("시슀템 Ʞ볞 시간대륌 사용하십시였.")
├─UTC ("UTC")
└─ 닀륞
"time_offset" [int]
  • 시간대 였프셋 (분).
"time_format" [string]
  • phpMussel에서 사용되는 날짜 형식. 추가 옵션읎 요청에 따띌 추가 될 수 있습니닀.
time_format
├─{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz} ("{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} {tz}")
├─{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss} ("{Day}, {dd} {Mon} {yyyy} {hh}:{ii}:{ss}")
├─{Day}, {dd} {Mon} {yyyy} ("{Day}, {dd} {Mon} {yyyy}")
├─{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}.{mm}.{dd} {hh}:{ii}:{ss} ("{yyyy}.{mm}.{dd} {hh}:{ii}:{ss}")
├─{yyyy}.{mm}.{dd} ("{yyyy}.{mm}.{dd}")
├─{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}-{mm}-{dd} {hh}:{ii}:{ss} ("{yyyy}-{mm}-{dd} {hh}:{ii}:{ss}")
├─{yyyy}-{mm}-{dd} ("{yyyy}-{mm}-{dd}")
├─{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz} ("{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}")
├─{yyyy}/{mm}/{dd} {hh}:{ii}:{ss} ("{yyyy}/{mm}/{dd} {hh}:{ii}:{ss}")
├─{yyyy}/{mm}/{dd} ("{yyyy}/{mm}/{dd}")
├─{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}.{mm}.{yyyy} {hh}:{ii}:{ss} ("{dd}.{mm}.{yyyy} {hh}:{ii}:{ss}")
├─{dd}.{mm}.{yyyy} ("{dd}.{mm}.{yyyy}")
├─{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}-{mm}-{yyyy} {hh}:{ii}:{ss} ("{dd}-{mm}-{yyyy} {hh}:{ii}:{ss}")
├─{dd}-{mm}-{yyyy} ("{dd}-{mm}-{yyyy}")
├─{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz} ("{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} {tz}")
├─{dd}/{mm}/{yyyy} {hh}:{ii}:{ss} ("{dd}/{mm}/{yyyy} {hh}:{ii}:{ss}")
├─{dd}/{mm}/{yyyy} ("{dd}/{mm}/{yyyy}")
├─{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}.{dd}.{yyyy} {hh}:{ii}:{ss} ("{mm}.{dd}.{yyyy} {hh}:{ii}:{ss}")
├─{mm}.{dd}.{yyyy} ("{mm}.{dd}.{yyyy}")
├─{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}-{dd}-{yyyy} {hh}:{ii}:{ss} ("{mm}-{dd}-{yyyy} {hh}:{ii}:{ss}")
├─{mm}-{dd}-{yyyy} ("{mm}-{dd}-{yyyy}")
├─{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz} ("{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} {tz}")
├─{mm}/{dd}/{yyyy} {hh}:{ii}:{ss} ("{mm}/{dd}/{yyyy} {hh}:{ii}:{ss}")
├─{mm}/{dd}/{yyyy} ("{mm}/{dd}/{yyyy}")
├─{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz} ("{yy}.{mm}.{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}.{mm}.{dd} {hh}:{ii}:{ss} ("{yy}.{mm}.{dd} {hh}:{ii}:{ss}")
├─{yy}.{mm}.{dd} ("{yy}.{mm}.{dd}")
├─{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz} ("{yy}-{mm}-{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}-{mm}-{dd} {hh}:{ii}:{ss} ("{yy}-{mm}-{dd} {hh}:{ii}:{ss}")
├─{yy}-{mm}-{dd} ("{yy}-{mm}-{dd}")
├─{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz} ("{yy}/{mm}/{dd} {hh}:{ii}:{ss} {tz}")
├─{yy}/{mm}/{dd} {hh}:{ii}:{ss} ("{yy}/{mm}/{dd} {hh}:{ii}:{ss}")
├─{yy}/{mm}/{dd} ("{yy}/{mm}/{dd}")
├─{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz} ("{dd}.{mm}.{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}.{mm}.{yy} {hh}:{ii}:{ss} ("{dd}.{mm}.{yy} {hh}:{ii}:{ss}")
├─{dd}.{mm}.{yy} ("{dd}.{mm}.{yy}")
├─{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz} ("{dd}-{mm}-{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}-{mm}-{yy} {hh}:{ii}:{ss} ("{dd}-{mm}-{yy} {hh}:{ii}:{ss}")
├─{dd}-{mm}-{yy} ("{dd}-{mm}-{yy}")
├─{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz} ("{dd}/{mm}/{yy} {hh}:{ii}:{ss} {tz}")
├─{dd}/{mm}/{yy} {hh}:{ii}:{ss} ("{dd}/{mm}/{yy} {hh}:{ii}:{ss}")
├─{dd}/{mm}/{yy} ("{dd}/{mm}/{yy}")
├─{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz} ("{mm}.{dd}.{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}.{dd}.{yy} {hh}:{ii}:{ss} ("{mm}.{dd}.{yy} {hh}:{ii}:{ss}")
├─{mm}.{dd}.{yy} ("{mm}.{dd}.{yy}")
├─{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz} ("{mm}-{dd}-{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}-{dd}-{yy} {hh}:{ii}:{ss} ("{mm}-{dd}-{yy} {hh}:{ii}:{ss}")
├─{mm}-{dd}-{yy} ("{mm}-{dd}-{yy}")
├─{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz} ("{mm}/{dd}/{yy} {hh}:{ii}:{ss} {tz}")
├─{mm}/{dd}/{yy} {hh}:{ii}:{ss} ("{mm}/{dd}/{yy} {hh}:{ii}:{ss}")
├─{mm}/{dd}/{yy} ("{mm}/{dd}/{yy}")
├─{yyyy}幎{m}月{d}日 {hh}時{ii}分{ss}秒 ("{yyyy}幎{m}月{d}日 {hh}時{ii}分{ss}秒")
├─{yyyy}幎{m}月{d}日 {hh}:{ii}:{ss} {tz} ("{yyyy}幎{m}月{d}日 {hh}:{ii}:{ss} {tz}")
├─{yyyy}幎{m}月{d}日 ("{yyyy}幎{m}月{d}日")
├─{yy}幎{m}月{d}日 {hh}時{ii}分{ss}秒 ("{yy}幎{m}月{d}日 {hh}時{ii}分{ss}秒")
├─{yy}幎{m}月{d}日 {hh}:{ii}:{ss} {tz} ("{yy}幎{m}月{d}日 {hh}:{ii}:{ss} {tz}")
├─{yy}幎{m}月{d}日 ("{yy}幎{m}月{d}日")
├─{yyyy}년 {m}월 {d}음 {hh}시 {ii}분 {ss}쎈 ("{yyyy}년 {m}월 {d}음 {hh}시 {ii}분 {ss}쎈")
├─{yyyy}년 {m}월 {d}음 {hh}:{ii}:{ss} {tz} ("{yyyy}년 {m}월 {d}음 {hh}:{ii}:{ss} {tz}")
├─{yyyy}년 {m}월 {d}음 ("{yyyy}년 {m}월 {d}음")
├─{yy}년 {m}월 {d}음 {hh}시 {ii}분 {ss}쎈 ("{yy}년 {m}월 {d}음 {hh}시 {ii}분 {ss}쎈")
├─{yy}년 {m}월 {d}음 {hh}:{ii}:{ss} {tz} ("{yy}년 {m}월 {d}음 {hh}:{ii}:{ss} {tz}")
├─{yy}년 {m}월 {d}음 ("{yy}년 {m}월 {d}음")
├─{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z} ("{yyyy}-{mm}-{dd}T{hh}:{ii}:{ss}{t:z}")
├─{d}. {m}. {yyyy} ("{d}. {m}. {yyyy}")
└─ 닀륞

자늬 표시자 – 섀명 – 예시는 2024-04-30T18:27:49+08:00륌 Ʞ쀀윌로 합니닀.
{yyyy} – 연도 – 예 : 2024.
{yy} – 앜식 연도 – 예 : 24.
{Mon} – 핎당 월의 앜칭(영묞) – 예 : Apr.
{mm} – 앞에 0읎 붙는 달 – 예 : 04.
{m} – 달 – 예 : 4.
{Day} – 요음의 앜칭(영묞) – 예 : Tue.
{dd} – 앞에 0읎 붙은 핎당 월의 음 – 예 : 30.
{d} – 핎당 월의 음 – 예 : 30.
{hh} – 앞에 0읎 붙은 시간(24시간제 사용) – 예 : 18.
{h} – 시간(24시간제 사용) – 예 : 18.
{ii} – 앞에 0읎 붙는 분 – 예 : 27.
{i} – 분 – 예 : 27.
{ss} – 앞에 0읎 붙은 쎈 – 예 : 49.
{s} – 쎈 – 예 : 49.
{tz} – 시간대(윜론 제왞) – 예 : +0800.
{t:z} – 시간대(윜론 포핚) – 예 : +08:00.

"ipaddr" [string]
  • 연결 요청의 IP 죌소륌 얎디에서 찟을 것읞가에 대핮 (Cloudflare 같은 서비슀에 대핮 유횚). Default (Ʞ볞 섀정) = REMOTE_ADDR. 죌의 : 당신읎 묎엇을하고 있는지 몚륎는 한읎륌 변겜하지 마십시였.
ipaddr
├─HTTP_INCAP_CLIENT_IP ("HTTP_INCAP_CLIENT_IP (Incapsula)")
├─HTTP_CF_CONNECTING_IP ("HTTP_CF_CONNECTING_IP (Cloudflare)")
├─CF-Connecting-IP ("CF-Connecting-IP (Cloudflare)")
├─HTTP_X_FORWARDED_FOR ("HTTP_X_FORWARDED_FOR (Cloudbric)")
├─X-Forwarded-For ("X-Forwarded-For (Squid)")
├─Forwarded ("Forwarded")
├─REMOTE_ADDR ("REMOTE_ADDR (Ʞ볞값)")
└─ 닀륞

또한볎십시였 :

"delete_on_sight" [bool]
  • 읎 지시묞을 사용하멎 감지 Ʞ쀀 (서명읎든 뭐든)에 있던 업로드 파음은 슉시 삭제됩니닀. 큎늰 판당 된 파음은 귞대로입니닀. 아칎읎람의 겜우, 묞제의 파음읎 음부띌도 아칎읎람 몚든읎 삭제 대상읎됩니닀. 업로드 파음 검사에서는 볞 지시얎륌 활성화 할 필요는 없습니닀. 왜냐하멎 PHP는 슀크늜튞 싀행 후 자동윌로 캐시의 낎용을 파Ʞ하Ʞ 때묞입니닀. 슉, 파음읎 읎동되거나 복사되거나 삭제되지 않는 한, PHP는 서버에 업로드 한 파음을 낚겚 두는 것은 볎통 없습니닀. 읎 지시얎는 볎안에 공을듀읎는 목적윌로 섀치되얎 있습니닀. PHP는 드묌게 예상치 못한 행동을 할 수 있Ʞ 때묞입니닀. False = 슀캔 후 파음은 귞대로 (Ʞ볞 섀정). True = 슀캔 후 깚끗핎알 슉시 삭제합니닀.
"lang" [string]
  • phpMussel의 Ʞ볞 얞얎륌 섀정합니닀.
lang
├─af ("Afrikaans")
├─ar ("العرؚية")
├─bg ("БългарскО")
├─bn ("àŠ¬àŠŸàŠ‚àŠ²àŠŸ")
├─bs ("Bosanski")
├─ca ("Català")
├─cs ("Čeština")
├─de ("Deutsch")
├─en ("English (AU/GB/NZ)")
├─en-CA ("English (CA)")
├─en-US ("English (US)")
├─es ("Español")
├─fa ("فارسی")
├─fr ("Français")
├─gl ("Galego")
├─gu ("ગુજરટ઀ી")
├─he ("עבךית")
├─hi ("à€¹à€¿à€‚à€Šà¥€")
├─hr ("Hrvatski")
├─id ("Bahasa Indonesia")
├─it ("Italiano")
├─ja ("日本語")
├─ko ("한국얎")
├─lv ("Latviešu")
├─ms ("Bahasa Melayu")
├─nl ("Nederlandse")
├─no ("Norsk")
├─pa ("àšªà©°àšœàšŸàš¬à©€")
├─pl ("Polski")
├─pt-BR ("Português (Brasil)")
├─pt-PT ("Português (Europeu)")
├─ro ("Română")
├─ru ("РусскОй")
├─sv ("Svenska")
├─sr ("СрпскО")
├─ta ("஀மிஎ்")
├─th ("àž àž²àž©àž²à¹„àž—àž¢")
├─tr ("TÃŒrkçe")
├─uk ("УкраїМська")
├─ur ("اردو")
├─vi ("Tiếng Việt")
├─zh-Hans ("䞭文简䜓")
└─zh-Hant ("䞭文傳統")
"lang_override" [bool]
  • 가능할 때마닀 HTTP_ACCEPT_LANGUAGE에 따띌 현지화 하시겠습니까? True = 예 (Default / Ʞ볞값); False = 아니였.
"scan_cache_expiry" [int]
  • phpMussel는 슀캐닝 결곌륌 얌마 동안 캐시핎알합니까? 쎈읎며, Ʞ볞값은 21,600 쎈 (6 시간)로되얎 있습니닀. 0윌로 섀정하멎 캐시 비활성화됩니닀.
"maintenance_mode" [bool]
  • 유지 ꎀ늬 몚드륌 사용 하시겠습니까? True = 예; False = 아니였 (Default / Ʞ볞 섀정). 프런튾 엔드 읎왞의 몚든 것을 비활성화합니닀. CMS, 프레임 워크 등을 업데읎튞 할 때 유용합니닀.
"statistics" [bool]
  • phpMussel 사용 통계륌 추적합니까? True = 예; False = 아니였 (Default / Ʞ볞 섀정).
"hide_version" [bool]
  • 로귞 및 페읎지 출력에서 버전 정볎 숚ꞰꞰ? True = 예; False = 아니였 (Default / Ʞ볞 섀정).
"disabled_channels" [string]
  • 읎것은 phpMussel읎 요청을 볎낌 때 특정 채널을 사용하지 못하게하는 데 사용할 수 있습니닀.
disabled_channels
├─GitHub ("GitHub")
├─BitBucket ("BitBucket")
├─VirusTotal_HTTPS ("VirusTotal (HTTPS)")
└─VirusTotal_HTTP ("VirusTotal (HTTP)")
"default_timeout" [int]
  • 왞부 요청에 사용할 Ʞ볞 제한 시간? Default (Ʞ볞 섀정) = 12 쎈.

"signatures" (칎테고늬)

서명, 서명 파음, 등의 섀정.

"active" [string]
  • 쉌표로 구분 된 활성 시귞니처 파음의 목록입니닀. 녾튾 : 활성화하Ʞ 전에, 첫짞로, 서명 파음을 섀치핎알 합니닀. 테슀튞 파음읎 올바륎게 작동하렀멎, 서명 파음을 섀치하고 활성화핎알 합니닀.
"fail_silently" [bool]
  • 서명 파음읎 없거나 손상된 겜우 phpMussel 귞것을 늬포튞 핎알하는지 여부? fail_silently읎 유횚하지 않윌멎 묞제가 늬포튞되얎 유횚하멎 묞제는 묎시 된 슀캔 볎고서가 작성됩니닀. 충돌하는 같은 플핎가 없윌멎 Ʞ볞 섀정을 귞대로 유지한닀. False = Disabled/장애읞; True = Enabled/유횚 (Default / Ʞ볞 섀정).
"fail_extensions_silently" [bool]
  • 확장자가없는 겜우 phpMussel읎 귞것을볎고핎알하는지 여부? fail_extensions_silently읎 잘못된 겜우 확장자없읎는 슀캐닝시에볎고되고 활성화되멎 묎시됩니닀 묞제는볎고되지 않습니닀. 읎 지시얎륌 묎횚로하는 것은 볎안을 향상시킬 수 있지만, 였진도 슝가 할 수 있습니닀. False = Disabled/장애읞; True = Enabled/유횚 (Default / Ʞ볞 섀정).
"detect_adware" [bool]
  • phpMussel 애드웚얎 탐지륌 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_joke_hoax" [bool]
  • phpMussel 장난 / 위조 및 악성 윔드 / 바읎러슀 탐지륌 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_pua_pup" [bool]
  • phpMussel는 PUAs/PUPs 탐지륌 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_packer_packed" [bool]
  • phpMussel는 팚컀와 팩 데읎터 검출을 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_shell" [bool]
  • phpMussel는 shell 슀크늜튞 탐지륌 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_deface" [bool]
  • phpMussel륌 위조 및 디훌사 탐지륌 위핎 서명을 분석핎알하는지 여부? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"detect_encryption" [bool]
  • phpMussel읎 암혞화 된 파음을 탐지하고 찚닚핎알합니까? false = 아니였; True = 예 (Default / Ʞ볞 섀정).
"heuristic_threshold" [int]
  • phpMussel읎 파음은 의심 위험성읎 높닀고 판당하는 서명읎 있습니닀. 임계 값은 업로드 된 파음의 위험의 최대 값읎며읎륌 쎈곌하멎 악성 윔드로 판닚됩니닀. 여Ʞ에서 위험의 정의는 의심곌 특정되었지만 수입니닀. Ʞ볞적윌로 3윌로 섀정되얎 있습니닀. 읎볎닀 낮은 였진의 가능성읎 슝가하고, 너묎 크멎 였류 검출은 감소하지만 위험성읎있는 파음읎 검색되지 않을 수 슝가하게됩니닀. 특히 묞제가 없윌멎 Ʞ볞 섀정을 유지하는 것읎 좋습니닀.

"files" (칎테고늬)

슀캔 시 파음을 처늬하는 방법에 대한 섞부 사항.

"filesize_limit" [string]
  • 파음 크Ʞ 제한의 닚위는 KB입니닀. 65536 = 64MB (Default / Ʞ볞 섀정); 0 = 제한하지 않습니닀 (제한없읎 항상 귞레읎늬슀튞 화) 양수읎멎 묎엇읎든 상ꎀ 없습니닀. PHP 섀정에서 메몚늬에 제한읎 있고, 업로드 파음 크Ʞ 제한읎 섀정되얎있는 겜우에 횚곌적입니닀.
"filesize_response" [bool]
  • 최대 크Ʞ볎닀 큰 파음을 처늬하는 방법에 ꎀ한 것입니닀. False = Whitelist/화읎튞늬슀튞; True = Blacklist/랔랙늬슀튞 (Default / Ʞ볞 섀정).
"filetype_whitelist" [string]
  • 파음 유형 화읎튞늬슀튞 :

작동 원늬. 시슀템읎 특정 유형의 파음 만 업로드륌 허용하거나 거절하는 겜우 파음 유형을 적절히 화읎튞늬슀튞, 랔랙늬슀튞, 귞레읎늬슀튞로 분류 핎두멎 파음 유형에 튀겚 진 파음은 슀캔을 걎너 뛾 수 때묞에 속도로 연결됩니닀. 형식은 CSV (쉌표로 구분)입니닀.

프로섞슀의 녌늬적 순서. 파음 형식읎 화읎튞늬슀튞에 포핚되얎 있윌멎, 슀캔하지 않고 랔록하지 않고 랔랙늬슀튞 및 귞레읎늬슀튞에 첎크륌하지 않습니닀. 파음 형식읎 랔랙늬슀튞에 있윌멎 슀캔하지 않고 슉시 찚닚하고 귞레읎늬슀튞에 첎크륌하지 않습니닀. 회색 목록읎 비얎 또는 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 타입읎 있윌멎 정상적윌로 슀캔 ì°šë‹š 여부륌 판닚합니닀. 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 유형읎 포핚되얎 있지 않윌멎 랔랙늬슀튞와 같은 췚꞉을 할 수 있고 슀캔없읎 찚닚합니닀.

"filetype_blacklist" [string]
  • 파음 유형 랔랙늬슀튞 :

작동 원늬. 시슀템읎 특정 유형의 파음 만 업로드륌 허용하거나 거절하는 겜우 파음 유형을 적절히 화읎튞늬슀튞, 랔랙늬슀튞, 귞레읎늬슀튞로 분류 핎두멎 파음 유형에 튀겚 진 파음은 슀캔을 걎너 뛾 수 때묞에 속도로 연결됩니닀. 형식은 CSV (쉌표로 구분)입니닀.

프로섞슀의 녌늬적 순서. 파음 형식읎 화읎튞늬슀튞에 포핚되얎 있윌멎, 슀캔하지 않고 랔록하지 않고 랔랙늬슀튞 및 귞레읎늬슀튞에 첎크륌하지 않습니닀. 파음 형식읎 랔랙늬슀튞에 있윌멎 슀캔하지 않고 슉시 찚닚하고 귞레읎늬슀튞에 첎크륌하지 않습니닀. 회색 목록읎 비얎 또는 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 타입읎 있윌멎 정상적윌로 슀캔 ì°šë‹š 여부륌 판닚합니닀. 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 유형읎 포핚되얎 있지 않윌멎 랔랙늬슀튞와 같은 췚꞉을 할 수 있고 슀캔없읎 찚닚합니닀.

"filetype_greylist" [string]
  • 파음 유형 귞레읎늬슀튞 :

작동 원늬. 시슀템읎 특정 유형의 파음 만 업로드륌 허용하거나 거절하는 겜우 파음 유형을 적절히 화읎튞늬슀튞, 랔랙늬슀튞, 귞레읎늬슀튞로 분류 핎두멎 파음 유형에 튀겚 진 파음은 슀캔을 걎너 뛾 수 때묞에 속도로 연결됩니닀. 형식은 CSV (쉌표로 구분)입니닀.

프로섞슀의 녌늬적 순서. 파음 형식읎 화읎튞늬슀튞에 포핚되얎 있윌멎, 슀캔하지 않고 랔록하지 않고 랔랙늬슀튞 및 귞레읎늬슀튞에 첎크륌하지 않습니닀. 파음 형식읎 랔랙늬슀튞에 있윌멎 슀캔하지 않고 슉시 찚닚하고 귞레읎늬슀튞에 첎크륌하지 않습니닀. 회색 목록읎 비얎 또는 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 타입읎 있윌멎 정상적윌로 슀캔 ì°šë‹š 여부륌 판닚합니닀. 귞레읎늬슀튞가 하늘읎 아닌 한펾 ê·ž 파음 유형읎 포핚되얎 있지 않윌멎 랔랙늬슀튞와 같은 췚꞉을 할 수 있고 슀캔없읎 찚닚합니닀.

"check_archives" [bool]
  • 아칎읎람의 컚텐잠에 대핮 첎크륌 시도 여부에 대핎서입니닀. False = 첎크하지 않는닀; True = 확읞 (Default / Ʞ볞 섀정). Zip (libzip읎 필요합니닀), Tar, Rar (rar 확장읎 필요합니닀)읎 지원됩니닀.
"filesize_archives" [bool]
  • 파음 크Ʞ 랔랙늬슀튞/화읎튞늬슀튞 화륌 아칎읎람의 컚텐잠에 반입 여부? false = 아니였 (닚지 귞레읎늬슀튞 몚두); True = 예 (Default / Ʞ볞 섀정).
"filetype_archives" [bool]
  • 파음 타입 랔랙늬슀튞/화읎튞늬슀튞 화륌 아칎읎람의 컚텐잠에 반입 여부? false = 아니였 (닚지 귞레읎늬슀튞 몚두) (Default / Ʞ볞 섀정); True = 예.
"max_recursion" [int]
  • 아칎읎람에 대한 최대 재귀 깊읎입니닀. Ʞ볞 섀정 = 3.
"block_encrypted_archives" [bool]
  • 암혞화 된 아칎읎람륌 감지하고 ì°šë‹š 여부? phpMussel은 암혞화 된 아칎읎람륌 검색 할 수 없Ʞ 때묞에 아칎읎람의 암혞화륌 통핎 phpMussel 안티 바읎러슀 슀캐너 등을 かいくぐろ하렀는 공격자가 있을지도 몚늅니닀. 암혞화 된 아칎읎람륌 찚닚핚윌로썚 읎러한 위험을 방지 할 수 있습니닀. False = 아니였; True = 예 (Default / Ʞ볞 섀정).
"max_files_in_archives" [int]
  • 검사륌 쀑닚하Ʞ 전에 볎ꎀ소에서 검사 할 최대 파음 수입니닀. Ʞ볞 섀정 = 0 (최대 값 없음).
"chameleon_from_php" [bool]
  • 파음도 아니고 PHP 아칎읎람도 읞식 할 수없는 파음에서 PHP 헀더륌 찟습니닀. False = í•Žì œ; True = 옚.
"can_contain_php_file_extensions" [string]
  • 쉌표로 구분 된 PHP 윔드륌 포핚 할 수있는 파음 확장명 목록. PHP 칎멜레옚 공격 탐지가 활성화 된 겜우읎 목록에없는 확장자륌 가진 PHP 윔드가 포핚 된 파음은 PHP 칎멜레옚 공격윌로 탐지됩니닀.
"chameleon_from_exe" [bool]
  • 싀행 파음없읎 싀행 파음의 아칎읎람도 읞식 할 수없는 파음의 싀행 헀더 및 악성 헀더의 싀행 파음을 찟습니닀. False = í•Žì œ; True = 옚.
"chameleon_to_archive" [bool]
  • 아칎읎람 및 압축 파음에서 잘못된 헀더륌 탐지합니닀 (BZ/BZIP2, GZ/GZIP, LZF, RAR, ZIP읎 지원됩니닀). False = í•Žì œ; True = 옚.
"chameleon_to_doc" [bool]
  • 헀더가 잘못 였플슀 묞서륌 찟습니닀 (DOC, DOT, PPS, PPT, XLA XLS, WIZ읎 지원됩니닀). False = í•Žì œ; True = 옚.
"chameleon_to_img" [bool]
  • 헀더가 잘못된 읎믞지 파음을 찟습니닀 (BMP, DIB, PNG, GIF, JPEG, JPG, XCF, PSD, PDD, WEBP읎 지원됩니닀). False = í•Žì œ; True = 옚.
"chameleon_to_pdf" [bool]
  • 헀더가 잘못 PDF 파음을 찟습니닀. False = í•Žì œ; True = 옚.
"archive_file_extensions" [string]
  • 읞식 가능한 아칎읎람 파음 확장입니닀 (CSV 형식; 묞제가있을 겜우에만 추가 또는 제거핎알합니닀. 싀수로 제거하멎 였진의 원읞읎 될 수 있습니닀. 반대로 싀수로 추가하멎 얎택 자 슀페시 픜 검출에서 추가 된 화읎튞늬슀튞 화되얎 버늜니닀. 충분히죌의 위 변겜하십시였. 또한 컚텐튞 수쀀에서 아칎읎람륌 분석 할 수 있는지 여부에는 영향을죌지 않습니닀). Ʞ볞적윌로 가장 음반적 형식을 나엎하고 있지만 의도적윌로 포ꎄ적윌로하지 않습니닀.
"block_control_characters" [bool]
  • 제얎 묞자륌 포핚한 파음을 ì°šë‹š 여부 (쀄 바꿈을 제왞한)? 만앜 텍슀튞륌 업로드하는 겜우,읎 옵션을 사용하여 추가 볎혞륌 강화할 수 있습니닀. 텍슀튞 읎왞도 업로드 할 겜우, 사용하멎 였진의 원읞읎 될 수 있습니닀. False = 찚닚하지 (Default / Ʞ볞 섀정); True = 찚닚합니닀.
"corrupted_exe" [bool]
  • 손상된 파음곌 였류 분석. False = 묎시; True = ì°šë‹š (Default / Ʞ볞 섀정). 손상의 가능성읎있는 PE 파음을 ì°šë‹š 검출 여부? ꎀ한 것입니닀. PE 파음의 음부가 손상되얎 제대로 분석 할 수없는 것은 드묌지 않고, 바읎러슀 감엌을 볎는 바로믞터가됩니닀. PE 파음의 바읎러슀륌 감지하는 안티 바읎러슀 프로귞랚은 PE 파음 분석을 싀시 합니닀만, 바읎러슀륌 만드는 사람읎 바읎러슀가 검출되지 않도록 귞것을 플하렀고 할 것읎Ʞ 때묞입니닀.
"decode_threshold" [string]
  • 디윔드 명령읎 감지 될 원시 데읎터의 Ꞟ읎 제한 (슀캐닝 쀑에 눈에 띄는 묞제가있는 겜우에는 필요에 따띌 섀정). Ʞ볞값 = 512KB. 제로 또는 값 없음 (null)은 임계 값을 비활성화합니닀 (파음 크Ʞ의 제한을 제거합니닀).
"scannable_threshold" [string]
  • phpMussel읎 읜고 슀캔 할 수있는 원시 데읎터의 Ꞟ읎에 대한 임계 값 (슀캐닝 쀑에 눈에 띄는 묞제가있는 겜우에는 필요에 따띌 섀정). Ʞ볞값 = 32MB. 제로 또는 값 없음 (null)은 임계 값을 비활성화합니닀. 값은 서버 나 웹 사읎튞에 업로드되는 파음의 평균 파음 크Ʞ볎닀 크고 filesize_limit 지시얎볎닀 작게 섀정핎알합니닀. 또한 "php.ini" 섀정에 따띌 PHP에 할당 된 메몚늬의 대략 5 분의 1을 쎈곌핎서는 없습니닀. 읎 지시묞은 phpMussel가 메몚늬륌 너묎 많읎 사용하지 않도록하Ʞ위한 것입니닀. (음정 크Ʞ 읎상의 파음은 슀캔하지 못할 수도 있습니닀).
"allow_leading_trailing_dots" [bool]
  • 파음 읎늄에 선행 및 후행 점을 허용 하시겠습니까? 읎것은 때때로 파음을 숚Ʞ거나 디렉토늬 튞래버 섀을 허용하도록 음부 시슀템을 속읎는 데 사용될 수 있습니닀. False = 허용되지 않습니닀 (Default / Ʞ볞 섀정). True = 허용된닀.
"block_macros" [bool]
  • 맀크로가 포핚 된 파음을 찚닚하렀고합니까? 음부 유형의 묞서 및 슀프레드 시튞에는 싀행 맀크로가 포핚될 수 있윌므로 위험 할 수있는 맬웚얎 벡터륌 제공합니닀. False = 찚닚하지 (Default / Ʞ볞 섀정); True = 찚닚합니닀.
"only_allow_images" [bool]
  • True로 섀정하멎, 슀캐너가 발견한 읎믞지가 아닌 파음은 슀캔하지 않고 슉시 신고됩니닀. 읎는 때에 따띌 슀캔을 완료하는 데 필요한 시간을 쀄읎는 데 도움읎 될 수 있습니닀. Ʞ볞 섀정에 따띌 false로 섀정되얎 있습니닀.

"quarantine" (칎테고늬)

검역 섀정.

"quarantine_key" [string]
  • phpMussel은, 필요하닀멎, 찚닚된 파음 업로드륌 격늬 할 수 있습니닀. 음반적읞 phpMussel 사용자는 웹 사읎튞 및 혞슀팅 환겜 볎혞가 있윌멎 충분하닀고 생각하고 플래귞가있는 같은 것읎 추가 분석을 가하렀까지 요청읎없는 것읎므로 묎횚로 될 수 있습니닀. 귞렇지만 상섞하게 분석하여 악성 윔드에 대비하렀는 사용자는 사용하멎 좋습니닀. 플래귞 첚부 파음 업로드 격늬 가양 디버깅에 도움읎 될 수 있습니닀. 격늬 Ʞ능을 핎제하렀멎quarantine_key 지시묞을 비워 두거나 비얎 있지 않은 겜우 지시묞의 낎용을 삭제하십시였. 활성화하렀멎 데읎레쿠티부에 ì–Žë–€ 값을 넣얎죌섞요. quarantine_key 격늬 Ʞ능의 쀑요한 볎안 요소읎며, 검역 Ʞ능에 저장된 데읎터의 집행을 각종 공격윌로부터 지킀고 있습니닀. quarantine_key는 암혞처럌 생각하섞요. ꞎ 것읎 더 안전 할 수 있습니닀. 가장 횚곌적읞 사용법은delete_on_sight곌 핚께합니닀.
"quarantine_max_filesize" [string]
  • 격늬 된 파음 크Ʞ 제한. 읎 값볎닀 큰 파음은 격늬되지 않습니닀. 쿠였란팅의 용량을 쎈곌 비정상적윌로 큰 파음 크Ʞ 공격에서 메몚늬가 낭비되는 것을 방지하는 의믞에서 쀑요합니닀. Ʞ볞값은 2MB입니닀.
"quarantine_max_usage" [string]
  • 검역을 위핎 사용할 최대 메몚늬 량. 전첎 메몚늬 양읎 사용되멎읎 범위에 맞게 였래된 파음읎 삭제 대상읎됩니닀. 쿠였란팅의 용량을 쎈곌 비정상적윌로 큰 파음 크Ʞ 공격에서 메몚늬가 낭비되는 것을 방지하는 의믞에서 쀑요합니닀. Ʞ볞 섀정은 64MB입니닀.
"quarantine_max_files" [int]
  • 격늬에 졎재할 수있는 최대 파음 수입니닀. 격늬 저장소에 새 파음읎 추가되멎읎 수가 쎈곌되멎 나뚞지 파음읎 더 읎상읎 수륌 쎈곌하지 않을 때까지 였래된 파음읎 삭제됩니닀. Ʞ볞 섀정은 100입니닀.

"virustotal" (칎테고늬)

Virus Total 통합 섀정.

"vt_public_api_key" [string]
  • 옵션읎지만, phpMussel은 Virus Total API륌 사용하여 파음을 검색 할 수 있습니닀. 바읎러슀, 튞로읎 목마, 악성 윔드 및 Ʞ타 공격에 맀우 횚곌적윌로 작동합니닀. Ʞ볞적윌로 Virus Total API륌 사용한 슀캐닝은 비활성화되얎 있습니닀. 활성화하렀멎 Virus Total의 API 킀가 필요합니닀. 읎점읎 맀우 크Ʞ 때묞에 사용하는 것읎 좋습니닀. Virus Total API의 사용에 있얎서는 Virus Total 묞서에있는대로 읎용 규정 및 지칚을 쀀수하지 않윌멎 안됩니닀. 읎 통합 Ʞ능을 사용하Ʞ 위핎서는 : Virus Total와 API의 서비슀 규정을 읜고 동의핎알합니닀. 최소 Virus Total Public API 묞서의 전묞을 읜고 읎핎하여 (VirusTotalPublic API v2.0 읎후 Contents "윘텐잠"읎전까지).

또한볎십시였 :

"vt_suspicion_level" [int]
  • Ʞ볞 섀정은 phpMussel읎 Virus Total API륌 사용하여 슀캔 파음 (疑がわし 죌묌)에 제한읎 있습니닀. vt_suspicion_level 지시묞을 펞집 할 더, 읎 제한을 변겜할 수 있습니닀.
vt_suspicion_level
├─0 (휎늬슀틱 가쀑치가 있는 파음만 검사합니닀.): 휎늬슀틱 가쀑치가 발생하는 겜우에만 파음읎
│ 검색됩니닀. 감엌을 암시하지만 감엌을 볎장하지는 않는
│ 지묞을 포착하Ʞ 위한 서명에서 휎늬슀틱 가쀑치가
│ 발생할 수 있습니닀. 의심을 정당화하지만 확싀성을
│ 제공하지 않는 결곌의 겜우 검색을 통핎 두 번짞 의견을
│ 제공할 수 있습니닀.
├─1 (휎늬슀틱 가쀑치가 있는 파음, 싀행 파음, 및 잠재적윌로 싀행 가능 데읎터가 포핚된 파음을 검사합니닀.): 싀행 파음 및 잠재적윌로 싀행 데읎터륌 포핚하는 파음의
│ 예로는 Windows PE 파음, Linux ELF 파음, Mach-O 파음, DOCX 파음,
│ ZIP 파음, 등읎 있습니닀.
└─2 (몚든 파음을 슀캔합니닀.)
"vt_weighting" [int]
  • phpMussel읎 Virus Total API륌 사용한 슀캐닝 결곌륌 감지윌로 대우하거나, 검색 가쀑치로 췚꞉ 할 것읞가? 여러 엔진 (Virus Total처럌)을 사용한 슀캐닝은 검색 속도 향상 (더 많은 악성 윔드가 감지)을 가젞닀 한펾 였진의 슝가도 발생하므로읎 지시얎가 졎재합니닀. 따띌서 슀캐닝 결곌는 결정적읞 판닚읎 아니띌 신뢰 점수로 사용하는 것읎 적절한 겜우도 있습니닀. 값읎 0읎멎 Virus Total API륌 사용한 검색은 검색윌로 처늬되얎 Virus Total 엔진읎 악성 윔드 및 플래귞가 지정된 파음은 phpMussel도 악성 윔드로 판닚합니닀. 닀륞 값의 겜우 결곌는 검출 가쀑되고, 슀캔 된 파음읎 악성 윔드 여부 phpMussel가 결정하는 신뢰 점수 (또는 감지 가쀑치)입니닀 (값은 악성읎띌고 판닚하Ʞ위한 최소 신뢰 점수 또는 가쀑치). Ʞ볞값은 0입니닀.
"vt_quota_rate" [int]
  • Virus Total API 묞서에 따륎멎 "1 분간의 타임 프레임 사읎에 요청 최대 4 회" 의 제한읎 있습니닀. 허니 큎띌읎얞튞와 허니팟 등의 자동화륌 사용하여 늬포튞륌받을뿐만 아니띌 VirusTotal 자원을 제공하는 겜우, 상한은 올띌갑니닀. phpMussel Ʞ볞적윌로 최대 4 번을 쀀수하고 있습니닀 만, 위의 상황에서읎 두 디렉토늬륌 쀀비하고 상황에 맞게 변겜할 수 있도록되얎 있습니닀. 한계에 도달 버늬는 등의 불펞읎나 묞제가 없윌멎 Ʞ볞값을 변겜하는 것은 권장되지 않지만 값을 작게하는 것읎 적절한 겜우도 있습니닀. 상한은 시간 프레임vt_quota_time (분 낎에) vt_quota_rate로 섀정합니닀.
"vt_quota_time" [int]
  • (위의 섀명 ì°žì¡°).

"urlscanner" (칎테고늬)

URL 슀캐너 섀정.

"google_api_key" [string]
  • 필요한 API 킀가 정의되멎, API는 Google Safe Browsing API 조회가 활성화됩니닀.

또한볎십시였 :

"maximum_api_lookups" [int]
  • 슀캔 반복의 API 조회의 최대 수입니닀. API 조회 때마닀 슀캔 반복의 시간읎 쌓여 버늬므로, 슀캔 처늬 속도 향상을 위핎 제한을두고 싶닀고 생각할지도 몚늅니닀. 0은 제한 없음을 의믞합니닀. Ʞ볞값은 10입니닀.
"maximum_api_lookups_response" [bool]
  • API 조회 횟수 제한을 쎈곌했을 때의 대응입니닀. False = 아묎것도 / 처늬륌 계속한닀 (Default / Ʞ볞 섀정); True = 파음에 플래귞륌 지정 / 찚닚한닀.
"cache_time" [int]
  • API 조회의 결곌륌 얌마나 캐시할지 (쎈 닚위)? Ʞ볞값은 3600 쎈 (한 시간).

"legal" (칎테고늬)

법적 요구 사항 섀정.

"pseudonymise_ip_addresses" [bool]
  • 로귞 파음을 ì“ž 때 가명윌로 하닀 IP 죌소? True = 예 (Default / Ʞ볞 섀정); False = 아니였.
"privacy_policy" [string]
  • 생성 된 페읎지의 ꌬ늬말에 표시 할 ꎀ렚 개읞 정볎 정책 방칚의 죌소입니닀. URL 지정, 또는 사용하지 않윌렀멎 비워 두십시였.

"supplementary_cache_options" (칎테고늬)

볎충 캐시 옵션. 찞고 : 읎 값을 변겜하멎 잠재적윌로 로귞아웃될 수 있습니닀.

"prefix" [string]
  • 여Ʞ에 지정된 값은 몚든 캐시 항목 í‚€ 앞에 추가됩니닀. Default (Ʞ볞값) = "phpMussel_". 동음한 서버에 여러 섀치가 있는 겜우, 캐시륌 서로 분늬하여 유지하는 데 유용할 수 있습니닀.
"enable_apcu" [bool]
  • 캐싱에 APCu륌 사용할지 여부륌 지정합니닀. Default (Ʞ볞값) = True.
"enable_memcached" [bool]
  • 캐싱에 Memcached륌 사용할지 여부륌 지정합니닀. Default (Ʞ볞값) = False.
"enable_redis" [bool]
  • 캐싱에 Redis륌 사용할지 여부륌 지정합니닀. Default (Ʞ볞값) = False.
"enable_pdo" [bool]
  • 캐싱에 PDO륌 사용할지 여부륌 지정합니닀. Default (Ʞ볞값) = False.
"memcached_host" [string]
  • Memcached 혞슀튞 값. Default (Ʞ볞값) = "localhost".
"memcached_port" [int]
  • Memcached 포튞 값. Default (Ʞ볞값) = "11211".
"redis_host" [string]
  • Redis 혞슀튞 값. Default (Ʞ볞값) = "localhost".
"redis_port" [int]
  • Redis 포튞 값. Default (Ʞ볞값) = "6379".
"redis_timeout" [float]
  • Redis 시간 쎈곌 값. Default (Ʞ볞값) = "2.5".
"redis_database_number" [int]
  • Redis 데읎터베읎슀 번혞입니닀. Default (Ʞ볞값) = 0. 찞고 : Redis 큎러슀터에서는 0 읎왞의 값을 사용할 수 없습니닀.
"pdo_dsn" [string]
  • PDO DSN 값. Default (Ʞ볞값) = "mysql:dbname=phpmussel;host=localhost;port=3306".

자죌하는 질묞. "PDO DSN"은 묎엇입니까? phpMussel곌 핚께 PDO륌 사용하렀멎 얎떻게핎알합니까?

"pdo_username" [string]
  • PDO 사용자 읎늄.
"pdo_password" [string]
  • PDO 암혞.

"frontend" (칎테고늬)

프론튞 엔드 섀정.

"frontend_log" [string]
  • 프론튞 엔드 로귞읞 시도륌 Ʞ록하는 파음. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"max_login_attempts" [int]
  • 로귞읞 시도 최대 횟수입니닀 (프론튞 엔드). Default / Ʞ볞 섀정 = 5.
"numbers" [string]
  • 얎떻게 숫자륌 표시하는 것을 선혞합니까? 가장 정확한 것윌로 볎읎는 예제륌 선택하십시였.
numbers
├─Arabic-1 ("١٢٣ـ٥ي٧٫ٚ٩")
├─Arabic-2 ("١٬٢٣ـ٬٥ي٧٫ٚ٩")
├─Arabic-3 ("Û±Ù¬Û²Û³ÛŽÙ¬ÛµÛ¶Û·Ù«ÛžÛ¹")
├─Arabic-4 ("Û±Û²Ù¬Û³ÛŽÙ¬ÛµÛ¶Û·Ù«ÛžÛ¹")
├─Armenian ("Ռ̅Մ̅Ԍ̅ՏՇԿԷ")
├─Base-12 ("4b6547.a8")
├─Base-16 ("12d687.e3")
├─Bengali-1 ("১৚,৩৪,৫৬৭.৮৯")
├─Burmese-1 ("၁၂၃၄၅၆၇.၈၉")
├─China-1 ("123,4567.89")
├─Chinese-Simplified ("䞀癟二十䞉䞇四千五癟六十䞃点八九")
├─Chinese-Simplified-Financial ("壹䜰莰拟叁萬肆仟䌍䜰陆拟柒点捌玖")
├─Chinese-Traditional ("䞀癟二十䞉萬四千五癟六十䞃點八九")
├─Chinese-Traditional-Financial ("壹䜰貳拟叄萬肆仟䌍䜰陞拟柒點捌玖")
├─Fullwidth (".")
├─Hebrew ("א׳׳ב׳קג׳יד׳ךסז")
├─India-1 ("12,34,567.89")
├─India-2 ("१ग़,३४,५६७.८९")
├─India-3 ("૧૚,૩૪,૫૬૭.૮૯")
├─India-4 ("੧ਗ਼,੩੪,੫੬੭.੮੯")
├─India-5 ("೧೚,೩೪,೫೬೭.೮೯")
├─India-6 ("౧ౚ,౩౪,౫౬౭.౮౯")
├─Japanese ("癟䞇二十䞇䞉䞇四千五癟六十䞃・八九分")
├─Javanese ("꧑꧒꧓꧔꧕꧖꧗.꧘꧙")
├─Khmer-1 ("១.២៣ៀ.៥៊៧,៚៩")
├─Lao-1 ("໑໒໓໔໕໖໗.໘໙")
├─Latin-1 ("1,234,567.89")
├─Latin-2 ("1 234 567.89")
├─Latin-3 ("1.234.567,89")
├─Latin-4 ("1 234 567,89")
├─Latin-5 ("1,234,567·89")
├─Mayan ("𝋧𝋮𝋊𝋚𝋧.𝋱𝋰")
├─Mongolian ("᠑᠒᠓᠔᠕᠖᠗.᠘᠙")
├─NoSep-1 ("1234567.89")
├─NoSep-2 ("1234567,89")
├─Odia ("୧୚୩୪୫୬୭.୮୯")
├─Roman ("M̅C̅C̅X̅X̅X̅I̅V̅DLXVII")
├─SDN-Dwiggins ("4E6,547;X8")
├─SDN-Pitman ("4↋6,547;↊8")
├─Tamil ("௲௲௚௱௲௩௰௲௪௲௫௱௬௰௭")
├─Thai-1 ("๑,๒๓๔,๕๖๗.๘๙")
├─Thai-2 ("๑๒๓๔๕๖๗.๘๙")
└─Tibetan ("àŒ¡àŒ¢àŒ£àŒ€àŒ¥àŒŠàŒ§.àŒšàŒ©")
"default_algo" [string]
  • 향후 몚든 암혞와 섞션에 사용할 알고늬슘을 정의합니닀.
default_algo
├─PASSWORD_DEFAULT ("PASSWORD_DEFAULT")
├─PASSWORD_BCRYPT ("PASSWORD_BCRYPT")
├─PASSWORD_ARGON2I ("PASSWORD_ARGON2I")
└─PASSWORD_ARGON2ID ("PASSWORD_ARGON2ID (PHP >= 7.3.0)")
"theme" [string]
  • phpMussel 프론튞 엔드에 사용할 믞학.
theme
├─default ("Default")
├─bluemetal ("Blue Metal")
├─fullmoon ("Full Moon")
├─moss ("Moss")
├─primer ("Primer")
├─primerdark ("Primer Dark")
├─rbi ("Red-Blue Inverted")
├─slate ("Slate")
└─ 닀륞
"magnification" [float]
  • Ꞁꌎ 배윚. Default (Ʞ볞 섀정) = 1.
"custom_header" [string]
  • 몚든 프런튾 엔드 페읎지의 맚 처음에 HTML로 삜입됩니닀. 웹사읎튞 로고, 개읞화된 헀더, 슀크늜튞, 등에 유용합니닀.
"custom_footer" [string]
  • 몚든 프런튾 엔드 페읎지의 맚 아래에 HTML로 삜입됩니닀. 법적 고지, 연띜처 링크, 비슈니슀 정볎, 등에 유용합니닀.

"web" (칎테고늬)

업로드 핞듀러 섀정.

"uploads_log" [string]
  • 찚닚된 몚든 업로드륌 Ʞ록핎알 하는 위치. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"forbid_on_block" [bool]
  • 업로드 파음읎 ì°šë‹š 된 메시지와 핚께 phpMussel에서 403 헀더륌 볎낎알하거나 음반 200 좋은지에 대핮. False = 아니였 (200); True = 예 (403) [Default / Ʞ볞 섀정].
"unsupported_media_type_header" [bool]
  • 랔랙늬슀튞 파음 형식윌로 읞핎 업로드가 찚닚되멎 phpMussel읎 415 헀더륌 볎낎알 합니까? True읎멎읎 섀정읎 forbid_on_block륌 대첎합니닀. False = 아니였 [Default / Ʞ볞 섀정]; True = 예.
"max_uploads" [int]
  • 한 번에 슀캔 할 수있는 업로드 파음 수 제한윌로읎륌 쎈곌하멎 슀캔을 쀑닚하고 사용자에게 ê·ž 사싀을 알늬고 녌늬적 공격윌로부터 볎혞 역할을합니닀. 시슀템곌 CMS가 DDoS 공격을 만나 phpMussel가 였버로드하여 PHP 프로섞슀에 지장을 쎈래하는 음읎 없도록하Ʞ 위핎서입니닀. 권장 수는 10읎지만, 하드웚얎의 속도에 따띌 더 읎상 / 읎하읎 좋은 것도있을 것입니닀. 읎 숫자는 아칎읎람의 낎용을 포핚하지 않는 것을 Ʞ억하십시였.
"ignore_upload_errors" [bool]
  • 시슀템에서 phpMussel의 Ʞ능에 수정읎 필요한 겜우가 아니멎읎 지시묞은 음반적윌로 사용할 수 없습니닀. 비활성화하멎 $_FILES array()요소륌 감지했을 때, ê·ž 요소가 나타낮는 파음의 슀캔읎 시작됩니닀, 요소가 비얎 있거나없는 겜우 phpMussel는 였류 메시지륌 반환합니닀. 읎것은 볞래 phpMussel가 있얎알 할 몚습입니닀. 귞러나 CMS에서는 $_FILES 하늘 요소는 음반적윌로 발생하는 것읎며, 정상적읞 phpMussel의 행동읎 정상적읞 CMS의 거동을 저핎 할 우렀가 있습니닀. 읎러한 겜우에는 볞 옵션을 사용하여 phpMussel 빈 요소륌 검사하고 였류 메시지륌 반환을 플하고 요청한 페읎지로 원활하게 진행할 수 있도록합니닀. False = OFF (핎제입니닀); True = ON (옚입니닀).
"theme" [string]
  • "업로드 거부"페읎지에 사용할 믞학.
theme
├─default ("Default")
├─bluemetal ("Blue Metal")
├─fullmoon ("Full Moon")
├─moss ("Moss")
├─primer ("Primer")
├─primerdark ("Primer Dark")
├─rbi ("Red-Blue Inverted")
├─slate ("Slate")
└─ 닀륞
"magnification" [float]
  • Ꞁꌎ 배윚. Default (Ʞ볞 섀정) = 1.
"custom_header" [string]
  • 몚든 "업로드 거부" 페읎지의 맚 처음에 HTML로 삜입됩니닀. 웹사읎튞 로고, 개읞화된 헀더, 슀크늜튞, 등에 유용합니닀.
"custom_footer" [string]
  • 몚든 "업로드 거부" 페읎지 맚 아래에 HTML로 삜입됩니닀. 법적 고지, 연띜처 링크, 비슈니슀 정볎, 등에 유용합니닀.

"phpmailer" (칎테고늬)

PHPMailer 섀정 (읎쀑 읞슝 및 읎메음 알늌에 사용됩니닀).

"event_log" [string]
  • PHPMailer와 ꎀ렚된 몚든 읎벀튞륌 Ʞ록하는 파음입니닀. 파음 읎늄을 지정하십시였. 비활성화하렀멎 비워 둡니닀.

유용한 팁 : 시간 형식 자늬 표시자륌 사용하여 로귞 파음 읎늄에 날짜/시간 정볎륌 첚부할 수 있습니닀. 사용 가능한 시간 형식 자늬 표시자는 {{Links.ConfigRef.time_format}}에 표시됩니닀.

"enable_two_factor" [bool]
  • 읎 지시묞은 프런튾 엔드 계정에 2FA륌 사용할지 여부륌 결정합니닀.
"enable_notifications" [string]
  • 업로드가 찚닚될 때 읎메음로 알늌을 받윌렀멎, 여Ʞ에서 수신자 읎메음 죌소륌 지정하십시였.
"skip_auth_process" [bool]
  • true 음 때, PHPMailer는 전자 메음 전송을위한 SMTP 읞슝 프로섞슀륌 걎너 뛰도록 지시합니닀. 읎 프로섞슀륌 걎너 ë›°ë©Ž 아웃 바욎드 전자 메음읎 MITM 공격에 녞출 될 수 있윌므로 플핎알합니닀. 특정 겜우에 필요할 수 있음 (예 : PHPMailer가 SMTP 서버에 제대로 연결할 수없는 겜우).
"host" [string]
  • 아웃 바욎드 전자 메음에 사용할 SMTP 혞슀튞입니닀.
"port" [int]
  • 아웃 바욎드 읎메음에 사용할 포튞 번혞입니닀. Default (Ʞ볞 섀정) = 587.
"smtp_secure" [string]
  • SMTP륌 통핎 읎메음을 볎낌 때 사용할 프로토윜 (TLS 또는 SSL).
smtp_secure
├─default ("-")
├─tls ("TLS")
└─ssl ("SSL")
"smtp_auth" [bool]
  • 읎 지시묞은 SMTP 섞션을 읞슝할지 여부륌 결정합니닀 (볎통 읎것을 묎시핎알합니닀).
"username" [string]
  • SMTP륌 통핎 읎메음을 볎낌 때 사용할 사용자 읎늄입니닀.
"password" [string]
  • SMTP륌 통핎 읎메음을 볎낌 때 사용할 비밀번혞입니닀.
"set_from_address" [string]
  • SMTP륌 통핎 전자 메음을 볎낌 때 읞용 할 볎낞 사람 죌소입니닀.
"set_from_name" [string]
  • SMTP륌 통핎 전자 메음을 볎낌 때 읞용 할 볎낞 사람 읎늄입니닀.
"add_reply_to_address" [string]
  • SMTP륌 통핎 전자 메음을 볎낌 때 읞용 할 회신 죌소입니닀.
"add_reply_to_name" [string]
  • SMTP륌 통핎 읎메음을 볎낌 때 읞용 할 회신 읎늄입니닀.

6. 서명 형식

찞조 :

phpMussel 서명 파음의 첫 번짞 9 바읎튞 [x0-x8] 는phpMussel읎며, "맀직 넘버" (magic number)로 Ʞ능합니닀 (귞듀을 서명 파음로 식별하Ʞ 위핎). 서명 파음읎 아닌 파음을 잘못 사용하는 것을 방지 할 수 있습니닀. 닀음 바읎튞는 [x9] 서명 파음의 유형을 식별합니닀. 서명 파음을 올바륎게 핎석 할 수 있도록하Ʞ 위핎 읎것을 알고 있얎알합니닀. 닀음 유형의 서명 파음읎 읞식됩니닀.

유형 바읎튞 섀명
General_Command_Detections 0? CSV (쉌표로 구분 된 값)의 서명 파음. 서명은 16 진수로 읞윔딩 된 묞자엎입니닀. 여Ʞ 서명에는 읎늄 및 Ʞ타 섞부 사항은 없습니닀 (검색 묞자엎 만).
Filename 1? 파음 읎늄의 서명.
Hash 2? í•Žì‹œ 서명.
Standard 3? 파음 낎용에서 직접 욎영하는 서명 파음.
Standard_RegEx 4? 파음 낎용에서 직접 욎영하는 서명 파음. 서명에 정규 표현식을 포핚 할 수 있습니닀.
Normalised 5? ANSI 표쀀화 된 파음 낎용에서 작동하는 서명 파음.
Normalised_RegEx 6? ANSI 표쀀화 된 파음 낎용에서 작동하는 서명 파음. 서명에 정규 표현식을 포핚 할 수 있습니닀.
HTML 7? HTML 표쀀화 된 파음 낎용에서 작동하는 서명 파음.
HTML_RegEx 8? HTML 표쀀화 된 파음 낎용에서 작동하는 서명 파음. 서명에 정규 표현식을 포핚 할 수 있습니닀.
PE_Extended 9? PE 메타 데읎터에서 작동하는 서명 파음 (PE 섹션 메타 데읎터는 사용할 수 없습니닀).
PE_Sectional A? PE 섹션 메타 데읎터에서 작동하는 서명 파음.
Complex_Extended B? phpMussel 의핎 생성 된 확장 메타 데읎터륌 Ʞ반윌로 닀양한 규칙에서 동작하는 서명 파음.
URL_Scanner C? URL에서 작동하는 서명 파음.

닀음 바읎튞는 [x10] 개행읎며 [0A], phpMussel 서명 파음의 헀더륌 끝냅니닀.

읎후 각 비얎 있지 않은 행은 서명 또는 규칙입니닀. 각 서명 또는 규칙은 한 쀄을 찚지합니닀. 지원되는 서명 형식은 닀음곌 같습니닀.

파음 읎늄 서명

파음 읎늄 서명의 형식은 예왞없읎 닀음곌 같읎됩니닀.

NAME:FNRX

NAME은 ê·ž 서명을 가늬킀는 읎늄윌로 FNRX은 파음 읎늄 (읞윔딩되지 않은)에 음치하는 정규식 팚턎입니닀.

í•Žì‹œ 서명

í•Žì‹œ 서명의 형식은 예왞없읎 닀음곌 같읎됩니닀.

HASH:FILESIZE:NAME

HASH는 몚든 파음의 í•Žì‹œ (볎통 MD5), FILESIZE 파음의 전첎 크Ʞ, NAME은 ê·ž 서명을 가늬킀는 읎늄입니닀.

PE 섹션 셔널 서명

PE 섹션 셔널 서명의 형식은 예왞없읎 닀음곌 같읎됩니닀.

SIZE:HASH:NAME

HASH는 PE 파음읎있는 부분의 MD5 í•Žì‹œ, SIZE는 ê·ž 부분의 전첎 크Ʞ, NAME은 서명을 가늬킀는 읎늄입니닀.

PE 확장 서명

PE 확장 서명의 형식은 예왞없읎 닀음곌 같읎됩니닀.

$VAR:HASH:SIZE:NAME

$VAR는 음치하는 PE 변수의 읎늄, HASH은 ê·ž 변수의 MD5 í•Žì‹œ 크Ʞ는 변수의 전첎 크Ʞ, NAME은 ê·ž 서명을 가늬킀는 읎늄입니닀.

복합 확장 서명

복합 확장 서명은 닀륞 시귞니처와는 조ꞈ 달늬 묎엇에 적합한 지 귞것읎 자신의 서명에 의핎 결정 Ʞ쀀은 하나가 아닙니닀. 적합 Ʞ쀀은 ";"은 적합 타입 적합 데읎터는 ":"에 따늅니닀. 따띌서 형식은 $variable1 : ì–Žë–€ 데읎터; $variable2 : SOMEDATA; ì–Žë–€ 데읎터 수 있습니닀.

$variable1:SOMEDATA;$variable2:SOMEDATA;SignatureName

Ʞ타

Ʞ타 서명 형식입니닀.

NAME:HEX:FROM:TO

NAME은 ê·ž 서명을 가늬킀는 읎늄, HEX는 죌얎진 서명에 의핎 적합을 볎는 파음의 16 진수로 읞윔딩 된 섞귞뚌튞입니닀. FROM곌 TO는 옵션 맀개 변수 데읎터 소슀 얎디서부터 얎디까지 확읞 여부륌 나타냅니닀 (메음 Ʞ능은 지원하지 않습니닀).

정규 표현식

PHP는 정규 표현식 판당 처늬하는 형식읎멎 phpMussel곌 서명에 의핎 확싀히 처늬됩니닀. 귞러나 만앜을 위핎 서명을 Ʞ쎈로하는 정규 표현식을 새로 만듀렀멎 섞심한죌의륌 Ʞ욞읎십시였. 절대적읞 자신읎없는 상황에서는 생각도 못한 였류가 발생 될 수 있습니닀. 정규식 구묞읎 쀀비되얎 묞맥을 완전히 읎핎하지 않는닀멎 phpMussel 윔드륌 볎띌. 팚턎은 몚든 (파음 읎늄 아칎읎람 메타 데읎터의 MD5 팹턮 제왞) 16 진수로 읞윔딩되얎알한닀는 점에죌의 (위의 팹턮 구묞도)입니닀!


7. 알렀진 혞환성 묞제

안티 바읎러슀 소프튞웚얎와의 혞환성

phpMussel곌 음부 안티바읎러슀 공꞉ 업첎 간의 혞환성 묞제는 곌거에 가끔 발생하는 것윌로 알렀젞 있습니닀. 따띌서 대략 몇 개월마닀, ë‚Žê°€ Virus Total곌 비교하여 최신 버전의 phpMussel 윔드 베읎슀륌 확읞합니닀, 묞제가볎고되는지 확읞하Ʞ 위핎. 묞제가볎고 된 겜우 볎고 된 묞제는 여Ʞ 묞서에 나엎되얎 있습니닀.

가장 최귌에 확읞했을 때 (2022년 5월 12음) 아묎런 묞제 가볎고되지 않았습니닀.

나는 서명 파음, 섀명서 또는 Ʞ타 죌변 장치 낎용을 확읞하지 않습니닀. 시귞너처 파음은 닀륞 안티 바읎러슀 솔룚션읎 탐지 할 때 항상 였 탐지륌 유발합니닀. 따띌서 닀륞 안티 바읎러슀 솔룚션읎 읎믞 졎재하는 뚞신에 phpMussel을 섀치하렀는 겜우, phpMussel 서명 파음을 허용 목록에 추가하는 것읎 좋습니닀.

찞조 : 혞환성 찚튞.


8. 자죌 묻는 질묞 (FAQ)

"서명"읎란 묎엇입니까?

phpMussel의 맥띜에서, "서명" 읎띌 핚은 우늬가 찟고있는 것을 식별하는 데읎터륌 의믞합니닀 (바읎러슀, 튞로읎 목마, 등). 읎 데읎터는 음반적윌로 파음의 첎크섬 í•Žì‹œ 또는 Ʞ타 유사한 식별 표시합니닀. 음반적윌로 띌벚읎나 추가 컚텍슀튞륌 제공하Ʞ위한 Ʞ타 데읎터가 포핚되얎 있습니닀.

"거짓 양성"는 묎엇입니까?

음반화 된 상황에서 쉜게 섀명 조걎의 상태륌 테슀튞 할 때 결곌륌 ì°žì¡° 할 목적윌로 ìš©ì–Ž "거짓 양성"의 (또는 : 위양성의 였류, 허위 볎도; 영얎 : false positive; false positive error; false alarm) 의믞는 결곌는 "양성"의 것, 귞러나 결곌는 싀수 (슉, 진싀의 조걎은 "양성/진싀"로 간죌됩니닀, 귞러나 정말 "음성/거짓"입니닀). "거짓 양성"는 "우는 늑대"와 유사하닀고 생각할 수 있습니닀 (ê·ž 상태는 êµ° 귌처에 늑대가 있는지 여부읎닀, 진싀 조걎은 "거짓/음성"입니닀 묎늬의 가까읎에 늑대가 없Ʞ 때묞입니닀하지만 조걎은 "진싀/양성"로볎고됩니닀 목자가 "늑대! 늑대!"륌 왞쳀닀 때묞입니닀) 또는 의료 검사와 유사 환자가 잘못 진닚 된 겜우.

몇 가지 ꎀ렚 용얎는 "진싀 양성", "진싀 음성"와 "거짓 음성"입니닀. 읎러한 ìš©ì–Žê°€ 나타낮는 의믞 : "진싀 양성"의 의믞는 테슀튞 결곌와 진싀 조걎읎 진싀입니닀 (슉, "양성"입니닀). "진싀 음성"의 의믞는 테슀튞 결곌와 진싀 조걎읎 거짓 (슉, "음성"입니닀). "진싀 양성"곌 "진싀 음성"는 "올바륞 추론"로 간죌됩니닀. "거짓 양성"의 반대는 "거짓 음성"입니닀. "거짓 음성"의 의믞는 테슀튞 결곌가 거짓입니닀 (슉, "음성"입니닀) 하지만 진싀의 조걎읎 정말 진싀입니닀 (슉, "양성"입니닀); 두 테슀튞 결곌와 진싀 읞 조걎읎 "진싀/양성" 핎알한닀 것입니닀.

phpMussel의 맥띜에서 읎러한 용얎는 phpMussel 서명곌 귞듀읎 ì°šë‹š 된 파음을 말합니닀. phpMussel가 싀수로 파음을 찚닚하멎 (예륌 듀얎, 부정확 한 서명, 구식의 서명 등에 의한), 우늬는읎 읎벀튞 "틀며 확싀성"을 혞출합니닀. phpMussel읎 파음을 ì°šë‹ší•  수없는 겜우 (예륌 듀얎, 예상치 못한 위협 서명 누띜 등윌로 읞한), 우늬는읎 읎벀튞 "부재 감지"륌 혞출합니닀 ("위음성"의 아날로귞입니닀).

읎것은 닀음 표에 요앜 할 수 있습니닀.

  phpMussel은 파음을 ì°šë‹š 필요가 없습니닀 phpMussel은 파음을 찚닚핎알합니닀
phpMussel은 파음을 찚닚하지 않습니닀 진정한 넀거티람 (올바륞 추론) 부재 검출 (귞것은 "위음성"와 같습니닀)
phpMussel은 파음을 찚닚합니닀 위양성 진정한 양성 (올바륞 추론)

서명은 얌마나 자죌 업데읎튞됩니까?

업 데읎튞 빈도는 서명 파음에 따띌 닀늅니닀. phpMussel 서명 파음의 몚든 메읞테읎너가 자죌 업 데읎튞륌 시도하지만, 우늬의 여러분에게는 ê·ž 밖에도 닀양한 녞력읎있얎, 우늬는 프로젝튞 왞부에서 생활하고 있윌며, 아묎도 재정적윌로 볎상되지 않는, 따띌서 정확한 업 데읎튞 음정은 볎장되지 않습니닀. 음반적윌로 충분한 시간읎 있윌멎 서명읎 업 데읎튞됩니닀. 당신읎 뭔가륌 제공 할 수 있닀멎, 원조는 항상 높게 평가됩니닀.

phpMussel을 사용하는 데 묞제가 발생했지만 묎엇을 핎알할지 몚륎겠얎요! 도와죌섞요!

  • 당신은 최신 소프튞웚얎 버전을 사용하고 있습니까? 당신은 최신 서명 파음 버전을 사용하고 있습니까? 귞렇지 않은 겜우, 뚌저 업 데읎튞하십시였. 묞제가 핎결되지 여부륌 확읞하십시였. 귞것읎 계속되멎 읜얎볎십시였.
  • 당신은 묞서륌 확읞 했습니까? 만앜 귞렇지 않윌멎, 귞렇지하십시였. 묞서륌 사용하여 묞제륌 í•Žê²°í•  수없는 겜우, 계속 읜얎볎십시였.
  • 읎슈 페읎지륌 확읞 했습니까? 묞제가 읎전에 얞꞉되얎 있는지 확읞하십시였. 제안, 아읎디얎, 솔룚션읎 제공되었는지 여부륌 확읞하십시였.
  • 묞제가 핎결되지 않윌멎 알렀 죌시Ʞ 바랍니닀. 읎슈 페읎지에서 토론을 찜조한닀.

7.2.0볎닀 였래된 PHP 버전에서 phpMussel v3을 사용하고 싶습니닀; 도욞 수 있니?

아니였. PHP >= 7.2.0은 phpMussel v3의 최소 요구 사항입니닀.

찞조 : 혞환성 찚튞.

닚음 phpMussel 섀치륌 사용하여 여러 도메읞을 볎혞 할 수 있습니까?

예.

나는 읎것을 섀치하거나 귞것읎 낮 웹 사읎튞상에서 동작하는 것을 볎장하는 시간을 볎낎고, 하고 싶지 않아; 귞것을 할 수 있습니까? 나는 당신을 고용 할 수 있습니까?

아마. 읎는 사례별로 검토되고 있습니닀. 당신의 요구로 제공할 수 있는 것을 가륎쳐죌섞요. 우늬가 도욞 수 있는지륌 가륎쳐죌고 있습니닀.

당신 또는 읎 프로젝튞의 몚든 개발자는 고용 가능합니까?

위륌 찞조하십시였.

나는 전묞가의 변겜 및 사용자 맞춀형 등읎 필요합니닀; 도욞 수 있니?

위륌 찞조하십시였.

나는 개발자, 웹 사읎튞 디자읎너, 또는 프로귞래뚞입니닀. 읎 프로젝튞 ꎀ렚 작업을 할 수 있습니까?

예. 우늬의 띌읎섌슀는읎륌 ꞈ지하지 않습니닀.

나는 프로젝튞에 공헌하고 싶닀; 읎것은 수 있습니까?

예. 프로젝튞에 êž°ì—¬ 환영합니닀. 자섞한 낎용은 "CONTRIBUTING.md"륌 찞조하십시였.

파음을 검사할 때 파음에 대한 특정 섞부 정볎에 액섞슀하는 방법은 묎엇읞가요?

읎것은 phpMussel 귞듀을 검사하도록 지시하Ʞ 전 에읎 목적을 위핎 사용하는 배엎을 할당하여 수행할 수 있습니닀.

닀음 예제에서는읎 목적을 위핎 $Foo 가 할당되얎 있습니닀. /파음/겜로/... 륌 슀캔 한 후 /파음/겜로/... 파음에 대한 정볎는 $Foo 에 있습니닀.

<?php
$Loader = new \phpMussel\Core\Loader();
$Scanner = new \phpMussel\Core\Scanner($Loader);

$Scanner->setScanDebugArray($Foo);

$Results = $Scanner->scan('/파음/겜로/...');

var_dump($Foo);

배엎은 닀찚원입니닀. 요소는 검사되는 각 파음을 나타냅니닀. 하위 요소는 읎러한 파음의 낎용을 나타냅니닀. 하위 요소는 닀음곌 같습니닀.

  • Filename (string)
  • FromCache (bool)
  • Depth (int)
  • Size (int)
  • MD5 (string)
  • SHA1 (string)
  • SHA256 (string)
  • CRC32B (string)
  • 2CC (string)
  • 4CC (string)
  • ScanPhase (string)
  • Container (string)
  • † FileSwitch (string)
  • † Is_ELF (bool)
  • † Is_Graphics (bool)
  • † Is_HTML (bool)
  • † Is_Email (bool)
  • † Is_MachO (bool)
  • † Is_PDF (bool)
  • † Is_SWF (bool)
  • † Is_PE (bool)
  • † Is_Not_HTML (bool)
  • † Is_Not_PHP (bool)
  • ‡ NumOfSections (int)
  • ‡ PEFileDescription (string)
  • ‡ PEFileVersion (string)
  • ‡ PEProductName (string)
  • ‡ PEProductVersion (string)
  • ‡ PECopyright (string)
  • ‡ PEOriginalFilename (string)
  • ‡ PECompanyName (string)
  • Results (int)
  • Output (string)

† - 캐시 된 결곌는 제공되지 않습니닀 (새로욎 검색 결곌 만 제공됩니닀).

‡ - PE 파음을 슀캔하는 겜우에만 제공됩니닀.

필요한 겜우, 읎 배엎은 닀음을 사용하여 삭제합니닀.

$Scanner->destroyScanDebugArray($Foo);

랔랙늬슀튞 – 화읎튞늬슀튞 – 귞레읎늬슀튞 – 귞듀은 묎엇읎며 얎떻게 사용합니까?

용얎는 닀륞 맥띜에서 닀륞 의믞륌 전달합니닀. phpMussel에는, 읎러한 ìš©ì–Žê°€ 사용되는 ì„ž 가지 상황읎 있습니닀 : 파음 크Ʞ 응답, 파음 형식 응답, 및 서명 귞레읎늬슀튞.

최소한의 처늬 비용윌로 원하는 결곌륌 얻윌렀멎, phpMussel읎 파음을 싀제로 슀캔하Ʞ 전에 확읞할 수있는 ê°„ë‹ší•œ 방법읎 몇 가지 있습니닀 (예륌 듀얎, 파음의 크Ʞ, 읎늄, 및 확장자). 예륌 듀얎; 파음읎 너묎 큰 겜우 또는 확장자가 우늬의 웹 사읎튞에 허용하지 않윌렀는 파음 유형을 나타낮는 겜우, 슉시 파음에 플래귞륌 ì„žìšž 수 있윌며, 슀캔 할 필요가 없습니닀.

파음 크Ʞ 응답 파음읎 지정된 제한을 쎈곌하멎 phpMussel가 응답하는 방법입니닀. 싀제 목록은 포핚되지 않지만, 파음은 ê·ž 크Ʞ에 따띌 횚곌적윌로 랔랙늬슀튞에있는 화읎튞늬슀튞에있는 또는 귞레읎늬슀튞에 있닀고 생각합니닀. 한계와 원하는 응답을 각각 지정하는 두 개의 별개의 구성 지시묞읎 있습니닀.

파음 유형의 응답은 phpMussel 파음 확장명에 응답하는 방법입니닀. ì–Žë–€ 확장자가 ì–Žë–€ 목록에 있얎알하는지 명시 적윌로 지정하는 ì„ž 가지 별개의 구성 지시묞읎 있습니닀. 확장자가 지정된 확장자와 각각 음치하멎 파음읎 횚곌적윌로 나엎된 것윌로 간죌 될 수 있습니닀.

읎 두 컚텍슀튞는 화읎튞늬슀튞에있는 슀캔 또는 플래귞 지정핎서는 없닀는 것을 의믞합니닀, 랔랙늬슀튞에있는 플래귞 지정핎알합니닀 것을 의믞합니닀 (따띌서 슀캔핎알 아니닀) 귞늬고, 귞레읎늬슀튞에있는 플래귞륌 ì„žìšž 필요가 있는지 여부륌 판닚하Ʞ 위핎 추가 분석읎 필요합니닀 것을 의믞합니닀 (따띌서 슀캔핎알합니닀).

서명 귞레읎늬슀튞는 볞질적윌로 묎시핎서는 시귞니처 목록입니닀 (읎 낎용은 위의 묞서에서 쉜게 섀명하고 있습니닀). 서명은 회색 목록에 서명읎 튞늬거되멎 phpMussel ë‚Žê°€ 음을 계속 회색 목록에 서명 ꎀ하여 특별한 조치륌 췚하지 않습니닀. 묎얞의 동작은 튞늬거 된 서명의 정상적읞 작동읎Ʞ 때묞에 시귞니처 랔랙늬슀튞가 없습니닀. 읎러한 맥띜에서 필요하지 ì•Šêž° 때묞에 서명 화읎튞늬슀튞가 없습니닀.

서명 파음 전첎륌 비활성화하거나 제거하지 않고 특정 서명에 의핎 발생한 묞제륌 핎결핎알하는 겜우 서명 귞레읎늬슀튞가 도움읎됩니닀.

"PDO DSN"은 묎엇입니까? phpMussel곌 핚께 PDO륌 사용하렀멎 얎떻게핎알합니까?

"PDO"는 "PHP Data Objects"의 앜얎입니닀 (PHP 데읎터 객첎). PHP가 닀양한 PHP 응용 프로귞랚에서 음반적윌로 사용하는 음부 데읎터베읎슀 시슀템에 연결할 수 있도록 읞터페읎슀륌 제공합니닀.

"DSN"은 "data source name"의 앜얎입니닀 (데읎터 소슀 읎늄). "PDO DSN"은 PDO가 데읎터베읎슀에 연결하는 방법을 섀명합니닀.

phpMussel은 캐싱 목적윌로 PDO 을 활용할 수 있는 옵션을 제공합니. 읎 Ʞ능읎 제대로 작동하렀멎, phpMussel을 적절히 구성하고 (따띌서 PDO륌 사용하도록 섀정), 사용할 phpMussel 용 데읎터베읎슀륌 새로 작성하고 (phpMussel 용 데읎터베읎슀륌 아직 엌두에 두지 않은 겜우), 귞런 아래 섀명된 구조에 따띌 데읎터베읎슀에 새 테읎랔을 작성하십시였.

데읎터베읎슀 연결읎 성공한 겜우, 귞러나 필요한 테읎랔읎 졎재하지 않습니닀, 자동 생성읎 시도됩니닀. 귞러나 읎 동작은 ꎑ범위하게 테슀튞 되지 않았윌며 성공을 볎장할 수 없습니닀.

묌론 읎것은 싀제로 phpMussel읎 PDO 을 사용하도록 하렀는 겜우에만 적용됩니닀. 플랫 파음 캐싱 (Ʞ볞 구성에 따띌) 또는 제공된 닀양한 캐싱 옵션을 사용하Ʞ에 충분하닀멎, 데읎터베읎슀, 테읎랔 등을 섀정하는 데 얎렀움을 겪을 필요가 없습니닀.

아래 섀명된 구조는 "phpmussel"을 데읎터베읎슀 읎늄윌로 사용하지만, DSN 구성에 동음한 읎늄읎 복제되는 한 데읎터베읎슀에 원하는 읎늄을 사용할 수 있습니닀.

╔══════════════════════════════════════════════╗
║ DATABASE "phpmussel"                         ║
║ │╔═══════════════════════════════════════════╩═════╗
║ └╫─TABLE "Cache" (UTF-8)                           ║
║  ╠═╪═FIELD══CHARSET═DATATYPE═════KEY══NULL═DEFAULT═╣
║  ║ ├─"Key"──UTF-8───VARCHAR(128)─PRI──×────×       ║
║  ║ ├─"Data"─UTF-8───TEXT─────────×────×────×       ║
╚══╣ └─"Time"─×───────INT(>=10)────×────×────×       ║
   ╚═════════════════════════════════════════════════╝

phpMussel의 pdo_dsn 섀정 지시얎는 아래와 같읎 섀정핎알합니닀.

사용되는 데읎터베읎슀 드띌읎버에 따띌...
├─4d (겜고 : 싀험적, 테슀튞 되지 않은, 권장하지 않음!)
│ │
│ │         ╔═══════╗
│ └─4D:host=localhost;charset=UTF-8
│           ╚╀══════╝
│            └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.
├─cubrid
│ │
│ │             ╔═══════╗      ╔═══╗        ╔═════╗
│ └─cubrid:host=localhost;port=33000;dbname=example
│               ╚╀══════╝      ╚╀══╝        ╚╀════╝
│                │              │            └사용할 데읎터베읎슀의 읎늄입니닀.
│                │              │
│                │              └혞슀튞에 연결할 포튞 번혞입니닀.
│                │
│                └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.
├─dblib
│ │
│ │ ╔═══╗      ╔═══════╗        ╔═════╗
│ └─dblib:host=localhost;dbname=example
│   ╚╀══╝      ╚╀══════╝        ╚╀════╝
│    │          │                └사용할 데읎터베읎슀의 읎늄입니닀.
│    │          │
│    │          └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.
│    │
│    └가능한 값 : "mssql", "sybase", "dblib".
├─firebird
│ │
│ │                 ╔═══════════════════╗
│ └─firebird:dbname=/path/to/database.fdb
│                   ╚╀══════════════════╝
│                    ├로컬 데읎터베읎슀 파음의 겜로음 수 있습니닀.
│                    │
│                    ├혞슀튞 및 포튞 번혞와 연결할 수 있습니닀.
│                    │
│                    └읎것을 사용하렀멎 Firebird 섀명서륌 찞조하십시였.
├─ibm
│ │
│ │         ╔═════╗
│ └─ibm:DSN=example
│           ╚╀════╝
│            └연결할 칎탈로귞 된 데읎터베읎슀입니닀.
├─informix
│ │
│ │              ╔═════╗
│ └─informix:DSN=example
│                ╚╀════╝
│                 └연결할 칎탈로귞 된 데읎터베읎슀입니닀.
├─mysql (가장 추천!)
│ │
│ │              ╔═════╗      ╔═══════╗      ╔══╗
│ └─mysql:dbname=example;host=localhost;port=3306
│                ╚╀════╝      ╚╀══════╝      ╚╀═╝
│                 │            │              └혞슀튞에 연결할 포튞 번혞입니닀.
│                 │            │
│                 │            └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.
│                 │
│                 └사용할 데읎터베읎슀의 읎늄입니닀.
├─oci
│ │
│ │            ╔═════╗
│ └─oci:dbname=example
│              ╚╀════╝
│               ├칎탈로귞 된 특정 데읎터베읎슀륌 ì°žì¡° 할 수 있습니닀.
│               │
│               ├혞슀튞 및 포튞 번혞와 연결할 수 있습니닀.
│               │
│               └읎것을 사용하렀멎 Oracle 섀명서륌 찞조하십시였.
├─odbc
│ │
│ │      ╔═════╗
│ └─odbc:example
│        ╚╀════╝
│         ├칎탈로귞 된 특정 데읎터베읎슀륌 ì°žì¡° 할 수 있습니닀.
│         │
│         ├혞슀튞 및 포튞 번혞와 연결할 수 있습니닀.
│         │
│         └읎것을 사용하렀멎 ODBC/DB2 섀명서륌 찞조하십시였.
├─pgsql
│ │
│ │            ╔═══════╗      ╔══╗        ╔═════╗
│ └─pgsql:host=localhost;port=5432;dbname=example
│              ╚╀══════╝      ╚╀═╝        ╚╀════╝
│               │              │           └사용할 데읎터베읎슀의 읎늄입니닀.
│               │              │
│               │              └혞슀튞에 연결할 포튞 번혞입니닀.
│               │
│               └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.
├─sqlite
│ │
│ │        ╔════════╗
│ └─sqlite:example.db
│          ╚╀═══════╝
│           └사용할 로컬 데읎터베읎슀 파음의 겜로입니닀.
└─sqlsrv
  │
  │               ╔═══════╗ ╔══╗          ╔═════╗
  └─sqlsrv:Server=localhost,1521;Database=example
                  ╚╀══════╝ ╚╀═╝          ╚╀════╝
                   │         │             └사용할 데읎터베읎슀의 읎늄입니닀.
                   │         │
                   │         └혞슀튞에 연결할 포튞 번혞입니닀.
                   │
                   └데읎터베읎슀륌 ì°Ÿêž° 위핎 연결할 혞슀튞입니닀.

DSN의 특정 부분에 묎엇을 사용핎알할지 확싀하지 않은 겜우, 아묎것도 변겜하지 않고 귞대로 작동하는지 뚌저 확읞하십시였.

pdo_username 및 pdo_password 는 데읎터베읎슀에 대핮 선택한 사용자 읎늄 및 비밀번혞와 같아알합니닀.

낮 업로드 Ʞ능읎 비동Ʞ입니닀 (예륌 듀얎, ajax, ajaj, json 등을 사용합니닀). 업로드가 찚닚되멎 특별한 메시지 나 겜고가 표시되지 않습니닀. 묎슚 음읎알?

읎것은 정상입니닀. phpMussel의 표쀀 "업로드 거부"페읎지는 HTML로 제공됩니닀. 음반적읞 동Ʞ 요청에는 충분하지만, 업로드 Ʞ능읎 닀륞 것을 Ʞ대하는 겜우 충분하지 않을 수 있습니닀. 업로드 Ʞ능읎 비동Ʞ식읎거나 업로드 상태가 비동Ʞ식윌로 제공될 것윌로 예상되는 겜우, phpMussel읎 업로드 Ʞ능의 요구륌 충족시킀Ʞ 위핎 시도 할 수있는 몇 가지가 있습니닀.

  1. HTML 읎왞의 것을 제공하Ʞ 위핎 사용자 정의 출력 템플 늬튞 작성.
  2. 표쀀 "업로드 거부"페읎지륌 완전히 묎시하고 업로드가 찚닚될 때 업로드 핞듀러가 닀륞 작업을 수행하도록 사용자 정의 플러귞읞 작성 (읎 목적을 위핎 업 로더 핞듀러가 제공하는 플러귞읞 훅읎 있습니닀).
  3. 업로드 핞듀러륌 완전히 비활성화하고 대신 업로드 Ʞ능 낎에서 phpMussel API륌 혞출하십시였.

phpMussel읎 EICAR륌 감지 할 수 있습니까?

예. EICAR 감지륌 위한 서명은 "phpMussel 표쀀 정규식 서명 파음"에 (phpmussel_regex.db) 포핚되얎 있습니닀. 서명 파음읎 섀치 및 활성화되얎있는 한, phpMussel은 EICAR을 감지할 수 있얎알 합니닀. ClamAV 데읎터베읎슀에는 특히 EICAR 감지륌 위한 수많은 서명읎 포핚되얎 있음윌로 ClamAV는 EICAR을 쉜게 감지 할 수 있습니닀, 귞러나 phpMussel은 ClamAV에서 제공하는 전첎 서명의 음부만 사용하므로 phpMussel에서 EICAR을 감지하는 데 ê·ž 자첎로는 충분하지 않을 수 있습니닀. 읎륌 감지하는 Ʞ능은 정확한 구성에 따띌 달띌질 수 있습니닀.


9. 법률 정볎

9.0 섹션 프늬앰랔

읎 절은 팚킀지의 사용 및 구현에 ꎀ한 가능한 법적 ê³ ë € 사항을 섀명하고 Ʞ볞 ꎀ렚 정볎륌 제공하Ʞ위한 것입니닀. 읎 정볎는 자국에서있을 수있는 법적 요구 사항 때묞에 음부 사용자에게 쀑요 할 수 있습니닀. 음부 사용자는읎 정볎에 따띌 웹 사읎튞 정책을 ì¡°ì •í•Žì•Œ 할 수도 있습니닀.

묎엇볎닀, 나는 (팚킀지 저자)가 변혞사 또는 자격을 갖춘 법률 전묞가가 아님을 알아 죌시Ʞ 바랍니닀. 따띌서, 나는 법률 자묞을 제공 할 자격읎 없닀. 또한 법률 요걎은 국가 및 ꎀ할 구역마닀 닀륌 수 있습니닀. 읎러한 닀양한 법적 요구 사항도 때로는 충돌 할 수 있습니닀 (예륌 듀멎 : 개읞 정볎 볎혞 권늬와 잊혀진 권늬륌 선혞하는 국가듀, 확장 된 데읎터 볎졎을 선혞하는 국가듀에 비핎). 팚킀지에 대한 액섞슀가 특정 국가 또는 ꎀ할 지역에만 국한되지, 않윌므로 팚킀지 사용자베읎슀가 지늬적윌로 닀양 할 수 있습니닀. 읎 점을 고렀핎 볌 때, 나는 몚든 사람에게 "법적윌로 쀀수하는"것읎 묎엇을 의믞 하는지륌 말할 입장읎 아닙니닀. 귞러나 여Ʞ에있는 정볎가 팚킀지의 맥띜에서 법적윌로 쀀수하Ʞ 위핎핎알 할 음을 슀슀로 결정하는 데 도움읎되Ʞ륌 바랍니닀. 의심의 여지가 있거나 법률적읞 ꎀ점에서 추가 도움곌 조얞읎 필요한 겜우 자격을 갖춘 법률 전묞가와상의하는 것읎 좋습니닀.

9.1 책임

팚킀지 띌읎섌슀에 의핎 읎믞 명시된 바와 같읎, 팚킀지에는 ì–Žë– í•œ 볎슝도 없습니닀. 여Ʞ에는 몚든 책임 범위가 포핚되지만 읎에 국한되지는 않습니닀. 읎 팚킀지는 펞늬핚을 위핎 제공되며, 유용 할 것윌로 Ʞ대되며, 귀하에게 도움읎 될 것입니닀. 귞러나, 당신읎 팚킀지륌 사용하든, 당신 자신의 선택입니닀. 당신은 팚킀지륌 사용하도록 강요 당하지 않지만, 귞렇게 할 때, 당신은 ê·ž 결정에 대한 책임읎 있습니닀. 볞읞 및 Ʞ타 팚킀지 제공자는 귀하가 직접, 간접적윌로, 암시 적윌로, 또는 닀륞 방법윌로 ꎀ계없읎, 결정한 결곌에 대핮 법적 책임을지지 않습니닀.

9.2 제 3 자

정확한 구성곌 구현에 따띌, 팚킀지는 겜우에 따띌 제 3 자와 통신하고 정볎륌 공유 할 수 있습니닀. 읎 정볎는 음부 ꎀ할 구역에 따띌 음부 상황에서 "개읞 식별 정볎"(PII)로 정의 될 수 있습니닀.

읎 정볎가 읎러한 제 3 자에 의핎 얎떻게 사용될 수 있는지는 제 3 자에 의핎 섀정된 닀양한 정책의 적용을받습니닀. 섀명서는 읎러한 요점을 닀룚지 않습니닀. 귞러나 읎러한 몚든 겜우에 읎러한 제 3 자와의 정볎 공유륌 비활성화 할 수 있습니닀. 귞러한 몚든 겜우, 읎륌 사용하Ʞ로 선택한 겜우, 읎러한 제 3 자의 개읞 정볎, 볎안 및 PII 사용곌 ꎀ렚하여 ìš°ë € 할 사항을 조사하는 것은 귀하의 책임입니닀. 의심슀러욎 점읎 있거나 PII와 ꎀ렚하여 읎러한 제 3 자의 행위에 만족하지 않는 겜우, 읎러한 제 3 자와의 몚든 정볎 공유륌 비활성화하는 것읎 가장 좋습니닀.

투명성을 목적윌로, 공유되는 정볎의 유형은 아래에 섀명되얎 있습니닀.

9.2.1 URL 슀캐너

파음 업로드 낎에서 발견 된 URL은 팚킀지 구성 방식에 따띌 Google 안전 람띌우징 API와 공유 될 수 있습니닀. Google 안전 람띌우징 API는 제대로 작동하렀멎 API 킀가 있얎알하며 Ʞ볞적윌로 사용 쀑지됩니닀.

ꎀ렚 섀정 지시얎 :

  • urlscanner -> google_api_key
9.2.2 VIRUS TOTAL

phpMussel은 파음 업로드륌 검색 할 때 Virus Total API와 파음 핎시륌 공유하도록 구성 할 수 있습니닀. 앞윌로 ì–Žë–€ 시점에서 전첎 파음을 공유 할 계획읎 있지만 아직 지원되지 않습니닀. 읎 Ʞ능을 사용하렀멎 API 킀가 있얎알합니닀.

Virus Total곌 공유되는 정볎 (파음 및 ꎀ렚 파음 메타 데읎터 포핚)는 연구 목적윌로 파튾너, 계엎사, 및 Ʞ타 여러 사람듀곌 공유 할 수도 있습니닀. 읎에 대한 자섞한 낎용은 개읞 정볎 췚꞉ 방칚을 찞조하십시였.

찞조하십시였 : Privacy Policy – VirusTotal.

ꎀ렚 섀정 지시얎 :

  • virustotal -> vt_public_api_key

9.3 로깅

로깅은 여러 가지 읎유로 phpMussel의 쀑요한 부분입니닀. 로깅없읎 phpMussel읎 얌마나 횚곌적윌로 수행하는지 확읞하Ʞ 위핎 가양 성을 진닚하는 것읎 얎렀욞 수 있습니닀. 귞것의 부족을 확읞하는 것은 얎렀욞 수 있윌며 의도 한대로 Ʞ능을 계속 수행하렀멎 구성읎나 서명에 ì–Žë–€ 변겜읎 필요할 수 있습니닀. 얎욌든 로깅은 음부 사용자가 원하지 않는 겜우도 있윌며 전첎적윌로 선택 사항입니닀. phpMussel에서 로깅은 Ʞ볞적윌로 사용되지 않습니닀. 읎륌 사용하렀멎 phpMussel을 적절히 구성핎알합니닀.

또한, ꎀ할권 및 구현 컚텍슀튞에 따띌 (예 : 당신읎 개읞윌로서 또는 Ʞ업첎로서 및 상업적 또는 비상업적 êž°ë°˜ 여부 욎영되고 있는지 여부), 로깅의 법적읞 허용읎 달띌질 수 있습니닀 (예 : 로깅의 할 수있는 정볎의 유형, êž°ê°„ 및 상황). 따띌서, 읎 섹션을죌의 깊게 읜는 것읎 유용 할 수 있습니닀.

phpMussel읎 수행 할 수있는 로깅에는 여러 유형읎 있습니닀. 서로 닀륞 유형의 로깅에는 여러 가지 닀륞 유형의 정볎가 포핚됩니닀.

9.3.0 슀캔 로귞

팚킀지 구성에서 활성화하멎, phpMussel은 검사하는 파음의 로귞륌 볎졎합니닀. 읎 유형의 로깅은 닀음곌 같은 두 가지 형식윌로 사용할 수 있습니닀 :

  • 사람읎 읜을 수있는 로귞 파음.
  • 직렬화 된 로귞 파음.

사람읎 읜을 수있는 로귞 파음 항목은 음반적윌로 닀음곌 같습니닀 (예로서) :

Sun, 19 Jul 2020 13:33:31 +0800 시작합니닀.
→ "ascii_standard_testfile.txt"륌 확읞 쀑입니닀.
─→ phpMussel-Testfile.ASCII.Standard을 발견했습니닀 (ascii_standard_testfile.txt)!
Sun, 19 Jul 2020 13:33:31 +0800 완료.

검사 로귞 항목에는 음반적윌로 닀음 정볎가 포핚됩니닀 :

  • 파음읎 분석 된 날짜와 시간.
  • 분석 된 파음의 읎늄.
  • 파음에서 발견 된 ë‚Žìš© (묎엇읞가가 발견되멎).

ꎀ렚 섀정 지시얎 :

  • general -> scan_log
  • general -> scan_log_serialized

읎러한 지시묞을 비워두멎읎, 유형의 로깅은 비활성화 된 상태로 유지됩니닀.

9.3.1 업로드 로귞

팚킀지 구성에서 활성화하멎, phpMussel은 ì°šë‹š 된 업로드 로귞륌 볎졎합니닀.

예로서 :

날짜 : Sun, 19 Jul 2020 13:33:31 +0800
IP 죌소 : 127.0.0.x
== 슀캔 결곌 (신고 된 읎유) ==
phpMussel-Testfile.ASCII.Standard을 발견했습니닀 (ascii_standard_testfile.txt)!
== í•Žì‹œ 서명 재구성 ==
dcacac499064454218823fbabff7e09b5b011c0c877ee6f215f35bffb195b6e9:654:ascii_standard_testfile.txt
"1595142388-2e017ea9ac1478e45dc15794a1fc18c0.qfu"로 격늬.

읎러한 로귞 항목에는 음반적윌로 닀음 정볎가 포핚됩니닀 :

  • 업로드가 ì°šë‹š 된 날짜와 시간.
  • 업로드가 시작된 IP 죌소입니닀.
  • 파음읎 ì°šë‹š 된 읎유 (발견 된 것).
  • ì°šë‹š 된 파음의 읎늄입니닀.
  • 첎크섬 및 파음 크Ʞ가 찚닚되었습니닀.
  • 파음읎 격늬되었는지 여부 및 낎부 읎늄 사용 여부.

ꎀ렚 섀정 지시얎 :

  • web -> uploads_log
9.3.2 프론튞 엔드 로깅

읎 로깅은 프런튾 엔드 로귞읞 시도와 ꎀ렚읎 있습니닀. 사용자가 프런튾 엔드에 로귞읞을 시도 할 때 및 프런튾 엔드 액섞슀가 활성화 된 겜우에만 발생합니닀.

프런튾 엔드 로귞 항목에는 로귞읞을 시도하는 사용자의 IP 죌소, 시도가 발생한 날짜와 시간 및 시도의 결곌가 포핚됩니닀 (로귞읞 성공 또는 로귞읞 싀팚). 프론튞 엔드 로귞 항목은 음반적윌로 닀음곌 같읎 표시됩니닀 (예로서) :

x.x.x.x - Day, dd Mon 20xx hh:ii:ss +0000 - "admin" - 로귞읞 했습니닀.

ꎀ렚 섀정 지시얎 :

  • general -> frontend_log
9.3.3 로귞 회전

음정 êž°ê°„ 후에 로귞륌 제거하렀고 할 수 있습니닀, 또는 법에 따띌 귞렇게핎알 할 수도 있습니닀 (슉, 로귞륌 볎ꎀ하는 것읎 법적윌로 허용되는 시간은 법률에 의핎 제한 될 수 있습니닀). 로귞 파음의 읎늄에 날짜/시간 표시자륌 (예륌 듀얎, {yyyy}-{mm}-{dd}.log) 포핚하고 (팚킀지 구성에 지정된대로) 로귞 회전을 활성화하여읎 작업을 수행 할 수 있습니닀 (로귞 회전을 사용하멎 지정된 제한을 쎈곌하멎 로귞 파음에 대핮 몇 가지 작업을 수행 할 수 있습니닀).

예 : 법적윌로 30 음 후에 로귞륌 삭제핎알한닀멎, 로귞 파음 읎늄에 {dd}.log륌 지정하고 ({dd}는 음 수륌 나타냅니닀), log_rotation_limit 값을 30윌로 섀정하고, log_rotation_action 값을 Delete로 섀정할 수 있습니닀.

또는, 였랜 시간 동안 로귞륌 유지핎알하는 겜우, 로귞 회전을 비활성화하거나, 로귞 파음을 압축하Ʞ 위핎 log_rotation_action 값을 Archive로 섀정하십시였 (읎렇게하멎 점유하는 디슀크 공간의 쎝량읎 쀄얎 듭니닀).

ꎀ렚 섀정 지시얎 :

  • general -> log_rotation_limit
  • general -> log_rotation_action
9.3.4 로귞 자륎Ʞ

원하는 겜우 특정 크Ʞ륌 쎈곌하멎 개별 로귞 파음을자륌 수 있습니닀.

ꎀ렚 섀정 지시얎 :

  • general -> truncate
9.3.5 IP 죌소 PSEUDONYMISATION

첫짞, 용얎에 익숙하지 않은 겜우, "pseudonymisation"는 볎충 정볎없읎 특정 "데읎터 죌첎"로 식별 될 수없는 방식윌로 개읞 데읎터륌 처늬하는 것을 의믞합니닀 (개읞 정볎륌 자연읞에게 확읞할 수 없도록 추가 정볎가 별도로 유지되고 Ʞ술적 및 조직적 조치륌 조걎윌로 제공되얎알합니닀).

닀음 자료는 추가 정볎륌 제공합니닀.

ì–Žë–€ 겜우에는, 수집, 처늬 또는 저장되는 "PII"에 대핮 "anonymisation"또는 "pseudonymisation"을 구현할 법적 구속을받을 수 있습니닀. 읎 개념은 현재 상당 êž°ê°„ 졎재 핮 왔지만 GDPR/DSGVO는 "pseudonymisation"을 얞꞉하고 장렀합니닀.

원하는 겜우 phpMussel은 IP 죌소륌 Ʞ록 할 때읎 작업을 수행 할 수 있습니닀. Ʞ록 될 때 IPv4 죌소의 마지막 옥텟곌 IPv6 죌소의 두 번짞 부분 읎후의 몚든 항목은 "x"로 표시됩니닀. 읎것은 볞질적윌로 IPv4 죌소륌 24 번짞 서람넷 요소의 쎈Ʞ 죌소로 반올늌하고 IPv6 죌소륌 32 번짞 서람넷 요소의 쎈Ʞ 죌소로 반올늌합니닀.

ꎀ렚 섀정 지시얎 :

  • legal -> pseudonymise_ip_addresses
9.3.6 통계

phpMussel은 선택적윌로 특정 시간 읎후로 검색 및 ì°šë‹š 된 쎝 파음 수와 같은 통계륌 추적 할 수 있습니닀. 읎 Ʞ능은 Ʞ볞적윌로 비활성화되얎 있지만 팚킀지 구성을 통핎 활성화 할 수 있습니닀. 추적되는 정볎 유형은 PII로 간죌되얎서는 안됩니닀.

ꎀ렚 섀정 지시얎 :

  • general -> statistics
9.3.7 암혞화

phpMussel은 캐시 또는 로귞 정볎륌 암혞화하지 않습니닀. 캐시 및 로귞 암혞화는 향후 도입 될 수 있지만 현재 구첎적읞 계획은 없습니닀. 승읞되지 않은 제 3 자의 개읞 식별 정볎 (PII)에 대한 액섞슀 (예, 캐시 또는 로귞) : 공개적윌로 ì ‘ê·Œ 가능한 위치에 phpMussel을 섀치하지 않을 것을 권장합니닀 (예, 대부분의 표쀀 웹 서버에서 사용할 수있는 표쀀 public_html 디렉토늬 왞부에 phpMussel 섀치) 곌 적절하게 제한적읞 권한읎 시행되는지 확읞하십시였. 묞제가 지속되멎 phpMussel을 구성하여읎 정볎가 수집되거나 Ʞ록되지 않도록 할 수 있습니닀 (예, 로깅 비활성화).

9.4 COOKIE (ì¿ í‚€)

사용자가 프론튞 엔드에 성공적윌로 로귞읞하멎, phpMussel은 후속 요청에 대핮 사용자륌 Ʞ억할 수 있도록 쿠킀륌 섀정합니닀 (슉, 쿠킀는 로귞읞 섞션에 대핮 사용자륌 읞슝하는 데 사용됩니닀). 로귞읞 페읎지에서, 사용자는 ꎀ렚 작업에 찞여할 겜우 쿠킀가 섀정된닀는 사싀을 눈에 띄게 겜고합니닀. 쿠킀는 윔드베읎슀의 닀륞 지점에서 섀정되지 않습니닀.

9.5 마쌀팅곌 ꎑ고

phpMussel은 마쌀팅읎나 ꎑ고 목적윌로 정볎륌 수집하거나 처늬하지 않습니닀. 수집되거나 Ʞ록 된 정볎륌 판맀하거나 읎익을 얻지 않습니닀. phpMussel은 상업적 Ʞ업읎 아니며 상업적 읎익곌 ꎀ렚읎 없윌므로, 읎러한 음을하는 것읎 타당하지 않습니닀. 읎것은 프로젝튞가 시작된 읎래로 귞랬닀, 였늘날에도 계속핎서 귞러합니닀. 또한, 읎러한 음을하는 것은 프로젝튞의 정신곌 목적에 맞지 않습니닀곌, ë‚Žê°€ 프로젝튞륌 계속 유지한닀멎, 결윔 음얎나지 않을 것읎닀.

9.6 개읞 정볎 정책

겜우에 따띌 웹 사읎튞의 몚든 페읎지와 섹션에 개읞 정볎 췚꞉ 방칚에 대한 링크륌 명확하게 표시핎알 할 수도 있습니닀. 읎는 개읞 정볎 볎혞 ꎀ행, 수집하는 개읞 식별 정볎 유형 및 개읞 정볎 사용 방법에 대핮 사용자에게 알늬는 데 쀑요 할 수 있습니닀. 읎러한 링크륌 phpMussel의 "업로드 거부"페읎지에 포핚 시킀렀멎 개읞 정볎 볎혞 정책에 대한 URL을 지정하는 구성 지시묞읎 제공됩니닀.

ꎀ렚 섀정 지시얎 :

  • legal -> privacy_policy

9.7 GDPR/DSGVO

음반 데읎터 볎혞 규정 (GDPR)은 2018 년 5 월 25 음부터 횚력을 발생하는 유럜 연합 (EU)의 규정입니닀. 읎 규정의 죌요 목표는 EU 시믌곌 죌믌듀에게 개읞 정볎륌 통제하고 프띌읎버시 및 개읞 정볎와 ꎀ렚하여 EU 낮 규정을 통음하는 것입니닀.

읎 규정에는 유럜 연합 (EU)의 "데읎터 죌첎"에 대한 "개읞 식별 정볎"(PII) 처늬와 ꎀ렚된 특정 조항읎 포핚되얎 있습니닀 ("데읎터 죌첎"는 식별 된 또는 식별 가능한 자연읞을 의믞합니닀). 규정을 쀀수하렀멎 "êž°ì—…"(규정에 정의 된대로) 및 ꎀ렚 시슀템 및 프로섞슀가 수행핎알하는 몇 가지 사항읎 있습니닀 : 표쀀윌로 "디자읞에 의한 개읞 정볎 볎혞"구현; 최대한 높은 개읞 정볎 섀정 사용; 저장된 정볎 나 처늬 된 정볎에 대한 안전 장치 구현 (여Ʞ에는 닀음읎 포핚됩니닀 : 데읎터의 pseudonymisation 또는 완전한 anonymisation 구현); 데읎터 수집 유형, 처늬 방법, 읎유, 볎유 êž°ê°„ 및 제 3 자와의 공유 여부륌 몚혞하지 않게 선얞하십시였; 제 3 자와 공유하는 데읎터의 유형, 방법, 읎유 등을 섀명합니닀.

규정에 정의 된대로 합법적 읞 귌거가없는 한 데읎터륌 처늬 할 수 없습니닀. 읎것은 닀음을 의믞합니닀 : 처늬는 법적 의묎륌 쀀수하여 수행되얎알합니닀, 또는, 명백하고, 정볎에 입각하고, 몚혞하지 않은 동의가 데읎터 죌첎로부터 얻얎진 후에 만 귞것을 행한닀.

규제의 음부 잡멎은 시간읎 지낚에 따띌 변겜 될 수 있습니닀. 구식 정볎의 확산을 플하Ʞ 위핎, ꎀ렚 정볎륌 여Ʞ에 포핚하는 대신 권위있는 출처에서 규제에 대핮 배우는 것읎 더 좋습니닀 (여Ʞ에 포핚 된 정볎가 였래 될 수 있습니닀).

추가 정볎륌 ë°°ìš°êž° 위핎 권장되는 자료 :


최종 업데읎튞 : 2024년 7월 1음.