피드로 돌아가기
Dev.toBackend
원문 읽기
Playwright와 urllib 간 인증 통합으로 401 에러 및 롤백 실패 해결
Maintaining WordPress sites behind HTTP Basic auth — Playwright, urllib, and encrypted credentials
AI 요약
Context
HTTP Basic auth가 적용된 WordPress 사이트의 유지보수 과정에서 SSH/WP-CLI와 달리 HTTP 기반 도구들이 401 Unauthorized 응답을 받는 비대칭성 발생. 특히 urllib를 통한 상태 체크 시 401 응답이 유지될 경우, 실제 장애 상황에서도 '변화 없음'으로 판단하여 롤백 메커니즘이 작동하지 않는 심각한 결함 존재.
Technical Solution
get_basic_auth_tuple이라는 단일 진입점 함수를 설계하여 Playwright와 urllib가 필요로 하는 서로 다른 인증 데이터 형식을 중앙 집중식으로 생성site.get(key) or ''패턴을 도입하여 기존 JSON 설정 데이터의 하위 호환성을 보장하고 KeyError 발생 가능성을 원천 차단- Fernet 암호화를 적용하여
basic_auth_password를 저장 시점에 암호화하고 로드 시 복호화하는 보안 계층 구축 _new_context_with_auth헬퍼 함수를 통해 Playwright의 여러 호출 지점을 단일화하여 설정 누락 가능성을 제거- 메인 루프 진입 시 인증 정보를 로컬 변수에 1회만 추출하여 5회 이상의
_http_status_check_stable호출 시 일관성 있게 전달하는 구조 설계
실천 포인트
- 동일 자격 증명을 여러 라이브러리(Playwright, urllib 등)에서 사용할 때 단일 Root 추출 함수를 정의했는가? - 신규 필드 추가 시 기존 데이터와의 하위 호환성을 위해 empty-fallback 패턴을 적용했는가? - 민감 정보 저장 시 Fernet 등 표준 암호화 라이브러리를 통한 Encryption-at-rest를 구현했는가? - 드물게 사용되는 설정 항목을 UI상에서 `<details>` 태그 등으로 분리하여 UX 복잡도를 낮췄는가?