HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Bilinen ve doğabilecek tüm "Sql İnjection" fixi ;
../Source/game/src/db.cpp aç
Arat ;
Kod:void DBManager::Query(const char * c_pszFormat, ...)
Kod bloğunu değiştir ;
Kod:void DBManager::Query(const char * c_pszFormat, ...) { char szQuery[4096]; va_list args; va_start(args, c_pszFormat); vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args); va_end(args); std::string sQuery(szQuery); m_sql.AsyncQuery(sQuery.substr(0,sQuery.find_first_of(";")==-1?sQuery.length(): sQuery.find_first_of(";")).c_str()); }
Arat ;
Kod:SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)
Değiştir ;
Kod:SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...) { char szQuery[4096]; va_list args; va_start(args, c_pszFormat); vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args); va_end(args); std::string sQuery(szQuery); return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == -1 ? sQuery.length(): sQuery.find_first_of(";")).c_str()); }
Başlıktaki gibi Sql injection-Arkadaş-Fısıltı-Lonca Fixi
messenger_manager.cpp aç
Arat ;
Kod:
void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)
Kod bloğunu değiştir ;
Kod:
void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)
{
if (companion.empty())
return;
char companionEscaped[CHARACTER_NAME_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(companionEscaped, sizeof(companionEscaped), companion.c_str(), companion.length());
DBManager::instance().Query("DELETE FROM messenger_list%s WHERE account='%s' AND companion = '%s'",
get_table_postfix(), account.c_str(), companionEscaped);
__RemoveFromList(account, companion);
sys_log(1, "Messenger Remove %s %s", account.c_str(), companion.c_str());
TPacketGGMessenger pack;
pack.bHeader = HEADER_GG_MESSENGER_REMOVE;
strlcpy(pack.szAccount, account.c_str(), sizeof(pack.szAccount));
strlcpy(pack.szCompanion, companion.c_str(), sizeof(pack.szCompanion));
P2P_MANAGER::instance().Send(&pack, sizeof(TPacketGGMessenger));
}
guild_manager.cpp aç
Arat ;
Kod:
std::unique_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
get_table_postfix(), __escape_name));
Üstteki kod yoksa bunu arat ;
std::auto_ptr<SQLMsg> pmsg(DBManager::instance().DirectQuery("SELECT COUNT(*) FROM guild%s WHERE name = '%s'",
get_table_postfix(), gcp.name));
Üstüne ekle ;
Kod:
static char __escape_name[GUILD_NAME_MAX_LEN * 2 + 1];
DBManager::instance().EscapeString(__escape_name, sizeof(__escape_name), static_cast<const char *>(gcp.name), sizeof(gcp.name));
Var ise arat ;
Kod:
get_table_postfix(), gcp.name
Değiştir ;
Kod:
get_table_postfix(), __escape_name
Son düzenleme:
Bir sene kadar sonradan gelıyorsun ama olsun 
Edit//
Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.

Edit//
Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
Son düzenleme:
bizlerle paylaşırsan seviniriz kardeş teşekkürler iyi forumlar
Bir sene kadar sonradan gelıyorsun ama olsun
Edit//
Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
Konudaki gereksiz yorumlar silindi.
Lütfen bahsi geçen buglar ile ilgili açıklama veya video&fotoğraf şeklinde kanıt ekleyiniz.
Lütfen bahsi geçen buglar ile ilgili açıklama veya video&fotoğraf şeklinde kanıt ekleyiniz.
Bİlgi paylaşıldıkça güzeldir. Paylaş o zaman sende şu SQL olayı tamamıyla kapansın ?Bir sene kadar sonradan gelıyorsun ama olsun
Edit//
Ek olarak sadece db.cpp'den bir kod değiştirerek bilinen ve doğabilecek tüm sql injectleri fixlemiş olursun.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 11
- Görüntüleme
- 1K
- Cevaplar
- 4
- Görüntüleme
- 274
- Cevaplar
- 12
- Görüntüleme
- 1K
