WordPress 플러그인 보안이 계속 실패하는 이유와 EmDash가 바꾸는 것
WordPress 플러그인 위험은 품질 문제만이 아닙니다. 실행 모델 문제입니다. EmDash는 플러그인을 격리하고 선언된 기능만 부여해 신뢰 모델을 바꿉니다.
WordPress 플러그인 보안은 주요 문제가 나쁜 코드, 방치된 유지관리자, 들쭉날쭉한 검토라고 이야기됩니다. 그 문제들은 실제이지만, 더 근본적인 설계 선택보다 하류에 있습니다. WordPress 플러그인은 보통 가져야 할 것보다 훨씬 넓은 권한으로 실행됩니다.
즉 플러그인 취약점이 작은 기능 하나에 국한되는 경우는 드뭅니다. 플러그인이 애플리케이션 나머지와 같은 넓은 실행 환경에서 돌기 때문에 사이트 전체 문제가 될 수 있습니다.

문제가 반복되는 이유
WordPress 플러그인 생태계가 거대한 이유는 WordPress가 확장을 쉽게 만들었기 때문입니다. 그 개방성은 엄청난 가치를 만들었지만, 깊은 신뢰에 기반한 보안 모델도 만들었습니다.
실무에서 플러그인 설치는 종종 다음에 대한 신뢰를 의미합니다.
- 데이터베이스 접근
- 파일시스템 접근
- 광범위한 실행 훅
- 사용자, 봇, 다른 플러그인의 임의 입력에 대한 간접 노출
그 시점에서 보안은 모든 플러그인 작성자가 영원히 일관되게 좋은 결정을 하기를 바라는 문제가 됩니다. 큰 생태계에는 확장 가능한 가정이 아닙니다.
진짜 문제는 과도한 권한
좁은 일 하나를 하기 위해 넓은 권한을 받아서는 안 됩니다.
포스트 게시 후 이메일을 보내는 플러그인이라면 중요한 질문은 인기가 아닙니다. 그 플러그인이 실제로 무엇을 할 수 있는지가 중요합니다.
현대적 보안 모델은 관리자가 다음 같은 질문에 답할 수 있게 해야 합니다.
- 이 플러그인이 콘텐츠를 읽을 수 있는가?
- 콘텐츠를 쓸 수 있는가?
- 이메일을 보낼 수 있는가?
- 외부 서비스를 호출할 수 있는가?
- 선언한 범위 밖의 무엇이라도 건드릴 수 있는가?
WordPress는 그런 명시적 권한 경계를 중심으로 설계되지 않았습니다.
EmDash가 바꾸는 것
EmDash는 다른 접근을 취합니다. 플러그인은 격리된 샌드박스에서 실행되며, 필요한 기능을 미리 선언할 것으로 기대됩니다.
플러그인 신뢰가 모호한 평판에서 보이는 범위로 옮겨지기 때문에 중요합니다.
더 나은 플러그인 시스템은 완벽한 작성자를 약속하는 시스템이 아닙니다. 작성자가 실수할 때 피해 반경을 제한하는 시스템입니다.
명시적 기능 모델이 있으면 플러그인 위험을 더 직접적으로 추론할 수 있습니다.
- 콘텐츠 자동화 플러그인을 콘텐츠 훅과 읽기 접근으로 제한
- 이메일 통합을 메일 발송으로 제한
- 네트워크 접근을 가정이 아니라 특정 목적지로 좁힘
플러그인 인기 경쟁이 아니라 보안 검토 프로세스가 필요한 팀에게 훨씬 잘 맞습니다.
실제 CMS 운영에 왜 중요한가
대부분의 콘텐츠 팀은 모든 플러그인을 깊이 감사할 시간이 없습니다. 그래도 통합, 발행 자동화, 미리보기, 알림, 편집 워크플로는 필요합니다. 실질적 질문은 플랫폼이 합리적인 기본 신뢰 모델을 주는지입니다.
EmDash가 더 강한 스토리를 갖는 지점입니다. 모든 플러그인이 넓은 접근을 받을 자격이 있다고 가정하는 대신, 반대에서 시작합니다. 접근은 의도적으로 좁게 부여되어야 합니다.
이 설계 선택이 검토 필요를 없애지는 않지만, 검토를 더 의미 있게 만듭니다.
더 큰 교훈
WordPress 플러그인 보안 문제는 불안전한 플러그인만의 문제가 아닙니다. 플러그인이 너무 많은 신뢰로 시작하는 생태계의 문제입니다.
EmDash는 행동 개선만 요구해서 이를 해결하지 않습니다. 실행 모델을 바꿔 해결합니다.
- 플러그인 격리
- 기능 선언
- 필요한 것만 부여
- 플러그인 실수의 결과 축소
희망에 의존하는 플러그인 시스템과 제약을 위해 만들어진 플러그인 시스템의 차이입니다.