mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-04-25 07:57:01 -05:00
Verify that source IP is valid for server requests
Currently, server authentication for updating the ladder and for uploading replays is done by comparing the hash of the token provided by the server to the hash on record. This commit adds a second layer of authentication by also verifying that the request actually originates from the Pokemon Showdown server in question. For now, I have also maintained the server token check as a form of two-factor authentication.
This commit is contained in:
parent
e3be0b3ea3
commit
1208dee10f
10
action.php
10
action.php
|
|
@ -164,8 +164,9 @@ foreach ($reqs as $reqData) {
|
|||
$server = @$PokemonServers[@$reqData['serverid']];
|
||||
|
||||
//var_export($users->getUserData($reqData['p1']));
|
||||
if (!$server || $server['token'] !== md5($reqData['servertoken']))
|
||||
{
|
||||
if (!$server ||
|
||||
($_SERVER['REMOTE_ADDR'] !== gethostbyname($server['server'])) ||
|
||||
($server['token'] !== md5($reqData['servertoken']))) {
|
||||
$out = 0;
|
||||
break;
|
||||
}
|
||||
|
|
@ -187,8 +188,9 @@ foreach ($reqs as $reqData) {
|
|||
$server = @$PokemonServers[@$reqData['serverid']];
|
||||
|
||||
//var_export($users->getUserData($reqData['p1']));
|
||||
if (!$server || $server['token'] !== md5($reqData['servertoken']))
|
||||
{
|
||||
if (!$server ||
|
||||
($_SERVER['REMOTE_ADDR'] !== gethostbyname($server['server'])) ||
|
||||
($server['token'] !== md5($reqData['servertoken']))) {
|
||||
$out = 0;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user