string replace fonksiyonların filtreleme zayıflığı

Bir çok programlama dilinde var olan, String Replace fonksiyonları, bir kelimenin kullanmasını engellemede çözüm yolu olduğu düşünülse bile bu fonksiyonun bir zayıflığı vardır.

 

herhangi bir dilde stringi replace etmeyi deneyelim. (ö: php)

$id = str_replace('union', '', strtolower($_GET['id']));

Bu fonksiyon dışardan aldığı bütün union kelimeleri yok edecektir.

"union-union"  : "-"

fakat biz yinede union kelimesi gönderebiliriz.

ununionion şeklindeki bir kullanımda fonksiyon, unionu yok edip yerine yine union bırakacaktır.

"ununionion" : "union"

 

Bu zayıflığı kapatmak için algoritma

while(kelime.deVarMı(silinecek)){
kelime = kelime.replace(silinecek,"");
}