Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Bu login alanını benzersiz olması için kullanılıyor zaten çoğu alt yapıda bu şekilde mevzuda oyunun destek ekibini yada yönetimden birilerini kandırarak admin panelden yada doğrudan db üzerinden değiştirtmeleri önüne geçmek zor en temizi login alanının değiştirilmesinin engellenmesi yada tunganın dediği gibi login yerine id baktırmak olabilir.sol elle sağ kulağı kaşımanın bir anlamı yok
UNIQUE INDEX `login`(`login`) USING BTREE,
Ben trigger ile login alınanının değiştirilmesini engellendim.
DELIMITER $$
CREATE TRIGGER trigger_account_login BEFORE UPDATE ON account FOR EACH ROW
BEGIN
IF NEW.login <> OLD.login THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'login değiştirilemez!';
END IF;
END $$
DELIMITER;
ID kontrolü yeterli olur derseniz şunu uygulayabilirsiniz
void CInputLogin::CharacterSelect(LPDESC d, const char* data)
Altına ekle
if (!c_r.players[pinfo->index].dwID)
{
d->SetPhase(PHASE_CLOSE);
return;
}
void CInputLogin::CharacterSelect(LPDESC d, const char* data)
Altına ekle
if (!c_r.players[pinfo->index].dwID)
{
d->SetPhase(PHASE_CLOSE);
return;
}
Loginin benzersiz olması ile ilgili bir problem değil bu. Hesap oyundayken loginin değiştirilmesi ile ilgili bir problem. Login alanı zaten değiştirilmiyor. Sadece oyun sahibi manuel olarak böyle bir müdahale gerçekleştirebilir. Aynı oyun sahibi manuel olarak herhangi bir hesaba ep,gold,level de verebilir.Bu login alanını benzersiz olması için kullanılıyor zaten çoğu alt yapıda bu şekilde mevzuda oyunun destek ekibini yada yönetimden birilerini kandırarak admin panelden yada doğrudan db üzerinden değiştirtmeleri önüne geçmek zor en temizi login alanının değiştirilmesinin engellenmesi yada tunganın dediği gibi login yerine id baktırmak olabilir.
Ben trigger ile login alınanının değiştirilmesini engellendim.
DELIMITER $$
CREATE TRIGGER trigger_account_login BEFORE UPDATE ON account FOR EACH ROW
BEGIN
IF NEW.login <> OLD.login THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'login değiştirilemez!';
END IF;
END $$
DELIMITER;
burada PID var mı diye kontrol ediyor. Konudaki olayla alakası olmamayı geçtim sorgunun olduğu yer de login değil karakter seçme.ID kontrolü yeterli olur derseniz şunu uygulayabilirsiniz
void CInputLogin::CharacterSelect(LPDESC d, const char* data)
Altına ekle
if (!c_r.players[pinfo->index].dwID)
{
d->SetPhase(PHASE_CLOSE);
return;
}
Anlamadım yazdığını bana mı dedin verdiğim trigger zaten login değiştirmeyi engelliyor biz de bu oltaya ta 2018 de düşmüş olup 2018 den buya bildiğim bir bug destek ekibini kandırarak admin panelden kullanıcı adı yani logini değiştirmişti, bunu admin biri harici yapamıyor kullanıcılar bu triggerla olayı engellemiştim aslında temel sorun duruyordu ama günü kurtarmıştım ve böyle bilmeyenlerin değiştirmeyesini sağlamıştımLoginin benzersiz olması ile ilgili bir problem değil bu. Hesap oyundayken loginin değiştirilmesi ile ilgili bir problem. Login alanı zaten değiştirilmiyor. Sadece oyun sahibi manuel olarak böyle bir müdahale gerçekleştirebilir. Aynı oyun sahibi manuel olarak herhangi bir hesaba ep,gold,level de verebilir.
burada PID var mı diye kontrol ediyor. Konudaki olayla alakası olmamayı geçtim sorgunun olduğu yer de login değil karakter seçme.

Hangi dosyada ne gibi değişiklikler yapılacak düzenleyebilirmisiniz konuyu detaylı anlatım için
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 1K
- Cevaplar
- 20
- Görüntüleme
- 2K
- Cevaplar
- 2
- Görüntüleme
- 349