-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework domain verification a bit #67
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like a good compromise for now. Better than the status quo at least.
@@ -420,6 +425,7 @@ def finishRequestAsync(server): | |||
|
|||
def asyncFinishThread(server): | |||
checkAddress = server["ip"] != server["address"] | |||
errorTracker.remove(getErrorPK(server)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be better if get()
atomically got the error and cleared it instead of clearing it manually. Maybe name it take()
instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seeing how its done throughout the file, (as well as how often its done), I don't think it's worth changing this. Any implicit behavior like that would also throw me off guard. Not worth it.
I assume this is for all the spam that we were manually deboosting? If so, ship it. Does this rely on the reported domain from the host? I forget the name of this but i.e. IRC servers simply set the vhost to this, but they usually ignore it. Some satellite ISP's also report different results. If this has nothing to do with that then we are good. HOWEVER, a flag for servers to decide on a hard IP domain check might be a good idea, but i think minetest.conf handles that so this note is dumb |
While this fixes a very obvious vector for fake servers, that wasn't really the intent.
That's called reverse DNS and it's not used here. |
Yeah thats what i was thinking of. Thank you. An option to maybe enforce that per server... is this a bad idea? I can't think of a use of it though |
Co-authored-by: ShadowNinja <[email protected]>
old domain verification:
1.2.3.4
announcesfoo.com
which resolves to1.2.3.4
and2001:db8::1
problem: the domain verification has been disabled in prod for a long long time since it caused too many false-positive issues
A common problem is that the announce request comes over IPv6 (these days often configured automatically), but at the same time the domain does not have an IPv6 address.
(most people don't care or have reasons for avoiding it and you also need
ipv6_server=true
for it to work)new domain verification:
1.2.3.4
announces4.5.6.7
1.2.3.4
announcesfoo.com
which points to1.2.3.5
new domain verification (intended future change, next month):
¹: there are a bunch of big servers that accidentally fail this check. hence the grace period.