22-05-2012, 01:18 PM
I moved this thread here, so people other than high admins (including guests) can read it, because I will soon release the source code for the authentication plugin for other clans to integrate
[Update#2]
TODO list for my own reference:
[Update]
I decided to move this thread from the Master Supreme Base to this forum.
Feel free to comment on this and post suggestions or questions if you have any.
[/Update]
Hi,
I'd like to present my recent experiments.
I went for another attempt at writing a useful GUID spoofing protection,
and I think I came up with a rather cool concept.
First consider this simple PHP script:
All it does is sending back all the data it received (this just serves as a proof of concept).
So I wrote a QMM plugin that is capable of POSTing all userinfo associated with a client to a remote web server upon connection.
The tricky part is, that we can now ask the web server (in this case our PHP script) to do something with that information and then tell us what to do.
As mentioned above, for testing purposes I just let the script return all the info it receives, which the plugin will print to server log:
As you can see, the userinfo contains lots of interesting information, such as ip, MAC and GUID.
We could now have the PHP script check those information against the forum database, so we could see if the IP provided matches with the last known IP address used to browse the forum.
This, of course, means that we have to associate GUIDs with forum accounts. That should be fairly easy, if we just add another profile field. I actually wrote a program long ago that would allow people to proof their ownership over a certain GUID by checking the etkey on the computer of that person. We might as well just ask people to upload their etkey and calculate the GUID from that.
Anyways, so the cool thing is that we could actually detect if someone uses a GUID he is not supposed to use and then do some action based on that. We might ask the player to enter a PIN code that he can look up in his forum account or something like that.
And as long as a player is not authorized he will be unable to use any !commands (maybe even prevent any action).
Now that's pretty cool already, but this might be useful for many more things, like:
And that's just what I came up within 2 minutes. By allowing the servers to talk to a remote server like this, we can integrate them in a way that is extremely flexible.
As always, this is a work in progress and might not ever be finished. But I personally think it's pretty cool and I don't think I'll lose interest in this soon :P
-- Ligustah
[Update#2]
TODO list for my own reference:
- ignore omni bots
[Update]
I decided to move this thread from the Master Supreme Base to this forum.
Feel free to comment on this and post suggestions or questions if you have any.
[/Update]
Hi,
I'd like to present my recent experiments.
I went for another attempt at writing a useful GUID spoofing protection,
and I think I came up with a rather cool concept.
First consider this simple PHP script:
Code:
<?php
print_r($_POST);So I wrote a QMM plugin that is capable of POSTing all userinfo associated with a client to a remote web server upon connection.
The tricky part is, that we can now ask the web server (in this case our PHP script) to do something with that information and then tell us what to do.
As mentioned above, for testing purposes I just let the script return all the info it receives, which the plugin will print to server log:
Code:
ClientBegin: 0
[HTTP] received response code 200
Array
(
[cg_delag] => 1
[cg_jaymiscflags] => 0
[cg_etVersion] => Enemy Territory, ET 2.60c
[cg_uinfo] => 13 0 30
[cg_jaymod_title] => Jaymod 2.2.0
[cl_mac] => c4:17:fe:b8:11:a8
[cl_cpu] => i586
[pmove_fixed] => 0
[g_password] => none
[cl_guid] => 1CD338CA42008CCF264EC21BEF09D67E
[cl_punkbuster] => 1
[cl_anonymous] => 0
[snaps] => 20
[rate] => 25000
[name] => Ligustah
[cl_wwwDownload] => 1
[protocol] => 82
[qport] => 218
[challenge] => -1652453754
[ip] => 141.23.85.9:27961
)As you can see, the userinfo contains lots of interesting information, such as ip, MAC and GUID.
We could now have the PHP script check those information against the forum database, so we could see if the IP provided matches with the last known IP address used to browse the forum.
This, of course, means that we have to associate GUIDs with forum accounts. That should be fairly easy, if we just add another profile field. I actually wrote a program long ago that would allow people to proof their ownership over a certain GUID by checking the etkey on the computer of that person. We might as well just ask people to upload their etkey and calculate the GUID from that.
Anyways, so the cool thing is that we could actually detect if someone uses a GUID he is not supposed to use and then do some action based on that. We might ask the player to enter a PIN code that he can look up in his forum account or something like that.
And as long as a player is not authorized he will be unable to use any !commands (maybe even prevent any action).
Now that's pretty cool already, but this might be useful for many more things, like:
- Check the connection GUID against a global banlist
- Play a birthday song on the server.
- Allow people to automatically have their level set, if they lost it for whatever reason.
- Issue promotions via a web site
- Remind people to check forum, if they have been inactive there for some time
- Automatically give level to people in the members group or remove it if they are not in
- Automatically create banners with recent forum announcements.
- Allow players to send private messages to players on another server.
And that's just what I came up within 2 minutes. By allowing the servers to talk to a remote server like this, we can integrate them in a way that is extremely flexible.
As always, this is a work in progress and might not ever be finished. But I personally think it's pretty cool and I don't think I'll lose interest in this soon :P
-- Ligustah
I'm quite busy, so unless it's a quick thing or really urgent I am unlikely to be able to answer PMs throughout the week, but I try to reach out to everyone who contacted me during the weekends. If it's urgent, you can also contact any of the supremes, they can do a lot of things or relay directly to me if necessary.




Join us on our TWC Discord channel



![[Image: mayhem.png]](http://zwartpet.nl/mayhem.png)
![[Image: slaughterhaus.gif]](http://img692.imageshack.us/img692/3509/slaughterhaus.gif)
.![[Image: Naamloos14.png]](http://i898.photobucket.com/albums/ac182/Banjerman/Naamloos14.png)

(Thanks lig![[Image: j6tp9l.png]](http://i50.tinypic.com/j6tp9l.png)
![[Image: 9rk0tt.jpg]](http://i43.tinypic.com/9rk0tt.jpg)