Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Zabezpieczenie funkcji dodawania komentarzy w Gildii przed nadużyciami

Nieaktywny

Featured Replies

Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć,

 

System komentarzy w Gildii jest podatny na nadużycia. Konkretnie, istnieje możliwość tzw. "floodowania" serwera poprzez wysyłanie nadmiernej liczby nowych komentarzy. To zagrożenie może przybrać formę zautomatyzowanego ataku za pomocą specjalnie spreparowanego skryptu, który wykorzystuje lukę w funkcjonalności dodawania komentarzy. Rozwiążemy ten problem poprzez wprowadzenie czasowego ograniczenia wynoszącego 1 minutę przed dodaniem kolejnego komentarza.

 

Prezentacja rozwiązania:

image.png.c17879fc841cf921fabafed6f23d4674.png

 

Implementacja:

📂 Lokalizacja pliku: 'game -> guild.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj:

🔐 Ukryta Treść 🔐

 

 

📂 Lokalizacja pliku: 'game -> guild.h'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'game -> stdafx.h'

 

  Dodaj (jeśli nie masz)

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'share -> locale -> poland -> locale_string.txt'

 

 Dodaj:

🔐 Ukryta Treść 🔐

 

Kompatybilność:

Jeśli masz zaimplementowaną tą poprawkę od wysyłania pustych znaków

To warunek powinien być przed kontrolą czasu, aby po otrzymaniu komunikatu o pustej wiadomości nie dodawało nam limitu czasowego. 

Spoiler
🔐 Ukryta Treść 🔐

 

Opublikowano
guild.cpp:1020:3: error: use of undeclared identifier 'character'
                character->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NOTIFICATION_ADD_COMMEND_GUILD_FLOOD_PROTECTION_%lld"), remainingTime);
                ^

 

Opublikowano

Serdecznie dziękuję za udostępnienie fix. 💪

 

Opublikowano

Jest dużo prostszy sposób i duzo bezpieczniejszy. Nie bez powodu zrobili PulseManager.

 

if (!PulseManager::Instance().IncreaseClock(ch->GetPlayerID(), ePulse::GuildComment, std::chrono::milliseconds(1500))) {
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odczekaj: %.2f"), PULSEMANAGER_CLOCK_TO_SEC2(ch->GetPlayerID(), ePulse::GuildComment));
		return;
	}

 

Opublikowano

Oryginalne zrodlo nie ma miliona rzeczy ktore sa obecnie standardem

Opublikowano
  • Autor

To czekamy na publikację tego modułu może się przydać. W każdym razie nie ma żadnej różnicy w jaki sposób to rozwiążemy efekt jest taki sam. 

Ja nie mam takiego modułu korzystam z brancha mailine_released więc zrobiłem to w ten sposób. Tworzę uniwersalne bug fixy, które będą kompatybilne z oryginalnym źródłem.

  • 2 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.