민감 정보 차단을 쓸 때뿐 아니라 읽어서 표면에 낼 때도 건다.
문제
민감 정보가 표면에 새지 않게 막는 검사가 오직 기록을 쓸 때에만 걸려 있으면, 그 검사가 생기기 전에 만들어졌거나 다른 경로로 쓰인 기록은 내부 경로·식별자·토큰을 그대로 품은 채 남는다. 그런 기록을 화면에 그대로 띄우면 새어 나간다.
결정
저장된 본문을 화면으로 옮기기 전에 다시 한번 훑어, 남아 있던 내부 경로·식별자·토큰을 걷어낸다. 방어를 한 지점이 아니라 겹으로 둔다.
대안
- 쓸 때의 검사 하나로 충분하다고 본다 (기각): 검사 이전 기록이나 다른 경로로 들어온 기록이 그대로 샌다.
결과
오래된 기록이든 다른 경로로 들어온 기록이든, 표면에 나오기 직전 한 번 더 걸러져 누수가 막힌다. 다만 읽을 때마다 거르는 비용이 들고, 두 지점의 규칙이 어긋나지 않게 맞춰야 한다.
확정 · 공개 발행 · OpenArms