b leri ayırmanıza gerek yok OnlineHamza
Şuanda gördüğünüz alertler XSS açığı olduğunu gösterir hocam siz tırnakları engellediğiniz de sadece ' veya " engellemiş olursunuz ve bu bir önlem değildir tek başına. Buda sql sorgusunu yarıda kesip kendi istediğimiz kodları çalıştırabilme imkanı tanır. Yani isteyen bir kişi tablonuzu drop edebilir gibi...
Bundan kaynaklı bir başka sorunla şuanda console.log kullanarak console da da yazı yazdırabilmiş durumdayım.
Bu şu anlama gelir istersem console'a bir script yazdırarak, diğer kullanıcıların oturum ve çerez bilgilerini istediğim gibi alabilirim :) Bir yöneticinin oturum bilgisi değerlidir.
OnlineHamza adlı arkadaşın dediği gibi html etiketlerin girişini engellemelisiniz. Tavsiyem post olan ve get olan değerleri sayfa başında temizleyen bir döngü yazıp bu döngünün ürettiği sonuç üzerinden işlem yapmanız.
Ayrıca DDOS'a karşı sunucular her ne kadar önlemli olsa da upload kısmı gibi yada son kullanıcıya açık post aldığınız sayfalarda özellikle olmak üzere bir DDOS koruması kullanın.
Şuanda upload sayfası gördüğüm o ki korumasız. Yani ben arka arkaya aynı postu atarak sunucuyu rahatça yorabilirim gibi geliyor.
+ olarak xss i kullanarak bir tane cookie atadım :) bu da olayın ciddiyetini daha iyi kavrayabilmemiz için. Chrome'un geliştrici araçlarını kullanarak atanan cookielere bakarsanız şuanda siteye giren herkes için bir cookie var
Burada oturum çalabileceğim gibi şuanda giriş yaptıktan sonra çalıştırdığım js sayesinde session id yi yeniden tanımlayarak (wdrleo diye) böylece giriş yapıp siteyi ziyaret edenlerin oturumlarını da bitirmiş oluyorum :) daha onlar kapatamadan onları devre dışı bırakmış oluyorum.
Dip Not: Sadece PDO kullanıyor olmanız Sql injection gibi açıkları önlemez. PDO'yu sql injection açıklarını önleyeceği şekilde kullanmanız gerekir.
Google'da;
How to make sql injection protect php with pdo
How to make xss protect php
How to make ddos protect php
Şeklinde aratarak özellikle stackoverflow üzerinden bir çok bilgiye ulaşabilirsiniz.
Amacım hataları gün yüzüne ciddiyetleriyle birlikte çıkartmaktı. Bu nedenle de aklımda ki bir iki denemeyi daha yapıp aşağıya sonuçlarını ekleyeceğim.
Başarılar dilerim.