Tekil Mesaj gösterimi
Alt 09 Ekim 2016, 13:04   #1
Çevrimiçi
IRC-Dancer
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
/* Spamfilter nedir , nasıl kullanılır , amacı nedir ? */




Merhaba arkadaşlar ; Daha önceden de biliyoruz ki sizlere düz(hazır) spamfilteri sizlerin huzuruna arz etmiştik.
Ve fark ettim ki çoğu kişilerin spamfilternin nerede nasıl ne işe yaradığının fikrine tam hükmüyle bilgiye sahip olmadığını fark ettim.
Halbu ki , spamfilter ile nick'leri , yazıları , saldırıları , ipleri dahi , herşeyi kontrol etmemizi sağlayan ve kontrol altına tutmamız için en büyük yarar sağlıyacak bir niteliğe sahip olmasına rağmen neden geri planda kaldığını hala anlamış değilim.Bu açıdan sizlerinde işine yarıyacak şekilde kendimce ve kendi aklımın yettiğince bir sunum arz etmeye çalışacağım.
Soru Cevap şeklinde ve kısa anlatım şemasıyla bu metotu sizlere sunayım.

Anlatım:

\ : Bir liste içindeki \ kendinden sonra gelen karakteri önceler (karakter bir özel karakterse onu sıradan bir karakter yapar)

Soru:'' Se*lam'' yazısını yasaklıyacak olursak bunu : se\*lam olarak '' * '' karakterini garantilemiş oluruz.
Halbu ki , yıldız sembolu aradaki butun herseyı kapsar manasına gelir,düz eklenirse ;
Örnek : se*an < olarak eklediğimizi düşünürsek :
Sonuç : serkan > '' rk '' olan kısmı kapsadığından spam olarak algılar ve engeller. bunun için yukardaki ornekte ,
\* katıyoruz ki ; O yıldız sadece yıldız anlamını tasısın diğe garantişlemiş olduk.

Anlatım:
+ : Bir veya daha fazlası ile eşleşme işlecini temsil eder.

Soru : Selllaaamm < yazısını yasaklıcak olursak bunu: sel+a+m+ < bu işlemi yapmamız yeterli olacaktır.
burda denilen şudur ki ; ( + ) artı , neyin önüne geliyorsa , çoğaltıcı sıfatını taşır lakin, '' KARAKTER'' vazfı bu çoğaltıcı manasında taşımaz ( değişkenlik gösterir )

Anlatım:

? : İse sıfır veya daha fazlası ile eşleşme işlecini temsil eder.
Soru : Facebook < yazısını veya facebok yazısını yasaklamak istesek yapılcak işlem nedir ?
Cevab : Faceboo?k < olarak almamız , '' o '' harfi 2 sefer yazılsada 1 sefer yazılsada yasaklasın manasını taşır.Yani : '' ? ''(soru işareti ) önündekinin Olsada olur\Olmasada olur sıfatını taşıyor da diye biliriz.Lakin;''KARAKTER'' vazfı bu manasında taşımaz(değişkenlik gösterir)

Anlatım:
^ : Satırın başlangıç noktasını temsil ederi

Soru : Selam < yazısını cümle selam ile başlıyorsa yasaklasın ama cümle ortasında yazılıyorsa yasaklamasın nedir diğe sorsak?
cevap : ^Selam < olarak almamız yeterli olacaktır. yani diyoruz ki Cümle O kelime ile başlasın.Başlangıcı o olcak manasını taşır.
Örnek : serkan selam nbr ? < diye yazılsa yasaklamaz , cünkü cümle bası ''selam'' ile başlamamıştır.
Örnek2: selam serkan nbr? < diye yazıldığında spama takılır ve o yazı çıkmaz.

Anlatım:
$ : Satır sonu noktasını temsil eder.

Soru: Selam < yazısını cümlede ifade edecek olursak yine şayet ve desek ki , cümlenin sonunda selam yazarsa yakalasın , basında ve ortasında yakalamasın diye sorarsak?
cevap: selam$ <diye almamız yeterli olacaktır. yani burda diyoruz ki '' $ '' işareti koyarak,Selam ile bitmek zorundadır diğe garanti (şart) koymuş oluyoruz.
örnek : selam serkan nbr ? < yakalamaz.
örnek2: serkan selam nbr? < yakalamaz.
örnek3: serkan selam < yakalar.

Misalleme : ^ ve $ bir arada kullanmak istersek şayet: cümlede veya aralarda kullanılmasın sadece '' tekil '' yazılırsa yasaklasın dıyorsak ne yapmalıyız.?
Cevab : ^selam$ < almamız yeterli olacaktır.
örnek: selam serkan nbr < takılmaz.
örnek2: serkan selam nbr? < takılmaz
örnek3: selam < takılır.

Anlatım:
{ : Aralık başlatma işlecini temsil eder.
} : Aralık sonlandırma işlecini temsil eder.
(bunların 2 sını bır arada kullanmak zorundayızdır,kullanmaz isek , spamfilter bizi regex hatası ile uyarır)

Soru: Naaaabbbbeeerrr > naber , naaabberr , yazılsada yasaklasın istiyorsak ?
cevab:N{1,}a{1,}b{1,}e{1,}r{1,} : dememiz yeterli olacaktır. ayrıyetten. '' + '' ( artı ) sembolü ile eş değerdir.Çoğaltıcı sıfatını taşır.
Not : Sınırlandırmak içinde kullanılır.
Örnek : Selllma < yazısında , selma takılmasın ama '' L '' harfi 3 kere kullanılırsa takılsın istiyorsak?
Cevap : sel{3}ma < almamız yeterli olacaktır.

Anlatım:
| : Veya işlecini temsil eder.
Alt satırda örneği mevcudtur. Kısacası,devir,pas anlamını taşır.

Anlatım:
( : Grup başlatma işlecini temsil eder.
) : Grup sonlandırma işlecini temsil eder.
(bunların 2 sını bır arada kullanmak zorundayızdır,kullanmaz isek , spamfilter bizi regex hatası ile uyarır)

Soru: cümle icerisinde veya satırlar arasında '' sus , kes , mal , salak , deli '' ıfadeleri geciyorsa yasaklasın istiyorsak ?
Cevap : (salak|kes|mal|deli|sus) olarak eklememiz yeterli olacaktır.
Bunu daha kapsamlı hale veya cümle basında bu yazılar yazılsın ıstıyorsak:
Cevap: ^(salak|kes|mal|deli|sus)
veya Cümle sonunda yazılırsa yasaklasın istiyorsak :
Cevap: (salak|kes|mal|deli|sus)$
Veya Tekil olarak kelime algılasın istiyorsak;
Cevap : ^(salak|kes|mal|deli|sus)$

Syntax anlatımı:

Anlatım:
\< : Bir sözcüğün başındaki boş dizge ile eşleşir.
\> : Bir sözcüğün sonundaki boş dizge ile eşleşir.
\w : Bir sözcüğün öğesi olan herhangi bir karakter ile eşleşir.
\W : Bir sözcüğün öğesi olmayan herhangi bir karakter ile eşleşir.
\` : Bir tampon işlecidir. Tamponun başlangıcındaki boş dizge ile eşleşir.
\’ : Bir tampon işlecidir. Tamponun sonundaki boş dizge ile eşleşir.
\` : Bir tampon işlecidir. Tamponun başlangıcındaki boş dizge ile eşleşir.
\' : Bir tampon işlecidir. Tamponun sonundaki boş dizge ile eşleşir.
\s : Herhangi bir boşluk var anlamındadır.
\S : Herhangi bir boşluk yok anlamındadır.
\d : Herhangi bir sayı var anlamındadır.
\D : Herhangi bir sayı yok anlamındadır.
[ifade] : Liste işlecidir. Öğreğin [aCme] ifadesi a veya C veya m veya e ile eşleşir.
[^ifade]: Liste işlecidir. Öğreğin [^aCme] ifadesi a veya C veya m veya e hariç herhangi
\b : Bir sözcüğün başındaki ya da sonundaki boş dizge ile eşleşir
Örneğin : \baCme\b
\B : Bir sözcüğün içindeki boş dizge ile eşleşir.
Örneğin : \BaCme\Be ifadesi tHeaCme1 ile eşleşir fakat tHe aCme ile eşleşmez

Şimdi en baştaki örnekler vererek anlatalım.Syntax'ları.

\w ile \s 'yi birleştirdiğimizde: (\w\s\w\s){2}
Burda bizde anlatılan sudur: karakter veya harf ardından boşluk tekrardan karakter ve harf ardından boluk varsa yakalasın
örnek : selam takılmaz.
Örnek2: s e l a m < takılır.

\d ile \s yi birleştirdiğimizde : (\d\s\d\s){2}
Burda bizde anlatılan sudur: rakam ve boşluk 2 kez ard arda yazıldığında yasaklasın.
örnek: 12345678 takılmaz.
örnek2: 1 2 3 4 5 < takılır.

\d ile \S yi birleştirdiğimizde: (\d\S\d\S){2}
burda bizde anlatılan sudur: rakam boşluk yok rakam ile devam etmesi gerekir.
örnek: 1 2 3 4 5 6 < takılmaz
örnek2: 12345 < takılır

\W ile \d yi birleştirdiğimizde: (\W\d\W\d){2}
burda bizde anlatılan sudur: karakter rakam 2 kez tekrarlandığında yakalasın.
örnek: numaram 0535555555 ararsın < takılmaz.
örnek2: numaram 0 5 3 555 55 55 ararsın < takılmaz.
örnek3: numaram 0+5+3+5/5/5/55-55 ararsın < takılır.
Cünki rakam ve karakter '' 2 '' den fazla kullanılmıştır.

Ve bir başka bakış acısı :

[:alnum:]->>[0-9a-zA-Z]

[:alpla:]->>[a-zA-Z]

[:ascii:]->>[x01-x7F]

[:blank:]->>[ t]

[:cntrl:]->>[x01-x1F]

[:digit:]->>[0-9]

[:graph:]->>[^x01-x20]

[:lower:]->>[a-z]

[:print:]->>[tx20-xFF]

[:punct:]->>[-!"#$%&'( )*+,./:;<=>?@[]^_`{|}~]

[:space:]->>[nrt x0B]

[:upper:]->>[A-Z]

Bize burda kaşılığını anlıyacağınız şekilde kısa yol metotunu arz etmiş bulunmaktayım.

örnek: harf ler arasında karakter gecıyorsa yasaklasın.
cevap: [:alpla:]{1,}[:punct:]{1,}[:alpla:]{1,}[:punct:]{1,}
veya
cevap2: [A-Za-z]{1,}[:punct:]{1,}[A-Za-z]{1,}[:punct:]{1,}
Burda kısacası en bastaki düz mantık ile açıklıcak olursak:
örnek: selam nbr < takılmaz.
örnek2: s-e(l)+a-m nbr < takılır.

örnek: harfler arasında rakam gecıyorsa yasaklasın.
cevab: [A-Za-z]{1,}[0-9]{1,}[A-Za-z]{1,}[0-9]{1,}
Burda kısacası bastakı düz mantık ile açıklıcak olursak:
örnek: selam 555 555 55 55 ekle < takılmaz.
örnek2: selam 5a5a5 5a5a5 5a5 5a5 < takılır.
Not: 'a 'dan z'ye' kadar her harfı kapsar.


Şimdi : Genel mantık anlatımını kavradığımızı düşünerekten,sizlere bi sınıf daha yukarı çıkması acısından örnekler sunayım.Bu anlatımın ve sembol sisteminin hepsini bir araya toplicak olursak.

örnek: ([0QO])?(be[şŞs]|5)\s?y[uü]z
Burda bizim istediğimiz sudur.Açılımı.
() grup basını acıp kapatmısız ve sonuna '' ? '' koymusuz. bu soru işaretimiz neydi. olsada olur olmasada olur manasını taşır. grub'ta bir butun olduğu için : o grubu olasada olur olmasada olur diğerek satıra başlamısız.
Sonra ; bir grub acarak yine demişiz ki peşinden , '' BEŞ veya 5(rakam)'' yazılırsa onun peşine '' \s '' ne anlama geliyordu ( boşluk ) sonuna ne katmısız '' ? '' işareti yanı boşluk olsada olur olmasada olur diğerekten yüz ( u harfi veya ü harfi ) kullanıla bilir. harlerını devamı kılmısız bu bizi neyi anlatmatadır.

Örnek: cep telefonum sıfır 5yüz ellibeş ..... < yakalar.
örnek2: sıfırbeşyüzellibeş .... < yakalar.
örnek3: beş yüz elli < yakalar.
örnek4: sıfır5 yüz elli beş < yakalar. vb....
örnek5: 0beşyüz < yakalar veya Q5yüz < yakalar.vb....

;----

Örnek : (^|\s)(Q|O|0)?(\s|\W)?(5|b\s?[e€£3e]\s?[şŞs$])(\s|\W)?[4350]\d.?
Şimdi burda anlatılmak istenen nedir.
^ < satır başı demekti.
\s < boşluk demekti değil mi ?
Ne yapmışız. '' | '' işereti ile pas kullanıp satır bası veya satır basından sonra boşluk varsa yakalasın diğerek spam'ı oluşturmusuz.
Nedemisiz : baştan başlıcak olursak:
Sıfır veya Q veya O harflerinden biri varsa sonrasında boşluk '' \s veya \W(karakter) varsa sonrasında , 5(rakam) veya beş < yazısı varsa devamında , 4 veya 3 veya 5 veya 0 bunlardan her hangi biri yazıyor ise sonrasında '' \d '' ( rakam ) manasını taşırdı , rakamla devam edıyorsa yakalasın istemişiz yani.

örnek : selam numaram 0beş35 555 ... < yakalar
örnek2: 0535 55 55 55 < yakalar.
örnek3: 5-5-5 5/5/5 5*5* < yakalar
örnek4: numaram bu ekle 5-5-5 5/5/5 5*5* < yakalar

;---


Örnek: ^([A-Za-z]{1,}|[[:punct:]]{1,})?\d{1}([A-Za-z]{1,}|[[:punct:]]{1,})?$
Burda istenılen , nedir? satır basından anlatayım.
^ < işareti kullnaraktan satır (cümle veya kelime ) ile başlamak sartındasın.
( < ile grub'u acarak demisiz ki '' a'dan z'ye yazılan herhangı bir harf veya '' | '' ile pas kullnarak , karakter ola bilir vazfını vermisiz ve ) < kullnarak gurubu kapatmısız.
Anlatılan kısım : ^([A-Za-z]{1,}|[[:punct:]]{1,})?
Devamı:
\d{1} < rakam kullanılsın ve adeti bir adet olsun demişiz.
Sonrasında , Yine yukarda ki satırın aynısını yapmısız. ve '' $ '' ile sonlandırmısız.
özeti ve kapsama alanı sudur:

örnek:
..5 < yakalar.
a5 < yakalar.
&3 < takalar.
..5.. < yakalar.
a5.. < yakalar.
&3... < takalar.
5a < yakalar.
5.. < yakalar.
3- < takalar.

yani kısacası bizim burda dediğimiz kısım:
karakter veya harf içerisinde , başında veya sonunda., tek rakam varsa alt alta yazıldığında yakalasın istemişiz.


Not : Bu ve bunlardan daha farklı binlerce çeşit örnekler verebilir , çoğalta bilir , değiştire biliriz.Lakin sıfırdan öğrenim acısından metotun en kolay şekilde sizlere arz etmeye çalıştım.
veya bunun daha prof bir şekilde yazılacağı gibi ve html şeklinde de yazılacağını gibi.onlarıda bu başlık altından takip ede bilirsiniz. zaman zaman paylaşacağım.

Soru ve isteklerinizide bu başlık altından fikir paylaşımında buluna bilirsiniz.
umarım yeterli bilgileri arz edip anlama kolaylığı sağladığımı düşünerekten, sizlere faydalı bilgi sağlamışımdır.

Başarılar...

__________________
kS.-.cMGz
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet