브라우저가 열 수 있는 주소와 자동화 작업이 다뤄도 되는 주소는 같지 않았다. 사람이 로컬 개발 화면을 여는 편의가 있다고 에이전트의 공개 사이트 작업까지 내부망 권한을 가져서는 안 된다. 북극성에서는 입력 주소의 형식, 작업 출처, 실제 DNS 답을 나눠 검사했다.
사람의 주소 정리와 AI 범위 검사는 다르다
normalizeURL과 secureNavigationURL은 사람이 입력한 검색어와 주소를 정리하고 일반 HTTP를 HTTPS로 바꾼다. 로컬 개발용 loopback 예외도 있다. 하지만 assertScope는 AI 작업에 공개 HTTPS와 허용 출처 조건을 적용한다. 사람의 주소창 편의를 그대로 작업 허용 목록으로 삼지 않는다.
listed 모드에서는 protocol과 host가 그럴듯해도 scope.origins의 정확한 origin과 맞아야 한다. 사용자명·비밀번호가 주소에 포함된 경우와 코드가 아는 인증·결제·보안 경로도 거절한다. 이 경로 패턴이 모든 사이트의 모든 민감 화면을 완벽하게 찾아낸다는 보장은 아니다. 주소 형식 검사와 업무 의미 검토는 여전히 다른 책임이다.
이름이 공개처럼 보여도 DNS 답은 다를 수 있다
isPrivateHost는 local 계열 이름과 사설 IP 형태를 먼저 본다. verifyPublicDNS는 IP가 아닌 이름이면 resolver의 모든 주소를 받고 하나라도 사설 범주이거나 답이 없으면 거절한다. 공개처럼 보이는 도메인 이름 하나를 신뢰 근거로 삼지 않은 것이다.
IPv4 범주와 일부 IPv6·mapped 주소를 검사하는 현재 구현에는 명시적인 규칙이 있다. 이 목록을 모든 예약 주소와 앞으로의 모든 네트워크 구성을 완전하게 분류한 표준 인증으로 설명하지 않는다. 주소 문자열의 형식과 DNS가 반환한 연결 대상 주소를 따로 검사한다. 테스트의 가짜 resolver와 실제 DNS 질의도 구별해야 한다.
비동기 확인이 끝난 뒤 작업이 아직 같은지 본다
현재 task-controller의 validateRequest는 작업 소유 탭의 탐색 조건을 먼저 검사하고 DNS를 기다린 뒤 task ID와 runEpoch를 다시 본다. 그 사이 중지되거나 작업이 바뀌면 STALE_RUN이다. 처음 허용됐다는 이유로 늦게 돌아온 확인을 다른 작업에 적용하지 않는다.
BrowserHost는 작업 소유 탭의 mainFrame 요청에서 이 검사를 연결하고 거절이면 취소한다. 현재 코드가 어느 요청 종류에 연결되는지까지 확인해야 범위를 알 수 있다. 사람이 연 탭과 모든 하위 리소스가 같은 자동화 정책을 거친다고 가정하면 실제 구현보다 더 큰 보장을 하게 된다.
이 검사는 모든 전송의 정보 유출 방화벽이 아니다
과거 위협 모델도 최상위 탐색과 행동 범위를 하위 리소스·fetch·폼 전송 전체의 방화벽과 구별한다. DNS 검사 뒤 주소가 바뀌는 경쟁과 서버 부작용을 모두 해결한 것도 아니다. 공개 사이트를 허용했다는 사실이 그 페이지의 모든 외부 효과를 안전하다고 인증하지는 않는다.
이 한계 때문에 사용자 요청과 입력 자료, 선택 파일, 결과 검증도 따로 있어야 한다. 주소 검사 하나를 잘 만들었다고 나머지 권한 경계를 없애지 않는다. 독자가 내부 업무에 적용한다면 실제 배치 환경의 네트워크 통제와 자료 정책은 별도로 정해야 한다. 앱의 검사 함수 이름을 인프라 방화벽의 보장처럼 쓰지 않았다.
시험에서 확인한 주소 조건만 정확히 남긴다
원래 policy 시험은 public-looking 이름이 loopback으로 풀리는 경우를 resolver 대역으로 만들고 거절을 본다. 사설 IP·인증정보 포함 주소·허용하지 않은 origin과 위험 scheme도 검사한다. navigation 시험은 사람의 HTTPS 보정과 로컬 예외를 따로 본다. 서로 다른 두 경로를 같은 허용 정책이라고 세지 않는다.
이번에는 그 함수와 시험을 읽었고 실제 DNS나 내부망 접근을 새로 요청하지 않았다. 공유 작업 문맥 모듈도 네트워크 검사기는 아니다. 재사용할 것은 주소 모양, 실제 대상, 현재 작업의 권한과 비동기 수명을 따로 확인하고 그 밖의 통제까지 했다고 과장하지 않는 기준이다. 공개 자동화의 편의가 내부망의 새 권한으로 번지지 않게 한 선택을 남겼다.