Php İle Gelişmiş Sansürleme

Php ile sansür – yasaklama fonksiyonu, istenmeyen girdilerin engellenmesini, bu tür girdiler varsa sonraki işleme geçilmemesini sağlar. Bu fonksiyon, yorum bölümlerinde, gerçek zamanlı sohbet uygulamalarında, gönderilen verilerin güvenlik denetiminde ve buna benzer pek çok Php uygulamasında kullanılabilir.

Fonksiyonun belirli sözcükleri engelleyen bir işlevden daha fazlasına sahip olmasını; yapay zekasının benzerlerinden bir nebze daha gelişmiş olmasını istiyorum. Tabi burada işin içine deneyim giriyor. Sansürle korumasıyla karşılaşan bir kişi farklı biçimde korumayı aşmayı deneyecek; örneğin “kafir” yerine “k4fir” , “k4f1r” veya “K 4 F İ R” yazacaktır. Bu yazım türlerinin tümünde kişinin söylemek istediğinin “kafir” olduğunu anlayabiliyoruz. O halde uzunca bir str_replace koşusu bizi bekliyor.

Öncelikle yasaklamak istediğimiz sözcük listesini belirleyelim. Burada birkaç hakaret sözcüğünü Türkçe karakter kullanmadan , virgülle ayırarak ve boşluk bırakmadan belirliyorum. Siz bu listedeki sözcükleri çoğaltmalısınız.

Dört adet sansürlü sözcük belirledim. Bunlar; şerefsiz, utanmaz, eroinman ve faşist sözcükleri. Burada sözcüğün tamamını yazmak yerine, örneğin şerefsiz için “serefs” kullandım. Çünkü şerefs… başlangıcından sonra, şerefsiz dışında türetilebilecek başka bir sözcük bulunmuyor.

Sansürleme fonksiyonumuzu oluşturalım.

Girdiyle gelen veri sansür listemizde bulunuyorsa bunu ters soru işaretiyle (alt+168) değiştirecek.

Sansür kontrolüne tabi tutulacak bir cümle girdisi oluşturalım.

Sansür listemizde bulunan eroinman sözcüğünün garip yazılmış biçimini girdi içerisinde geçirdik. Amacımız, sansür fonksiyonunun bu karmaşık “hakaret”i tespit edebilecek yetiye sahip kılınması.

Özel karakterleri sansür listemize uygun harflere çevirmek için kullanacağımız fonksiyon aşağıdadır.

Son kontrolleri yaparak sansürlü sözcük varsa bir mesaj verdirelim.

Bu kadar. Bu sansürleme fonksiyonu, bir girdide geçen, belirlediğimiz sansür sözcüklerini tespit edip; eğer sansürlü bir sözcükle karşılaşırsa mesaj verir. Bu tür bir sansürleme, yasaklı sözcükleri yıldızla kapatmak yerine girdiyi uygunlaştırarak topyekün bir kontrole tabi tutar. Özellikle güvenlik gerektiren alanlarda, saldırgan tavırlı kullanıcıları engellemek için etkili bir sansürleme işlevi.

Zaafiyetleri: Kod bloğu bazı sözcük gruplarını gereksiz olarak yasaklayabilir. Örneğin “Şeref size gelecek.” cümlesinde uygunlaştırılmış kontrol yapısı “serefsizegelecek” olduğu ve sansür listemizde “serefs” girdisi bulunduğu için bu tümce yasaklı sayılacaktır. Ancak sansür fonksiyonu “Ş e r  e f s  i  z” sözcüğünü de engelleyebileceği için, boşluklara izin vermek güvenlik zaafiyeti doğuracaktır.