Pvp Evi | Yeni Eviniz Pvp Server Tanıtım Forum Sitesi |
Would you like to react to this message? Create an account in a few clicks or log in to continue.


 
AnasayfaAnasayfa  Latest imagesLatest images  AramaArama  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

Paylaş|

[PAYLAŞIM]Türkçe ID ve Şifre Engelleme %100

Önceki başlık Sonraki başlık Aşağa gitmek
YazarMesaj

Admin
Forum Yöneticisi
Forum Yöneticisi

Admin
Metin Sayısı Metin Sayısı : 353
Kayıt tarihi Kayıt tarihi : 02/09/10
Başarı Puanı Başarı Puanı : 12102
Teşekür Sayısı Teşekür Sayısı : 9999

Reklam Alanı

[PAYLAŞIM]Türkçe ID ve Şifre Engelleme %100  Vide
MesajKonu: [PAYLAŞIM]Türkçe ID ve Şifre Engelleme %100 [PAYLAŞIM]Türkçe ID ve Şifre Engelleme %100  EmptyPerş. 28 Ekim - 17:42


Reklam

Selamlar,

Kendi Veritabanımda Kullandığım Regex(Regular Expression) Sizinle Paylaşayım Dedim, Baktım Bir Dünya Konu Var..

2 Aşama Göreceksiniz fakat Sadece 1. Aşama da İşinizi Görür, 2. Aşama Sadece Ek Güvenlik Tercihe Bağlı...

Gel Gelelim 1. Aşamayı Uygulayınca Ne Olacak ?

Şöyle Diyeyim "a-Z / 0-9 / _" Karakterleri Sadece ID ve Şifrede Kullanabilir, Kesinlikle Hiç Bir ASCII Karakter ile Oyuna Giremez Tamamiyle %100'dür.

Kullanılabilecek Küçük Harfler : abcdefghijklmnoprstuvyzxwq
Kullanılabilecek Büyük Harfler : ABCDEFGHIJKLMNOPRSTUVYZXWQ
Kullanılabilecek Sayılar : 0123456789
Kullanılabilecek Karakterler : _ (Alttan Tire, Aşağıda İsterseniz Onuda Kaldırabilirsiniz)

Kısacası Mevcutta Kullandığınız RULES v.s. ne Var ise Silin Gitsin, Son Nokta Konulmuştur

1. AŞAMA (Türkçe Karakterin ve Tüm Karakterlerin Tarih Olması) ;

Fonksiyonumuz ;
Kod:
CREATE FUNCTION [dbo].[IsValidCharacters](@SData varchar(8000)) RETURNS INT AS /* Author : AKUMA Update : 16.10.2009 - 15:30 */ BEGIN DECLARE @SDataLen int DECLARE @Loop int DECLARE @Letter varchar(1) DECLARE @RXLetters varchar(8000) DECLARE @Match tinyint SET @RXLetters = 'qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_' SET @SDataLen = LEN(@SData) SET @Loop = 1 SET @Match = 0 WHILE @Loop < (@SDataLen + 1) BEGIN SET @Letter = RTRIM(LTRIM(SUBSTRING(@SData,@Loop,1))) IF CHARINDEX(@Letter,@RXLetters) = 0 BEGIN SET @Match = 1 BREAK END SET @Loop = @Loop + 1 END RETURN @Match END
Önemli Bilgiler ;
Kod:
-- Aşağıda '.....' Arasına Koyduğunuz Her Karakter Geçerli Karakter Sayılır Örneğin Æ yi Koyarsanız Geçerli Olur, Koymazsanız Geçersiz Olur. SET @RXLetters = 'qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_'
Kodun Uygulanması ;
ACCOUNT_LOGIN,ACCOUNT_LOGIS,MAIN_LOGIN veya MYST_LOGIN Ana Logininiz Hangisi ise...
Kod:
CREATE PROCEDURE [dbo].[ACCOUNT_LOGIN] @AccountID varchar(21), @Password varchar(13), @nRet smallint OUTPUT AS -- Tam Buraya
AS'ın Hemen Altına Şunu Yazıyorsunuz... (Alttan Tire Kullanılabilir Hali.)
Kod:
IF dbo.IsValidCharacters(@AccountID) = 1 BEGIN SET @nRet = 2 -- Hesap Bulunamadı. RETURN END IF dbo.IsValidCharacters(@Password) = 1 BEGIN SET @nRet = 3 -- Şifreniz Hatalıdır. RETURN END
2. AŞAMA (EK Güvenlik) : Aynı Anda İki Hesabın Oyuna Girmesine Engeller, Örneğin "aktas" Diye Bir Hesabım Var Benim Biride "aktaş" Açtı fakat Birşekilde Paketleri Editledi ve "aktas" Yapıp Karaktere Girmesini Engellemektedir.

PROC_INSERT_CURRENTUSER'nüzü Açın ve SET @nRet = 1 Yazan Yerin Hemen Üstüne Dikkat Edin Üstüne Altına Değil Alttaki Kodu Yapıştırın ve Kaydedin Bu Kadar.

Kod:
DECLARE @RAccountID char(21) /* Author : AKUMA Update : 26.07.2009 - 22:45 */ SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID1 = @CharID and strCharID1 IS NOT NULL SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID2 = @CharID and strCharID2 IS NOT NULL SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID3 = @CharID and strCharID3 IS NOT NULL IF @RAccountID IS NULL BEGIN SET @nRet = 0 RETURN END ELSE IF @RAccountID = '' BEGIN SET @nRet = 0 RETURN END ELSE IF @RAccountID <> @AccountID BEGIN SET @nRet = 0 RETURN END
Yapamıyanlar İçin Komple PROC_INSERT_CURRENTUSER (Ekisini Silin Bunu Koyun Yerine - Query Any.)

Procedürü Silemiyenler Bu Şekilde Silebilir.

Kod:
DELETE PROC PROC_INSERT_CURRENTUSER Kod: CREATE PROCEDURE PROC_INSERT_CURRENTUSER @AccountID char(21), @CharID char(21), @ServerNo int, @ServerIP char(15), @ClientIP char(15), @nRet smallint output AS /* Author : AKUMA Update : 26.07.2009 - 22:12 */ INSERT INTO CURRENTUSER (nServerNo, strAccountID, strCharID, strServerIP, strClientIP) VALUES (@ServerNo, @AccountID, @CharID,@ServerIP,@ClientIP) DECLARE @RAccountID char(21) SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID1 = @CharID and strCharID1 IS NOT NULL SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID2 = @CharID and strCharID2 IS NOT NULL SELECT @RAccountID = strAccountID FROM ACCOUNT_CHAR WHERE strCharID3 = @CharID and strCharID3 IS NOT NULL IF @RAccountID IS NULL BEGIN SET @nRet = 0 RETURN END ELSE IF @RAccountID = '' BEGIN SET @nRet = 0 RETURN END ELSE IF @RAccountID <> @AccountID BEGIN SET @nRet = 0 RETURN END ELSE BEGIN SET @nRet = 1 RETURN END

KOLAY GELSİN...
YazarMesaj

[PAYLAŞIM]Türkçe ID ve Şifre Engelleme %100

Önceki başlık Sonraki başlık Sayfa başına dön
1 sayfadaki 1 sayfası

 Konu Etiketleri Etiketler
 Konu Linki Konu Linki
 Konu BBCode BBCode
 Konu HTML Kodu HTML Kodu
Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Pvp Evi | Yeni Eviniz Pvp Server Tanıtım Forum Sitesi | ::  » Knight Private Serverler :: Hileleri Engelleme Yolları-