registry: a failed domain lookup keeps the one-time code; refuse .local and .internal domains #710
Labels
No labels
loop
queue/failed
queue/queued
ready
status/parked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
torbscript/language#710
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Two findings from the review of PR #355 (#341, an organisation proves a domain), not filed when it landed:
claimDomainintools/registry/src/registry.trbcallsproved(caller, code, "owners", ...)beforedomainCheckedlooks up theTXTrecord. A lookup that finds no record answers422, and the second factor's one-time code is spent anyway: the owner fixes the zone and has to wait for a new code.domainOfintools/registry/src/domains.trbrefuses a numeric last label andlocalhost, butfoo.local(mDNS, RFC 6762) andfoo.internal(reserved for private use) pass, and no badge should ever say an organisation holds one of them.Source
docs/design/RELEASE.md, the registry's owner domains (#341).Goal
A failed proof costs the owner nothing but the retry, and only domains on the public DNS can be proved.
Acceptance criteria
torb-owner=<owner>record answers422and the same one-time code still proves the next attempt; a test intools/registry/tests/shows both callsdomainOfrefuses a domain whose last label islocal,internal,localhost,test,exampleorinvalid(RFC 6761, RFC 6762), with a message naming the rule; a test per labelclaimDomainsays when the code is takenDependencies
None.
Seed
No:
tools/registry/only.Size
One PR, one or two commits (
fix(registry): ...).[loop:torbscript] re-sweep: filed as homeless work from the review notes of PR #355 (#341), checked against
main:claimDomainstill callsprovedbeforedomainChecked, anddomainOfstill lets.localand.internalthrough. Labelloop, noready: refine confirms whethertest,exampleandinvalidbelong in the same refusal.