보안 실무
사용자 열거 막기 — REST 가 기본으로 흘리는 것
/wp-json/wp/v2/users 는 로그인하지 않아도 열립니다. 거기 실린 slug 는 대개 로그인 아이디이고, 그러면 공격자는 비밀번호 하나만 남겨 두게 됩니다.
Technote
취약점 · 하드닝 · 권한 관리 · 로그인 보호 · 백업. 워드프레스 침해 경로를 하나씩 닫는 방법을 다룹니다.
글 22편· 보안
보안 실무
/wp-json/wp/v2/users 는 로그인하지 않아도 열립니다. 거기 실린 slug 는 대개 로그인 아이디이고, 그러면 공격자는 비밀번호 하나만 남겨 두게 됩니다.
보안 실무
연락처 목록은 마케팅 자산이지만 동시에 개인정보입니다. 필요한 만큼만 받고, 기간을 정해 두고, 그 기간이 지나면 실제로 지우는 세 가지가 핵심입니다.
보안 실무
배너를 띄우는 것과 동의를 받는 것은 다릅니다. 무엇을 왜 수집하는지 스스로 설명할 수 있어야 하고, 보관 기간은 방치가 아니라 결정이어야 합니다.
보안 실무
외부 서버에는 쿠키도 nonce 도 없습니다. 검증은 서명이나 공유 키로 하고, hash_equals 로 비교하며, 서명은 반드시 원본 바디에 대고 계산합니다.
보안 실무
이스케이프는 저장할 때가 아니라 출력할 때 합니다. 같은 값이 본문 · 속성 · 주소로 나갈 수 있고, 자리마다 안전의 정의가 다르기 때문입니다.
보안 입문
"검색해서 나왔다" 는 출처가 아닙니다. 상업적 이용, 저작자 표시, 변형 허용, 사람이 찍힌 사진의 초상 동의 — 이 네 줄만 확인해도 나중의 분쟁 대부분이 사라집니다.
보안 실무
캡차는 스팸을 줄이지만 진짜 문의도 함께 줄입니다. 사람에게는 보이지 않고 스크립트만 걸리는 장치들을 먼저 써 보는 편이 낫습니다.
보안 실무
세 가지 방식은 편의의 차이가 아니라 위협 모델의 차이입니다. 브라우저에서 부르는가, 서버가 부르는가, 제3자가 발급하는가에 따라 답이 정해집니다.
보안 실무
업로드 취약점은 파일을 올리는 데서 끝나지 않습니다. 올라간 파일이 실행될 때 원격 코드 실행이 됩니다. uploads 에서 PHP 를 못 돌게 하면 그 승격이 끊깁니다.
보안 실무
커밋된 비밀값은 이미 유출된 비밀값입니다. 히스토리를 다시 써도 되돌아오지 않고, 남는 해결은 교체 하나뿐입니다.
보안 입문
관리자 비밀번호가 한 번 새면, 내장 테마 편집기는 웹셸 설치 화면이 됩니다. 상수 한 줄이 그 최단 경로를 지웁니다.
보안 실무
이 순간 가장 흔한 실수는 급하게 지우는 것입니다. 무엇을 먼저 멈추고, 무엇을 남기고, 어떤 순서로 되돌리는지 목록으로 정리했습니다.