Sql Injection ile gelen spam linkler nasıl temizlenir?

Son zamanlarda başıma bela olan bir durumdan bahsetmek istiyorum. Injection ile veritabanımda nvarchar text alanlarına spam link ekliyor küfür etmek istemiyorum :D

Her yeri kontrol etmeme rağmen nasıl yaptıklarını bulamadım
Ekledikleri linkler şuna benziyor  ve tek bu değil bu link ve çeşitleri

<div style="display:none"><a href='blabla.com'>married</a></div>
Nasıl olsa display:none yazıyor sitede görünmüyor demeyin google botları indexliyor bunları ve sitede spam link var deyip site sıralamanızı düşürüyor.

Veritabanındaki nvarchar alanlarının sonuna ekleme yöntemiyle yapıyor piçler :D pardon arkadaşlar tutamadım artık o kadar sinirlerimi bozdu ki bu durum :D
Ama şöyle bir durum var tek bir satır için yapmıyorlar Ekledikleri an db deki tüm satırlara yapıyorlar artık bir virüs mü bulaştırdılar bilmiyorum bir exe yüklediler bulamadım.

Başınıza gelirse geçiçi çözümü var.

Ya Sql tarafından aşağıdaki kod bloğuyla sileceksiniz hepsini tek seferde

Öncelikle Sql tarafında bulaşan satırları görmek için
SELECT tablo_id,  [bulasan_kolon] FROM tablo_adi where [bulasan_kolon] like '%<div style="display:none">%'

Bulaşan satırları temizlemek için
İşlemi satır sonuna ekledikleri için display none bölümünün index'ine kadar olan kısmını alıp substring yapıyoruz.

update tablo_adi set [bulasan_kolon] =SUBSTRING([bulasan_kolon],0,CharIndex('<div style="display:none">',[bulasan_kolon])) where [bulasan_kolon] like '%<div style="display:none">%' 
Yukarıdaki satır siliyor ama tekrar tekrar ekledikleri için çok çözüm olmuyor.
Site tarafında verinin basıldığı sırada bu linkleri filtrelemek daha etkili bir çözüm.
string detailText = bulasan_kolon.ToString();
                    if (detailText.Contains("<div style=\"display:none\">"))
                    {
                        int index = detailText.IndexOf("<div style=\"display:none\">");
                        detailText = detailText.Substring(0, index);
                    }
Sonrasında filtrelenmiş (detailText) veriyir basıyoruz.

İyi Kodlar!

Kaynak: http://www.kodstrap.com/makale/sql-injection-ile-gelen-spam-linkler-nasil-temizlenir

Yorumlar