Improved MS security

This commit is contained in:
ceikry 2021-08-10 22:16:48 -05:00
parent b4b26cb583
commit cdc3d65fe8
10 changed files with 42 additions and 54 deletions

View file

@ -10,6 +10,6 @@
"WorldTechnicalInformation": {
"world_limit": "10",
"worldhop_delay": "20000"
}
},
"secret_key": "2009scape_development"
}

View file

@ -29,18 +29,6 @@ public final class ServerConstants {
*/
public static final OperatingSystem OS = System.getProperty("os.name").toUpperCase().contains("WIN") ? OperatingSystem.WINDOWS : OperatingSystem.UNIX;
/**
* The administrators.
*/
public static final String[] ADMINISTRATORS = {
"redsparr0w",
};
public static final String[] DATABASE_NAMES = {
"server",
"global",
};
/**
* Stops from instantiating.
*/

View file

@ -4,6 +4,7 @@ import java.nio.ByteBuffer;
import ms.net.IoReadEvent;
import ms.net.IoSession;
import ms.system.util.ManagementConstants;
import ms.world.WorldDatabase;
import ms.system.util.ByteBufferUtils;
@ -12,11 +13,6 @@ import ms.system.util.ByteBufferUtils;
* @author Emperor
*/
public final class HSReadEvent extends IoReadEvent {
/**
* The password used to verify
*/
private static final String PASSWORD = "0x14ari0SSbh98989910";
/**
* Constructs a new {@code HSReadEvent}.
@ -33,7 +29,7 @@ public final class HSReadEvent extends IoReadEvent {
switch (opcode) {
case 88:
String password = ByteBufferUtils.getString(buffer);
if (!password.equals(PASSWORD)) {
if (!password.equals(ManagementConstants.getSECRET_KEY())) {
System.out.println("Password mismatch (attempt=" + password + ")!");
session.disconnect();
break;

View file

@ -5,7 +5,7 @@ import ms.system.PunishmentStorage
import ms.system.communication.ClanRank
import ms.system.communication.ClanRepository
import ms.system.communication.CommunicationInfo
import ms.system.util.ManagementConstants.Companion.WORLD_HOP_DELAY
import ms.system.util.ManagementConstants.WORLD_HOP_DELAY
import ms.world.GameServer
import ms.world.PlayerSession
import ms.world.WorldDatabase

View file

@ -1,11 +1,11 @@
package ms.system.mysql
import ms.system.util.ManagementConstants
import ms.system.util.ManagementConstants.Companion.DATABASE_HOST_ADDRESS
import ms.system.util.ManagementConstants.Companion.DATABASE_NAME
import ms.system.util.ManagementConstants.Companion.DATABASE_PASSWORD
import ms.system.util.ManagementConstants.Companion.DATABASE_PORT
import ms.system.util.ManagementConstants.Companion.DATABASE_USERNAME
import ms.system.util.ManagementConstants.DATABASE_HOST_ADDRESS
import ms.system.util.ManagementConstants.DATABASE_NAME
import ms.system.util.ManagementConstants.DATABASE_PASSWORD
import ms.system.util.ManagementConstants.DATABASE_PORT
import ms.system.util.ManagementConstants.DATABASE_USERNAME
import java.sql.Connection
import java.sql.DriverManager
import java.sql.SQLException

View file

@ -30,19 +30,20 @@ class ManagementConfigParser(path: String) {
data = parser.parse(reader) as JSONObject
parseDatabaseInformation()
parseWorldTechnicalSettings()
ManagementConstants.SECRET_KEY = data!!["secret_key"].toString()
}
}
private fun parseDatabaseInformation(){
data ?: return
val dbData = data!!["DatabaseInformation"] as JSONObject
ManagementConstants().parseDBProp(dbData)
ManagementConstants.parseDBProp(dbData)
}
private fun parseWorldTechnicalSettings(){
data ?: return
val wtiData = data!!["WorldTechnicalInformation"] as JSONObject
ManagementConstants().parseWTIProp(wtiData)
ManagementConstants.parseWTIProp(wtiData)
}
/**

View file

@ -2,32 +2,31 @@ package ms.system.util
import org.json.simple.JSONObject
class ManagementConstants {
object ManagementConstants {
companion object {
//MySQL main database name
var DATABASE_NAME: String = "global"
//MySQL main database name
var DATABASE_NAME: String = "global"
//MySQL database username
var DATABASE_USERNAME: String = "root"
//MySQL database username
var DATABASE_USERNAME: String = "root"
//MySQL database password
var DATABASE_PASSWORD: String = ""
//MySQL database password
var DATABASE_PASSWORD: String = ""
//MySQL host
var DATABASE_HOST_ADDRESS: String = "127.0.0.1"
//MySQL host
var DATABASE_HOST_ADDRESS: String = "127.0.0.1"
//MySQL port
var DATABASE_PORT: Int = 3306
//MySQL port
var DATABASE_PORT: Int = 3306
//Max amount of worlds supported on the world list
var MAX_WORLD_AMOUNT: Int = 10
//Max amount of worlds supported on the world list
var MAX_WORLD_AMOUNT: Int = 10
//User world hop delay in seconds
var WORLD_HOP_DELAY: Long = 20_000L
//User world hop delay in seconds
var WORLD_HOP_DELAY: Long = 20_000L
}
@JvmStatic
var SECRET_KEY: String = ""
fun parseDBProp(data: JSONObject) {
DATABASE_NAME = data["database_name"].toString()