이슈 체크리스트와는 별개로, 처리 완료 후 지시로 진행한 sirsoft-gdpr 플러그인 전수 비판적 검토에서 발견한 보안·결함 3건을 수정한다. - Admin 설정 저장 API 의 검증 우회 fallback(빈 요청 시 $request->all 사용) 제거. UpdateAdminSettingsRequest 필드가 모두 nullable 이라 검증을 거치지 않은 임의 키가 저장 로직까지 전달될 수 있었다. - 게스트 세션 식별 쿠키(gdpr_session) 에 HMAC-SHA256 서명 적용. api 미들웨어 그룹에는 EncryptCookies 가 없어 쿠키가 평문으로 오가 임의 UUID로 타인의 게스트 동의 상태를 조회/철회할 수 있었다. 결제 플러그인들의 IssuesReceiptCookie 트레이트와 동일 컨벤션 채택. 이 조치로 배포 이전 발급된 비회원 쿠키는 1회 초기화되며 이미 배너를 닫았던 비회원은 다음 방문 시 배너를 다시 보게 된다(회원 동의 이력은 영향 없음) — CHANGELOG 에 고지. - 게스트로 쿠키 배너를 닫은 뒤 동의 이력 없는 다른 계정으로 로그인해도 배너가 계속 숨겨져 있던 결함 수정. _global.gdprBannerDismissedFor 가 "닫힘 여부"(boolean) 대신 "누가 닫았는지"(사용자 식별자)를 저장하도록 변경해, 로그인으로 사용자가 바뀌면 다시 노출되게 한다. 실제 로그인 폼 제출을 거쳐 재현하는 E2E spec 신규 작성(PlaywrightSeedGdprGuestLogin 시드 커맨드 포함, sirsoft-page 의 PlaywrightSeedPage 패턴 재사용). 부수: 자동 차단 정책 안내에 보호 범위 한계 고지 추가, GDPR 플러그인 번들 로딩 우선순위 상향(다른 확장의 스크립트로부터 보호 범위 확대).
36 lines
1.2 KiB
JSON
36 lines
1.2 KiB
JSON
{
|
|
"identifier": "sirsoft-gdpr",
|
|
"vendor": "sirsoft",
|
|
"name": {
|
|
"ko": "GDPR (일반 데이터 보호 규정)",
|
|
"en": "GDPR (General Data Protection Regulation)"
|
|
},
|
|
"version": "1.0.2",
|
|
"description": {
|
|
"ko": "쿠키 동의 배너, 자동 차단, 동의 이력 저장, 마이페이지 동의 철회를 제공하는 GDPR 대응 플러그인입니다.",
|
|
"en": "GDPR-ready plugin: cookie consent banner, auto-blocking, consent history, and mypage consent withdrawal."
|
|
},
|
|
"license": "MIT",
|
|
"g7_version": ">=7.0.5",
|
|
"dependencies": {
|
|
"modules": {},
|
|
"plugins": {}
|
|
},
|
|
"github_url": "https://github.com/gnuboard/g7-plugin-sirsoft-gdpr",
|
|
"github_changelog_url": "https://github.com/gnuboard/g7-plugin-sirsoft-gdpr/blob/main/CHANGELOG.md",
|
|
"assets": {
|
|
"js": {
|
|
"entry": "resources/js/index.ts",
|
|
"output": "dist/js/plugin.iife.js"
|
|
},
|
|
"css": {
|
|
"entry": "resources/css/banner.css",
|
|
"output": "dist/css/plugin.css"
|
|
},
|
|
"handlers": true
|
|
},
|
|
"loading": {
|
|
"strategy": "global",
|
|
"priority": 0
|
|
}
|
|
} |