[Release] Linkos MU Website 2.0 With Built-in WebShop & Admin Panel

Diyan

Well-Known Member
Joined
Nov 21, 2012
Messages
332
Reaction score
252
БЪЛГАРСКИ ЕЗИК

Здравейте приятели и съфорумници. Измина известно време от както не използвам този уебсайт за сървъра си и за това реших да го споделя с вас. Причината, поради която не го използвам е това, че върнах версията на сървъра си отново на класическата 99b+. Препоръчвам използването на този уебсайт за версии от Сезон 2 нагоре във вида, в който го публикувам, тъй като вградения уебшоп е кодиран за по-нови версии. Който желае може да направи необходимите преработки и да използва уебсайта и за по-стари версии. За съажеление не разполагам с времето да го направя за вас. Ето и списък на всички функции и екстри, които уеб пакета съдържа:

ОСНОВНА ИНФОРМАЦИЯ ЗА УЕБ ПАКЕТА

1. Модули на уеб пакета:

- Иновативен модул за публикуване на новини през вградения администраторски панел на уебсайта;
- Модул за регистрация на акаунт;
- Модул с информация и връзки за сваляне на клиент и съответните системни изисквания;
- Модул с класации: класация на герои по рестарти, класация на гилдиите по точки, класация на убийците по брой убийства, класация на акаунтите прекарали най-много време в игра по часовем класация на играчите на линия в реално време;
- Модул със списък на баннатите герои и блокираните акаунти (включва името на админа баннал героя/блокирал акаунта, причината и времетраенето на бана/блока);
- Модул със списък на администраторите и гейм мастърите на сървъра (включва информация за това дали са на линия или кога за последно са били в игра);
- Модул с препратка към форумите, както и социалните мрежи на сървъра (Фейсбук и Туитър);
- Модул със статистиката на сървъра (съдържа и информация/статистика за Castle Siege);
- Модул за датата и часа на сървъра във формат местно време;

2. Функции на потребителския панел:

- Смяна на парола;
- Рестартиране на герой;
- Добавяне на точки (статс);
- Изчистване на убийствата;
- Коригиране/рестартиране на точки (статс);
- Преглед на инвентара на героите в акаунта и сандъка (Vault) на акаунта в реално време;
- Обмяна на часове прекарани в сървъра за кредити;
- Модул с информация за закупуване на кредити с кратко съобщение (SMS) и PayPal;
- Модул с препратка към система за възнаградено гласуване (Vote Reward);
- Индикация за статус на акаунт и/или герой;
- Индикация за налични кредити в акаунта;

3. Функции на вградения Администраторски Панел:

- Модул за банване на герои с посочена причина и времетраене;
- Модул за блокиране на акаунти с посочена причина и времетраене;
- Модул за премахване на банове на герои и отблокиране на акаунти;
- Модул за редактиране на герои (не включва редактиране на предмети в инвентара или сандъка);
- Модул за добавяне на новини в уебсайта;
- Модул за редактиране на статута на даден член на екипа (Administrator/Co-administrator/Game Master);
- Модул за манипулиране на кредитите в даден акаунт;
- Модул за списък с акаунтите с най-много кредити;
- Модул за списък с акаунтите, за които има най-много изпратени кратки съобщения (SMS);
- Модул за преглед на инвентара на даден герой или сандъка на даден акаунт в реално време;
- Модул със списък за администраторска активност (отчита всички действия предприети от член на екипа, например добавяне на кредити, редактиране на герой, добавяне на бан, добавяне на новини и т.н.);

4. Функции на вградения WebShop:

- Модул за закупуване на предмети;
- Модул за закупуване на рестарти;
- Модул за закупуване на Zen;
- Модул за промяна на името на даден герой, който се намира в акаунта, с който е вписан потребителя;
- Модул за промяна на класа на даден герой, който се намира в акаунта с който е вписан потребителя;
- Модул за промяна на символа на дадена гилдия, чиито гилд мастър се намира в акаунта, с който е вписан потребителя;
- Модул за премахването на бана на даден герой, който се намира в акаунта, с който е вписан потребителя;
- Модул за продаване на даден предмет обратно в уеб магазина, като получавате даден процент от първоначалната му стойност. Този процент може да се конфигурира по ваше желание;

5. Защита на уеб пакета

Изключително много се дразня, когато гледам малчуганите да говорят за защита в проценти. Съжалявам, че ще ги разочаровам, но няма да говоря в проценти. Това което ще кажа е, че уеб пакета е с много добра базова защита на високо ниво и в него няма оставени тъй наречените "авторски дупки" нито "шелове". В двугодишен период съм използвал уебсайта във вида, в който го споделям с вас и не съм имал проблеми със сигурността, нито с функционалността му. Вие също не би трябвало да имате, стига да го инсталирате и конфигурирате правилно. Нека ви напомня, че добре защитен уебсайт не гарантира цялостната защита на сървъра ви, но драстично намалява усилията, необходими за нея. Защитите ли добре самия сървър и базата му данни, то няма защо да се притеснявате за защитата на този уебсайт.

ИНСТАЛАЦИЯ

Препоръчвам използването на уеб пакета с Апаче уеб сървъра на XAMPP (версия 1.7 или по-нова)! Уебсайта е съвместим и с други уеб сървъри, но тъй като съм го използвал единствено на горепосочения, не мога да ви гарантирам че ще работи безупречно с различен уеб сървър.

1. Изпълнете всички функции (куерита) от точка едно на текстовия документ "install.txt", като ги изпълните една по една в "SQL Query Analyzer".
2. Изтриите процедурата "WZ_DISCONNECT_MEMB" в базата данни на сървъра си. Тя обикновено се намира тук: "SQL Databases\MuOnline\Stored procedures". След това я заменете с тази, която се намира в точка две от текстовия документ "install.txt", като копирате функцията (куерито) и го изпълните в "SQL Query Analyzer" като използвате база данни "MuOnline".
3. Настройте уеб пакета по ваше желание от файла "shopy.config.php".
4. Насладете се на един съвременен и мултифункционален уеб пакет с приятен (по мое мнение) дизайн.

ВРЪЗКА ЗА СВАЛЯНЕ НА УЕБ ПАКЕТА

MediaFire (4.05 MB): Linkos MU Website 2.0

СНИМКА НА УЕБСАЙТА

10268430_585765148186119_2838188115984200044_n.png


КРЕДИТИ

WEBZEN Inc , Savoy , mi7aka , Mephisto , Damian , AnonOps (Собственик на Linkos MU)



ENGLISH TRANSLATION
Hello dear friends and forum mates. It's been a while since I stopped using this website for my own server and now I decided to share it with you. The reason I'm no longer using it is simply because I reverted my server back to its classic version 99b+ and this web is no longer needed. Please use this for version Season 2 and higher as the built-in web shop is coded for those versions. Those of you that can and would like to change that small part of the code will also be able to use it for the older versions. Unfortunately I don't have the time to do it for you. Here's some information on what this web pack has:

GENERAL INFORMATION

1. Website modules:

- Innovative news module that can be managed from the Admin Panel within the website;
- Account registration module;
- Downloads module;
- Rankings module: characters, guilds, pvp/killers, total online time, online players;
- Banned characters and blocked accounts module;
- Staff list module (contains solid description including status and last seen online);
- Forums and social media links module;
- Server statistics module (includes Castle Siege);
- Server date and time module;

2. User panel functions:

- Change password module;
- Character reset module;
- Add stats module;
- PK clear module;
- Fix/reset stats module;
- Inventory/Vault live preview module;
- Trade online hours module;
- Get credits module;
- Vote reward external link module within the user panel (I have released separate Vote Reward System you can use with this website);
- Characters and account status module;
- Last character used by the account module;
- Credits balance monitor module;

3. Built-in Admin Panel functions:

- Ban character module (can set reason and time);
- Block account module (can set reason and time);
- Unban character/unblock account module;
- Edit character module (does not include items edit);
- News system management module;
- Administrators management system module (includes rank: Administrator/Co-administrator/Game Master);
- User credits management module;
- Top credited accounts list module;
- Top SMS sent by account module;
- View character inventory/vault in real-time;
- Search for character and/or account module;
- Admins log system module (traces all staff activity conducted on the website such as add credits, edit character, add news, add new ban or block etc.);

4. Built-in WebShop functions:

- Get items;
- Get resets;
- Get Zen;
- Character name change;
- Character class change;
- Change Guild Mark;
- Unban Character;
- Sell items back against refund in percentage (can be configured);

5. Website security

I hate it when some kids start talking about security of websites in percentages. I will disappoint them by not stating any percentage announcements. What I can tell you is that the base security of this website is very good and a high-class one. During my 2 years usage of this website I have had no security or performance/productivity issues. Once you install and configure it properly you will not have any problems with it. That means there is none of those so called "author holes" nor "shells". Please remember that a very well secured website can not guarantee your full server security because you need to take care of server security too as it's the other 50% of the job! With this website if you secure your server well you don't have to worry about being hacked any more.

INSTALLATION

1. Execute all the SQL queries at PART 1 in "install.txt" one by one in "SQL Query Analyzer" by using the database "MuOnline".
2. Delete the procedure "WZ_DISCONNECT_MEMB". It's usually located in "SQL Databases\MuOnline\Stored procedures". After you do that you need to create it again by executing the SQL query at PART 2 in "install.txt" in "SQL Query Analyzer" by using database "MuOnline".
3. Configure the website to your preferences by editing "shopy.config.php".
4. Enjoy one contemporary and highly functional website with, by my opinion, very nice design.

DOWNLOAD LINK

MediaFire (4.05 MB): Linkos MU Website 2.0

WEBSITE SCREEN SHOT

10268430_585765148186119_2838188115984200044_n.png


CREDITS

WEBZEN Inc , Savoy , mi7aka , Mephisto , Damian , AnonOps
 
Last edited:
Дръпнах го да видя secure има незащитени заявки, ще едитна този пост когато го прегледам по обстойно. Иначе ме радват тези сайтове с AJAX
 
Прегледах само сял заявките, който са достъпни за потребителите в папката _modules_(не съм търсил по админ панела но видях че и там имаше)

1. Файла secure.php не върши никаква работа. Може да го замените с това(и трябва):
PHP:
<?php
function secure($var)
{
	$arr= array(";","'","\"","%"," ");
	$var=str_replace($arr,"",$var);
	$var=substr($var,0,10); 
	
	return $var;
}
в момента пази само от ', но това може да се пусне и от php опциите не виждам смисъл в това. Ако командата за сял не използва ' заявката си минава спокойно.

2. addstats.php
Има незащитена $_GET заявка на 33 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));

3. changepassword.php
Има незащитена $_GET заявка на 29 ред.
PHP:
$query = mssql_query("UPDATE MEMB_INFO SET memb__pwd = '".$_GET['password']."' WHERE memb___id = '".secure($_COOKIE['username'])."'");
трябва да стане така:
PHP:
$query = mssql_query("UPDATE MEMB_INFO SET memb__pwd = '".secure($_GET['password'])."' WHERE memb___id = '".secure($_COOKIE['username'])."'");

4. clearpk.php
Има незащитена $_GET заявка на 30 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));

5. functions.php нищо не е защитено надявам се който файлове ползват тези функции да са с филтър, просто не ми се търсеше.

6. clearpk.php
Има незащитена $_GET заявка на 35 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));

7. на imarket.php $_GET заявките с (int) може да се едитват кредитите на "-" (отрицателен intiger) трябва да се сложи някакъв филтър. ако от там се купуват итеми клиента може да си ги прави free или дори да си добавя кредити от там.

Това е за сега. Не мисля, че ще гледам за още но ако попадна ще пиша. Успех с оправянето.
 
Прегледах само сял заявките, който са достъпни за потребителите в папката _modules_(не съм търсил по админ панела но видях че и там имаше)

1. Файла secure.php не върши никаква работа. Може да го замените с това(и трябва):
PHP:
<?php
function secure($var)
{
    $arr= array(";","'","\"","%"," ");
    $var=str_replace($arr,"",$var);
    $var=substr($var,0,10); 
    
    return $var;
}
в момента пази само от ', но това може да се пусне и от php опциите не виждам смисъл в това. Ако командата за сял не използва ' заявката си минава спокойно.

2. addstats.php
Има незащитена $_GET заявка на 33 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));
3. changepassword.php
Има незащитена $_GET заявка на 29 ред.
PHP:
$query = mssql_query("UPDATE MEMB_INFO SET memb__pwd = '".$_GET['password']."' WHERE memb___id = '".secure($_COOKIE['username'])."'");
трябва да стане така:
PHP:
$query = mssql_query("UPDATE MEMB_INFO SET memb__pwd = '".secure($_GET['password'])."' WHERE memb___id = '".secure($_COOKIE['username'])."'");
4. clearpk.php
Има незащитена $_GET заявка на 30 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));
5. functions.php нищо не е защитено надявам се който файлове ползват тези функции да са с филтър, просто не ми се търсеше.

6. clearpk.php
Има незащитена $_GET заявка на 35 ред.
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".$_GET['char']."'"));
трябва да стане така:
PHP:
$chara = mssql_fetch_array(mssql_query("SELECT * FROM Character WHERE Name = '".secure($_GET['char'])."'"));
7. на imarket.php $_GET заявките с (int) може да се едитват кредитите на "-" (отрицателен intiger) трябва да се сложи някакъв филтър. ако от там се купуват итеми клиента може да си ги прави free или дори да си добавя кредити от там.

Това е за сега. Не мисля, че ще гледам за още но ако попадна ще пиша. Успех с оправянето.
Хвърли едно око в core.php, и по-конкретно:
PHP:
foreach($_GET as $key => $value) { $_GET[$key] = secure($value); }
Може би това им е била идеята, макар че на мен никак не ми допада.
 
  • Like
Reactions: LockMU and Diyan
Да но core.php може да се прескочи. site.asd/addstats.php?xxxx=xxxx&xxxx=xxxx&....,
ама няма конект към дб.

Но все пак secure.php няма никаква защита. Нама да пиша заявката която ще работи, защото не мисля, че това е мястото.
 
Да но core.php може да се прескочи. site.asd/addstats.php?xxxx=xxxx&xxxx=xxxx&....,
ама няма конект към дб.

Но все пак secure.php няма никаква защита. Нама да пиша заявката която ще работи, защото не мисля, че това е мястото.

1. Ако заявката ти е:
PHP:
$name = "';drop table character --";
mssql_query("update character set name='$name'");

За да защитиш тази заявка е необходимо да ескейпнеш символът '. Това може да стане с функцията addslashes() и ще си на 100% сигурен, че няма да има проблеми. Не е необходимо да се премахват каквито и да било символи.

2. Ако заявката ти е:
PHP:
$resets = "0;drop table character --";
mssql_query("update character set resets=$resets");

Тук ескейпването на символът ' няма да помогне, но начинът, по който е структурирана заявката предполага, че ще подадеш число тип INT или DOUBLE. В този случай трябва да използваш функцията intval() или floatval(), за да си спокоен и пак не е необходимо да премахваш символи :).
 
da sym ti dal pravo da mi releasvash rabotata?

Credits: Mephisto!
 
Last edited:
da sym ti dal pravo da mi releasvash rabotata?

Credits: Mephisto!
Брат нали знаеш, че закона го позволява. Това, че си спазваме (или поне държим) на някакви неписани правила/закони, не означава, че се отнасят за всички в интернет пространството.
По темата : аз се чудех, защо е толкоз добре направен, а то се оказа, че Mepho го е писал :D
 
  • Like
Reactions: Iwanow1337
препоръчвам на DarkMaster да премахне сайта

ето и причини защо от най маловажната до на сериозната

1. HTML структурата

2. WTF е javascript.php

3. short tags(<?) everywhere

4. не защитени _COOKIE

5. навсякъде _GET и пак не защитен

последните 2 причини са най важни и пак казвам препоръчвам на DarkMaster да премахне сайта много хора ще се излъжат да го ползват
 
Попринцип всеки си ползва неща дръпнати от нета на свой риск. Този форум не носи отговорност за абсолютно нищо
 
1. Файла secure.php не върши никаква работа. Може да го замените с това(и трябва):
PHP:
<?php
function secure($var)
{
	$arr= array(";","'","\"","%"," ");
	$var=str_replace($arr,"",$var);
	$var=substr($var,0,10); 
	
	return $var;
}
в момента пази само от ', но това може да се пусне и от php опциите не виждам смисъл в това. Ако командата за сял не използва ' заявката си минава спокойно.

Като сложих този файл някои модули като Online Time Trade и Login спряха да работят, но използвах този от DTWeb0.1 и всички модули работят
PHP:
<?php

function secure($string, $method)
{
	if (preg_match('/[^a-zA-Z0-9\_\.\-\.@\s]/', $string) && !empty($string))
	{
		$log_file = $_SERVER['REMOTE_ADDR'] . ' [' . date('m-d-Y H:i:s', time()) . '] {' . $method . '} ' . $string . "\r\n";
		file_put_contents('logs/secure.log', $log_file, FILE_APPEND);
		header('Location: index.php');
	}
	$string = trim($string);
	$string = addslashes($string);
	$string = htmlspecialchars($string, ENT_NOQUOTES);
	return $string;
}

if(@isset($_POST))
{
	foreach($_POST as $pkay => $pval)
	{
		$_POST[$pkay]= secure($pval, 'POST: ' . $pkay);
	}
}

if(@isset($_GET))
{
	foreach($_GET as $gkay => $gval)
	{
		$_GET[$gkay]= secure($gval, 'GET: ' . $gkay);
	}
}

?>

От друга страна не знам дали самата защита работи така :D

Edit : Имах качена новина в която имаше / символ и ми отчиташе като атака всеки път като се опитвах да я прегледам или редактирам, така че предполагам работи :D
 
Last edited:
Ако се измисли един маркет за тоя сайт ще е 6 точки
 
В уебсайта има маркет?! (xax)
Не е ли уебшоп? Не съм го разглеждал ... четох първият пост и никъде не видях да пише маркет система а пише уебшоп
 
Не е ли уебшоп? Не съм го разглеждал ... четох първият пост и никъде не видях да пише маркет система а пише уебшоп

Има и маркет, просто трябва да се допише (xax). Само че има и неща за дооправяне по защитата. Има хора, които могат да ти помогнат и с това. Успех в начинанието.