C++ - Sql injection-Arkadaş-Fısıltı-Lonca Fix

  • Konuyu başlatan Konuyu başlatan ONURSTEEL
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 20
  • Görüntüleme Görüntüleme 7K

ONURSTEEL

Level 5
Katılım
27 Ara 2016
Konular
36
Mesajlar
917
Reaksiyon Skoru
160
Altın Konu
0
TM Yaşı
9 Yıl 5 Ay 17 Gün
Başarım Puanı
57
Yaş
28
MmoLira
19
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!


Bilinen ve doğabilecek tüm "Sql İnjection" fixi ;




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.
 
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.
 
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.
Bİlgi paylaşıldıkça güzeldir. Paylaş o zaman sende şu SQL olayı tamamıyla kapansın ?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)