Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
Поиск
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Web обвязка/[шара] Админка для управление сервером Ява (хакерский вариант)
Поиск

[шара] Админка для управление сервером Ява (хакерский вариант)

42 ответов1,576 просмотровСейчас просматривают: 1
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 00:39

Требуется сервачек для тестов)
Пока бета-версия.

Описание:
Админка написана на php, позволяет управлять чарами, акками и вещами.
Вся админка это 1 файл, в нем конфиг и все нужные модули.
Админка не требует добавления чего-либо в базу, не требует картинок.

Системы защиты пока нет, есть обманный маневр. (в версии 0.2 уже есть защита)
при старте админки показывает левый текст и ссылки, нужно тыкнуть верную, что бы попасть в рабочую область.
Также можно относительно безболезненно сменить название файла админки (изменяем название файла и в конфигах об этом пишем.)

Внимательно прочтите конфиг в самом начале файла.

Beta 0.3
1.Исправил пару важных багов.
2.Немного переработал код.
3.Добавил логирование обращений к скрипту(уверен, что многим функция пригодится)
4.Теперь скрипт полностью совместим с базой сервера la2base interlude платная. (конфиг есть)
5.Возможно работает с русскими никами - нужно тестить. (на локальных тестах, все работает)
6.Возможно что-то еще - раз не помню, значит не важно.
_http://dump.ru/file/3178415

Beta 0.2
Добавил защиту по логину с паролем и IP
_http://dump.ru/file/3160075

Beta 0.1
скачать:
_http://dump.ru/file/3159928

0
Сергей
Сергей

Пользователь

Ветеран

Постов: 1059

На форуме с: 09.06.2007

Репутация: +736

Рейтинг: 0

· 03.08.2009, 01:13

Напиши мне, перетрём =)

PS: дома буду после 5 вечера по МСК.

Главная ошибка одится в полуметре от монитора...

0
pchayka
pchayka

Пользователь

Ветеран

Постов: 1304

На форуме с: 01.02.2008

Репутация: +1313

Рейтинг: 0

· 03.08.2009, 01:24

Сам писал?

— You're an amateur

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 01:33

сам конечно

0
DioNiR90
DioNiR90

Пользователь

Бывалый

Постов: 146

На форуме с: 07.06.2007

Репутация: +70

Рейтинг: 0

· 03.08.2009, 02:32

axelll, проделаная работа большая, работает всё что ты написал.
Но я не могу не заметить тот факт что я тоже веб программист, и на что он смотрит когда видит чужие исходнки?
Первым делом на стиль кода.

axelll, не пойми меня не правельно, но почитай
_http://habrahabr.ru/blogs/php/38318/

Кому как не тебе знать о фильтрации данных?
Малоли что выдаст GET, и потом будет куча ошибок.
Поэтому простое и банальное mysql_real_escape_string в MySQL запросах никому не помешает.

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 03:52

DioNiR90: axelll, проделаная работа большая, работает всё что ты написал.
Но я не могу не заметить тот факт что я тоже веб программист, и на что он смотрит когда видит чужие исходнки?
Первым делом на стиль кода.

axelll, не пойми меня не правельно, но почитай
_http://habrahabr.ru/blogs/php/38318/

Кому как не тебе знать о фильтрации данных?
Малоли что выдаст GET, и потом будет куча ошибок.
Поэтому простое и банальное mysql_real_escape_string в MySQL запросах никому не помешает.


я не веб-программист, потому учусь на тех скриптах, что пишу.
по поводу стиля - если смотреть через блокнот - то бардак, если через прогу с которой работаю, все по стилю (ну практически), иначе просто нереально работать.

Фильтрация... пока сбоев не было, сколько тестил. о sql-инъекциях даж не волнуюсь, программа не того типа.
Но освоить mysql_real_escape_string конечно нужно.

а пока следующая версия.
Добавил защиту по ипу и паролю.
_http://dump.ru/file/3160075

0
Mangoost
Mangoost

Пользователь

Участник

Постов: 34

На форуме с: 26.04.2009

Репутация: +9

Рейтинг: 0

· 03.08.2009, 04:26

Для новичка нормально.

Совет:
Переписать весь код в функции, а лучше в 1 единый класс.
Запускать функции или методы класса через диспетчер.
Разделить HTML от PHP в отдельные файлы.
Использовать типы boolean не как "1", "0", а true, false
Проверять boolean типы с помощью ===

И так далее...

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 04:28

Mangoost: Для новичка нормально.

Совет:
Переписать весь код в функции, а лучше в 1 единый класс.
Запускать функции или методы класса через диспетчер.
Разделить HTML от PHP в отдельные файлы.
Использовать типы boolean не как "1", "0", а true, false
Проверять boolean типы с помощью ===


1. код в функции это следующий этап развития )))
2. пока даж не представляю о чем ты.
3. вся суть админки в том, что это 1 файл.
4. почему именно boolean? какая тут необходимость?
5. см. п.4

0
Mangoost
Mangoost

Пользователь

Участник

Постов: 34

На форуме с: 26.04.2009

Репутация: +9

Рейтинг: 0

· 03.08.2009, 04:55

boolean типы ты уже с опытом поймёшь для чего они нужны.

Пример:
У тебя есть какая то функция которая возвращает правду или лож.

как ты будет возвращать результат.
1. return false; return true;
2. return '0'; return '1';
3. return 0; return 1;

и проверка результата:
1. if ($result === true) { }, if ($result === false) { }
2. if ($result) { }, if (!$result) { }
3. if ($result == '0') { }, if ($result == '1') { }

Я конечно не сомневаюсь в твоих возможностях и даже поддерживаю так как не всякий разберется в таком количестве условий и обьема кода.
Аш на 1997 строк написал. good.gif

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 04:56

Mangoost: boolean типы ты уже с опытом поймёшь для чего они нужны.

Пример:
У тебя есть какая то функция которая возвращает правду или лож.

как ты будет возвращать результат.
1. return false; return true;
2. return '0'; return '1';
3. return 0; return 1;

и проверка результата:
1. if ($result === true) { }, if ($result === false) { }
2. if ($result) { }, if (!$result) { }
3. if ($result == '0') { }, if ($result == '1') { }

я так понимаю, это ради удобства кодера?
1 и 0 - вполне рабочие варианты.

покажи, как именно можно сделать функцию из какой-либо части моего кода.
Буду учится.

0
DioNiR90
DioNiR90

Пользователь

Бывалый

Постов: 146

На форуме с: 07.06.2007

Репутация: +70

Рейтинг: 0

· 03.08.2009, 05:03

Код
return false; return true;

А что тебе мешает проверять это так:
Код
if ($result == 0) { }, if ($result == 1) { }

Можно и так:
Код
if ($result == false) { }, if ($result == true) { }


В ходе работы я не часто втречал чтобы так придерались к переменной используя 3 знака равно.

0
DioNiR90
DioNiR90

Пользователь

Бывалый

Постов: 146

На форуме с: 07.06.2007

Репутация: +70

Рейтинг: 0

· 03.08.2009, 05:29

Цитата
по поводу стиля - если смотреть через блокнот - то бардак, если через прогу с которой работаю, все по стилю (ну практически), иначе просто нереально работать.

Я работаю через Notepa++ и многие разработки от разных разработчиков вижу хорошо и читабельном стиле.
От сюда я делаю вывод, что если я вижу не читабельный стиль, это уже не программа виновата в которой программист работает.

Цитата
Фильтрация... пока сбоев не было, сколько тестил. о sql-инъекциях даж не волнуюсь, программа не того типа.
Но освоить mysql_real_escape_string конечно нужно.

Дело не в том что есть и чего нет.
Дело в том что может быть.
Пойми одно, малоли что взбредёт пользователю в голову, ты может знаешь или работал с такими людьми которые сами порой не понимают зачем они это делали.
Поэтому чтобы избавить их от всяких проблем и делаются лишние проверки и фильтрации.
Иммено поэтому перед выкладкой в шару, и надо так делать.

Еслиб сделал только для себя то тогда оно и не нужно.

0
Mangoost
Mangoost

Пользователь

Участник

Постов: 34

На форуме с: 26.04.2009

Репутация: +9

Рейтинг: 0

· 03.08.2009, 05:39

Код
<?php
//Диспетчер
function dispatch()
{
    $action = (isset($_GET['action']) && trim($_GET['action']) != "")?$_GET['action']:'index';

    //Что бы не мешалась
    unset ($_GET['action']);
    
    $funtion_name = 'action'.ucfirst($action);
    //Проверяем на наличие функции
    if (!function_exists($funtion_name))
    {
        //404
        header('HTTP/1.1 404 File Not Found');
        exit(' - 404 -');
    }
    else
    //Вызываем функцию и передаем доп. параметры
    call_user_func_array($funtion_name, $_GET);
}

//Функции

function actionIndex()
{
    echo "Acton Index<br>
    Params:<br>";
    var_dump(func_get_args());
}

function actionTest($var1)
{
    echo "Acton Test<br>
    Params:<br>";
    echo "var1: ".$var1;
}


//Запускаем диспетчер
dispatch();


Пример самого простого диспетчера

url/index.php?action=index&var1=value1
url/index.php?action=test&var1=value1

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 05:50

DARKDOG: axelll вроде не новенький, а темы не по шаблону создаешь...

да, ошибся.
не вижу, как именно исправить название темы.

0
D
Dimon

Пользователь

Бывалый

Постов: 288

На форуме с: 09.03.2008

Репутация: +78

Рейтинг: 0

· 03.08.2009, 08:36

хорошая вещь....продолжай в том же духе.... ok.gif

0
L2Forgotten
L2Forgotten

Пользователь

Бывалый

Постов: 103

На форуме с: 03.05.2008

Репутация: +47

Рейтинг: 0

· 03.08.2009, 09:03

Хм как им пользоваться ? Открваю большая надпись и всё !!!

0
D
Dimon

Пользователь

Бывалый

Постов: 288

На форуме с: 09.03.2008

Репутация: +78

Рейтинг: 0

· 03.08.2009, 09:13

L2Forgotten: Хм как им пользоваться ? Открваю большая надпись и всё !!!


прочти внимательнее описание

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 11:44

bigman3000: вместо руских ников "??????"

и ошибка
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ma/domains/ru/public_html/apache.php on line 1950

вот строка if ($clan[clan_name]=='') { $clan[clan_name]="-"; }

и ещё нада левл поднять до 85 а то в адмике можно поднять чару только до 78

1. Русские ники
выложи дамп таблицы characters (лучше в личку).
посмотрим, как именно реализовано.

2. с ошибкой разберусь в след. версии

3. до 85 сделаю в след. версии.

0
DioNiR90
DioNiR90

Пользователь

Бывалый

Постов: 146

На форуме с: 07.06.2007

Репутация: +70

Рейтинг: 0

· 03.08.2009, 15:47

axelll,
По поводу ошибки, проверяй запросы на выполняемость.
Допустим есть код:

Код
$check = mysql_query("SELECT $obj_id_char_conf FROM characters WHERE char_name ='$name'");


У тебя банально видно что если какая то ошибка то у тебя идёт дальнейшая работа с результатом, которого может не быть.
Правельнее записать запрос так:
Код
$check = mysql_query("SELECT $obj_id_char_conf FROM characters WHERE char_name ='$name'")die('Invalid query: ' . mysql_error());

Как увидел изменения в конце: die('Invalid query: ' . mysql_error());
В случае ошибки выведется сама ошибка а скрипт приостановится.
Тогда не будет подобных ошибок как у тебя.

Русские ники это потому что кодировка в Мускуле кривая, после подключения к мускулу надо выполнять такой запрос:
Код
mysql_query("SET NAMES 'cp1251'")die('Invalid query: ' . mysql_error());

0
A
axelll

Пользователь

Ветеран

Постов: 577

На форуме с: 15.07.2007

Репутация: -99999999

Рейтинг: 0

· 03.08.2009, 15:50

DioNiR90: axelll,
По поводу ошибки, проверяй запросы на выполняемость.
Допустим есть код:
Код
$check = mysql_query("SELECT $obj_id_char_conf FROM characters WHERE char_name ='$name'");


У тебя банально видно что если какая то ошибка то у тебя идёт дальнейшая работа с результатом, которого может не быть.
Правельнее записать запрос так:
Код
$check = mysql_query("SELECT $obj_id_char_conf FROM characters WHERE char_name ='$name'")die('Invalid query: ' . mysql_error());

Как увидел изменения в конце: die('Invalid query: ' . mysql_error());
В случае ошибки выведется сама ошибка а скрипт приостановится.
Тогда не будет подобных ошибок как у тебя.

Русские ники это потому что кодировка в Мускуле кривая, после подключения к мускулу надо выполнять такой запрос:
Код
mysql_query("SET NAMES 'cp1251'")die('Invalid query: ' . mysql_error());

да это все понятно. я исправил иначе - сделал проверку перед запросом.
хотя и твой вариант тоже нужен.

0
Тема закрыта для ответов