Php Güvenlik.
Merhaba arkadaşlar!
Php'nin hazır fonksiyonlarını kullanmadan kendi yaptığım üye kayıt sistemini sql injection ve xss'e karşı güvenli hale getirmem gerekiyor.
İnternette bayaa çok araştırma yaptım ama sorunuma çözüm olabilecek bir şey bulamadım.
Aklıma şöyle bir şey geldi. Ne kadar doğru bilemiyorum tabii. Veri tabanına gidicek textboxtan alınan verilerin başına "//" koyamayı düşündüm ama sadece düşündüm.(Bu denedim ama başaramadım demek)
Değişkenin başına bunları nasıl atayabilirim?
Yardımcı olursanız çok sevinirim, teşekkürler.
İyi günler.
Php
injection önlemek için mysql_real_escape_string() fonksiyonu var. bu fonksiyonu kullanmadan önce veritabanı bağlantısı kurman gerekli.
Php
emin misin araştırdığına çünkü ben yazdığımda gayet yardımcı olabilecek yazılar ve örnekler çıkıyor :/
drekon'un dediğinin dışında ise xss'te kullanabileceğin htmlspecialchars(); strip_tags(); bi de htmlentities(); var
Php
O değilde hem php kodlayacaksın. Hemde phpnin kendi fonksiyonlarını kullanmadan bu açığı kapatacaksın ? Bu nasıl olacak ? Ben bunu anlamadım :)
Php dilinde kodlama yaparken php kodu kullanmamak çok saçma değilmi sizcede ?
Php
@drekon dediğim gibi o kodu kullanmamam kendi güvenlik kodumu yazmam gerek. Veri tabanı bağlantım mevcut.
@cebraail keşke önce okusaydın o zaman o hazır fonksiyonları kullanmayacağımı anlamış olurdun.
@alicilin evet bence de çok saçma ama ödev işte!
Php
XSS: o zaman tek tırnak karakterini temizle. xss açıklarının çoğu ordan gelir. Diğer önemli konu MySQL komutlarını verilen bilgiden çıkar.
XSS şöyle birşeydir:
beklenen bilgi:
Nick= isminiyazbizahmet
xss saldırısı:
Nick= DELETE FROM tablo WHERE 1 ='
DELETE, UPDATE ve SELECT gibi kelimeler gelen bilgide olmazsa güvenlik de sağlanmış olur. tabii bunu yaparken str_replace kullanmadan nasıl becereceksin onu bilmiyorum.
XSS: o zaman tek tırnak karakterini temizle. xss açıklarının çoğu ordan gelir. Diğer önemli konu MySQL komutlarını verilen bilgiden çıkar.
XSS şöyle birşeydir:
beklenen bilgi:
Nick= isminiyazbizahmet
xss saldırısı:
Nick= DELETE FROM tablo WHERE 1 ='
DELETE, UPDATE ve SELECT gibi kelimeler gelen bilgide olmazsa güvenlik de sağlanmış olur. tabii bunu yaparken str_replace kullanmadan nasıl becereceksin onu bilmiyorum.
mysql_real_escape_string() gibi hazır güvenlik fonksiyonlarını kullanmayacağız. str_replace kullanabilirim.
Php
Hımmm Str_replace kullanabilicekseniz eğer ozaman şı şekilde bişey yapabilrisiniz.
function temizle($bilgi){
$yasak = array('\\','"',"'");
$izinli = array('','\"',"\'");
return str_replace($yasak,$izinli,$bilgi);
}
Bu şekilde bir fonksiyon yazabilirsiniz. Tabi tek zararlı kodlar bunlar değil. isteğinize göre ekleyebilirsiniz.
kolay gelsin.
Çok teşekkür ederim. :)