Şimdiye kadar gördüğünüz gibi, Eskil enjeksiyonları çok tehlikelidir ve aynı zamanda gerçekleşmeleri ve bulunması da
çok kolaydır.
Bunları her yerde bulacaksın ve gerçekten ünlü bazı web siteleri insanlar bu güvenlik açıklarını filtreler kullanarak
önlemeye çalışıyor.
Filtreler istismar yokmuş gibi görünmesini sağlayabilir.
Ancak, farklı kodlama türlerini kullanarak veya bir proxy kullanarak daha çok
denerseniz, bu filtrelerin çoğunu atlayabilirsiniz.
Bazı programcılar kara liste kullanır.
Mesela sendika kullanımını engelliyorlar, insert ve benzeri şeylerin kullanımını engelliyorlar.
Yine yüzde 100 güvenli değil.
Kara liste ile tamamen aynı olan bir beyaz liste kullanılarak atlanabilir.
Bunu yapmanın en iyi yolu, web uygulamanızı kodun içine enjekte edilmesine izin vermeyecek şekilde
programlamak ve daha sonra çalıştırmaktır.
Bunu yapmanın en iyi yolu, verilerin ve kodun birbirinden ayrıldığı parametre hakları ifadelerini
kullanmaktır.
Ve size neyi kastettiğimi göstermenin en iyi yolu, en az miktarda programı tuttuğum bir örnek kullanmak ve
bu örnekte bunun bir program olmasını istemiyorum.
Programda aslında hatalar var ama size konsepti nasıl programlayacağından daha çok vermeye
çalışıyorum.
Bu yüzden, aradığımız hassas kod, bunu yapmak
için kullanıldı, böylece kullanıcı adının Metin Kutusu 1'e koyduğumuz şeye eşit
olduğu hesaplardan seçildi ve sonra Metin Kutusu 1'e koyduk .
Yönetici derdik ve sonra kodu kapattıktan sonra sendika seçip başka bir şey yapmayı başardık.
Sonra bir kez işimiz bittikten sonra, temelde ondan sonra gelen her şeyi görmezden gelen bir yorum
eklerdik.
Yani bunu kopyalayıp buraya yapıştırdığınızda ne olduğunu
göreceksiniz.
Bu yüzden seçiyor.
Şimdi bundan kurtulalım, çünkü bu sadece renkleri güzelleştirmiyor, aslında bunun üzerine
bir yorum yapacağım, böylece kullanıcı adının yönetici birliği seçimine eşit olduğu hesaplardan seçkin bir yıldız
seçeriz ve ne yaparsak yapalım yapmak istiyorum.
Bu çok kötü ve ben kullanıcı filtreleri ve şeyler sadece onu düzeltir sorunu çözmeyecek dediğim
gibi karşı korumak çok zor.
Bunu yapmanın en iyi yolu, parametre yükselme ifadelerini aynen böyle kullanmaktır.
Yani bunu yapmanın güvenli bir yoludur.
Öncelikle ifadenizi BHP gibi çoğu dilde hazırlarsınız
ve hepsinin aslında böyle bir işlevi vardır ve kullanıcı adının soru işaretine eşit
olduğu hesaplardan seçme personel hazırlayabilir ve sonra değerleri gönderebilirsiniz.
Böylece BHP, Eskil deyiminin kullanıcı adının bir şeye eşit olduğu hesaplardan personel seçtiğini ve ardından
Metin Kutusu 1'in değerini alacağını biliyor.
Bu yüzden içeri girip çok sinsi ifademizi burada kullanıp yapıştırmış olsak bile, web uygulaması bunun için değerin yönetici
sendikaların seçtiğini bilecek, böylece gerçekte gidip kullanıcı adının bulunduğu hesapları seçecek o zaman
kendi tırnaklarını ekler ve aşağıdaki kullanıcı adı ile bir kullanıcı
adı bulmaya çalışırlar.
Böylece tüm bunlar böyle yürütülecek,
böylece kullanıcı adının yönetici sendikalara eşit olduğu hesaplardan personel seçilecektir,
bu etiketi seçer, böylece asla metin kutusuna koyduğunuz hiçbir değer olarak gönderilmez.
Ve web uygulaması bunun bir kod olmadığını ve asla yürütülmeyecek bir değer olduğunu anlayacaktır.
Bu yüzden bu seni acımasız enjeksiyonlara karşı koruyacak
Filtreleri ikinci savunma hattı olarak kullanabilirsiniz.
Ayrıca, mümkün olan en az imtiyazı kullanmanızı öneririz, bu nedenle her veritabanı için kullanın.
İstedikleri en az yetkiye sahip bir kullanıcı kullanın, bu nedenle kullanıcıların izin vermeyecekleri bir şey
yapmasına izin vermeyin.
Yalnızca kullanıcının yalnızca bir ekleme seçmesi gerekip gerekmediğini seçmesine izin veren seçimi yapan basit bir site ise,
o zaman yalnızca bir ekleme seçmesine izin verin.
Ve bu, sistemlerinde bile her şeyde bulundurmanız gereken bir kuraldır, izinleri olan ebeveynin
her zaman mümkün olduğu kadar olduğundan emin olun, her kullanıcının ihtiyaç duymadığı ekstra izinlere sahip olmadığından emin
olun.