PHP 보안 권고 데이터베이스는 다양한 PHP 프로젝트 및 라이브러리의 알려진 보안 취약점을 참조합니다. 이 데이터베이스는 보안 문제에 대한 주요 정보 소스로 사용되어서 는 안 되며 , 참조된 소프트웨어에 대해 신뢰할 수 있는 것도 아니지만 편리하고 쉽게 사용할 수 있도록 정보를 중앙 집중화할 수 있습니다.
PHP 보안 권고 데이터베이스는 공개 도메인으로 출시된 무료 소프트웨어입니다.
수동 검사 외에 애플리케이션의 취약점을 확인하려면 로컬 CLI 도구를 사용해야 합니다.
local-php-security-checker --path=/path/to/composer.lock
팁 : Github를 사용하는 경우 PHP 보안 검사기 Github Action을 사용하여 코드를 푸시할 때 자동으로 취약점을 확인할 수 있습니다.
보안 권고에 기여하는 것은 매우 쉽습니다.
끌어오기 요청을 보내거나 Github 인터페이스를 통해 직접 파일을 생성하여 새 항목을 기여할 수 있습니다.
보안 문제가 존재하는 소프트웨어의 Composer 이름을 기반으로 디렉터리를 생성합니다(예를 들어 Symfony HttpFoundation 구성 요소의 문제에 대해서는 symfony/http-foundation
사용).
각 보안 문제는 이름이 CVE 식별자(권장)이거나 보안 문제가 발표된 날짜 뒤에 증분된 날짜(예: 2012-12-12-1
)인 파일에 저장되어야 합니다.
파일은 YAML 형식이며 다음 항목을 포함 해야 합니다 (기존 항목의 예를 확인하세요).
title
: 보안 문제를 몇 단어로 설명하는 텍스트입니다.
link
: 공식 보안 문제 발표에 대한 링크(HTTPS 링크가 HTTP 링크보다 선호됨)
reference
: 소프트웨어를 식별하기 위한 고유 참조(유일하게 지원되는 구성표는 composer://
와 Composer 식별자입니다).
branches
: 영향을 받은 브랜치의 해시입니다. 여기서 이름은 브랜치 이름(예: 2.0.x
)이고 값은 다음 항목이 포함된 해시입니다.
time
: 보안 문제가 해결된 날짜 및 시간(UTC 기준), 문제가 아직 해결되지 않은 경우 null(대부분의 경우 다음 형식으로 문제를 해결한 병합 커밋 날짜 2012-08-27 19:17:44
) -- 이 정보는 프로젝트가 영향을 받는지 여부를 결정하는 데 사용되므로 최대한 정확해야 합니다.
versions
: 이 분기에 영향을 받는 버전을 설명하는 제약 조건의 배열입니다(이것은 Composer에 사용되는 것과 동일한 형식입니다 -- ['>=2.0.0', '<2.0.17']
).
CVE 식별자가 있는 경우 이를 cve
키 아래에 추가하세요.
이 프로젝트의 루트에서 php -d memory_limit=-1 validator.php
실행하여 파일이 유효성을 검사하는지 확인하세요. 이 스크립트는 Composer를 통해 설치하려면 일부 종속성이 필요하므로 먼저 composer install
실행해야 합니다.
영향을 받는 코드 중 일부가 다른 Composer 항목을 통해 사용 가능한 경우(예: 기본 저장소의 읽기 전용 하위 트리 분할이 있는 경우) 여러 파일에 정보를 복제하세요.