Перейти к содержанию
Авторизация  
Eanseen

Lineage 2 CMS

Рекомендуемые сообщения

Истоки нашей CMS идут из 2015 года, именно в этом году, была выпущена наша первая CMS

 

Рынок требовал удобный, качественный и самое главное безопасный продукт, коих на рынке тогда не было. Со

временем функционал нашей CMS модернизировался и развивался, благодаря технологии Spring Framework

 

Но все же, в процессе тестов CMS с использованием технологии Spring Framework зарекомендовала себя очень хорошо, и было принято решение заняться новой версией с учетом полученного опыта и отзывов.

 

А теперь поговорим о новой версии:

  • Лучшая безопасность, исключены любые "дырки", которыми славятся PHP разработки
  • Поддержка шаблонов
  • Колесо Удачи
  • reCAPTCHA
  • Поддержка Email уведомлений
  • Неограниченное кол-во логин и game серверов, платформа позволяет работает не только с проектами Lineage 2, но и с любыми Java серверами
  • Никаких SQL запросов, обмен информацией осуществляется по протоколу XMLRPC, легко интегрируется в любую сборку
  • У каждого пользователя в личном кабинете имеется свой удобный склад и история операций с предметами
  • Поощрение за голосование в MMOTOP
  • Добавление новостей и статических страниц
  • Вывод тем с форума
  • Поддержка UnitPay
  • Продукт постоянно дорабатывается

Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-CMS

  • Upvote 9

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а гайд есть по установки?

Как запустить CMS или как внести изменения в сборку ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как внести, то я разобрался уже. У нее отдельная база для работы ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как внести, то я разобрался уже. У нее отдельная база для работы ?

Да, база самой цмс генерится при первом запуске

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас бы json гонять с помощью xml-rpc.  :rofl:

А вообще, молодцы.

Так json из сборки напрямую выводится на front end, уверен что есть и более изящное решение)

А вообще конструктивную критику всегда приветствую

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел ваш гитхаб, интересности,  всяческих успехов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с люсей 1.7 дружит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Истоки нашей CMS идут из 2015 года, именно в этом году, была выпущена наша первая CMS

 

Рынок требовал удобный, качественный и самое главное безопасный продукт, коих на рынке тогда не было. Со

временем функционал нашей CMS модернизировался и развивался, благодаря технологии Spring Framework

 

Но все же, в процессе тестов CMS с использованием технологии Spring Framework зарекомендовала себя очень хорошо, и было принято решение заняться новой версией с учетом полученного опыта и отзывов.

 

А теперь поговорим о новой версии:

  • Лучшая безопасность, исключены любые "дырки", которыми славятся PHP разработки
  • Поддержка шаблонов
  • Колесо Удачи
  • reCAPTCHA
  • Поддержка Email уведомлений
  • Неограниченное кол-во логин и game серверов, платформа позволяет работает не только с проектами Lineage 2, но и с любыми Java серверами
  • Никаких SQL запросов, обмен информацией осуществляется по протоколу XMLRPC, легко интегрируется в любую сборку
  • У каждого пользователя в личном кабинете имеется свой удобный склад и история операций с предметами
  • Поощрение за голосование в MMOTOP
  • Добавление новостей и статических страниц
  • Вывод тем с форума
  • Поддержка UnitPay
  • Продукт постоянно дорабатывается

Было принято решение перевести данный продукт в Open Source, ссылка на GitHub https://github.com/Eanseen7/Lineage-2-CMS

В лс примери проектов которие стоят на вашей СMS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с люсей 1.7 дружит?

XMLRPC прикрути и подружит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

Немного критики:

 

- Все запросы которые делают изменения, надо делать POST'ом, а не тупо ГЕТом херачить, как например сделано в колесе фортуне. Иначе бедный юзер открывая браузер, сам того не зная, просрёт все "билеты.

- Это по Вашему нормально? За такое надо накл зажать. Вкурсе что можете так нахреначить SQL инйекций в подарок случайно? Чем PrepareStatement не угодил? Понимаю что это из веба никто сюда не влезет, но всё же, отвратительно так делать.

stmt = conn.prepareStatement("SELECT thread_id, title, last_post_date, last_post_user_id, last_post_username FROM " + forumTablesPrefix + "xf_thread ORDER BY `xf_thread`.`last_post_date` DESC LIMIT " + forumTopicsCount);

- То что в коде HTML код с текстом, это вообще забавно. Почему не сделать было подгрузку текстов из файла? И так же разнести на ENUMки? Я про это: return new IMessage(IMessage.Type.FAIL, "Идентификатор должен содержать 6-16 символов (A-Za-z0-9)");

- За вас умные люди накодили защиту от CSRF, но Ваше лучшее решение, не разобравшись накой она нужна, тупо отключить и дать взломщикам простор для действий: "csrf().disable()"

- Просто вот, почитайте: https://stackoverflow.com/questions/44839753/returning-json-object-as-response-in-spring-boot, я про этот сложный прикол:  return "{\"result\": {\"message\": \"Запрос успешно обработан\"}}";

- Зачем помогать брутерам лучше жить? Говорите что не верно, акк или пароль. Я конечно понимаю что вы используете капчу, которую уже можно взломать, но всё же? Я про это:

	if(!mAccountService.containsByUsername(mAccount.getUsername()))
		{
			result.rejectValue("username", "mAccount.username", "Аккаунт не найден");
			model.addAttribute("mAccount", mAccount);
			model.addAttribute("page", "cp/enter/auth.vm");
			return "cp/index";
		}

		MAccount temp = mAccountService.findByUsername(mAccount.getUsername());

		BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
		if(!encoder.matches(mAccount.getPassword(), temp.getPassword()))
		{
			result.rejectValue("password", "mAccount.password", "Неверный пароль");
			model.addAttribute("mAccount", mAccount);
			model.addAttribute("page", "cp/enter/auth.vm");
			return "cp/index";
		}

Вердикт:

Чистота кода похрамывает, много грязи, хтмл в коде, простые параметры "кол-во" символов в пароле захардкодено в самом коде (логичнее вынести в конфиг). Не до конца понимания зачем нужен гет и пост?

 

Вообщем оно без "инйекций" на первый вгляд, но причесать код явно надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...