Goody, will use that script on my moosnet test thing, too, and implement return code checking and proper error messages for the authenticating user. Are there any advantages for not putting the request data into the URL itself, apart from fanciness?
For those who missed the IRC discussion, the password hash transfer method that the current clients support has been named "bmd5" (b for broken), and a yet-to-be-fleshed-out replacement where a good md5 sum is taken is our "md5" authentication method. "sha1" should work the same way, just with sha1 hash functions.
I've got a simple idea how to eliminate the badmin problem for the good "md5" method: the client scrambles the salt as it is sent by the server with the server's IP and port before it enters the system. The server does the same before the salt is sent to the authentication server. Then the hash sent from the client to the badmin server is useless for authentication on any other server.
Technical difficulty here: how does the server know the IP the client knows it under? In the future, the client may connect over ip6 or ip4, and even now, the client may connect over LAN or the Internet. Servers with multiple IPs can keep them apart with "SERVER_IP ALL", but for servers behind a router, telling clients connecting over the LAN and over the internet are indistinguishable, as far as I can tell. And letting the client tell the server which IP it used to connect would subvert the scheme, naturally

We'd need the master server to inform the servers about their public IPs (no problem), and let the server determine its LAN IP with the SERVER_IP ALL method, and then the server needs to try all variants when talking to the authentication server.