kullanıcıyı çok da sıkmak istemiyorum. username ve password için FILTER_SANITIZE_STRING kullandım ama bu filtreleme biraz geniş o kadar çeşitlilik olsun istemiyorum onun dışında preg_replace kullanmamın iyi ya da ktü ynleri var mıdır? sanki server'ı daha az yorar gibi geldi bana ama bu konudaki grüşleriniz nelerdir bi de şyle grüşlerinizi alayım kullanıcı adı için a-z A-Z 0-9 ve _ karakterlerine izin vermeyi düşünüyorum şifre için napsam? + - % & falan kullanmak ister adamlar belki? büyük küçük harf tabi olacak da... preg_replace ile bunları halledebiliyorum ama FILTER_SANITIZE_STRING'e müdahale edebiliyor muyum hiçbir bilgim yok :/ ha bir de htmlspecialchars var. hangisini kullanmamın ne avantaj-dezavantajı olur? şyle de bir deneme yaptım şu kodlarla: <?php $girdi = ' abcçdefgğhıijklmnoprsştuüvyz <br> ABCÇDEFGĞHIİJKLMNOPRSŞTUÜVYZ <br> "1234567890 -,+-/.:,; <br> !^+%&/ =?_...<br> >£#$ \||<>@ <br> kiril Q " ...<br> tamil <br> arap <br> japon <br> '; $sonuc = preg_replace ; echo $sonuc.'<br><br>'; '# #i'; echo filter_var .'<br><br>'; echo htmlspecialchars ; çıktı da bu şekilde: kofcu tarafından 14/Ağu/15 12:38 tarihinde düzenlenmiştir ben de sevgiden yanayım...

$a = "asdasdasdasd); blablabala"; $b = ""; $a_md5 = md5 ; $b_md5 = md5 ; // a: string(32) "08ef1de9905341e3425ed88ae7f9248e" // b: string(32) "ebf2b8eb47de022c0699e9966198a495" Kriptolamaktan kastım bu. Hangi karakteri girersen gir sonuçta çıktı bu olacak. SQL sorgulatırken de bu halleri sorgularsan nasıl bir problem yaşanabilir ki? Ayrıca kullanıcının verisini ya sorgulayıp girmemesini sağlamak ya da giriliyorsa ona uygun geriye dndürmek lazım. Yoksa kullanıcı girdiği verinin sağından solundan kırpılmış halini grmek istemez. Anca forum mesajı gibi yerlerde filtreleme yaparsın onda da sıkıntı olmaz. Js kapatmayı ğrenmekte bir şey yok ki. Tarayıcının ayarlarına gir javascripti de-aktif et ya da noscript gibi bir eklenti kur oldu bitti. Austen tarafından 14/Ağu/15 18:20 tarihinde düzenlenmiştir

Zaten milletin şifresiyle oynaman saçma olur hocam. Millet zel karakter koysunlar diye zellikle diretiyor ki güvenli olsun. Sen dersen ki sadece alfabetik ve sayı gireceksin hem şifre güvenliği düşer hem de kısıtlarsın. Dediğim gibi kriptolu halleriyle kıyaslama yaparsan db'ne sadece 32 karakterlik string veri gnderirsin onu kıyaslarsın. O 32 karakter neyin sonucunda oluşturulursa oluşsun senin db'ne zarar veremez. Kullanıcı adı dediğin şeye de zel karakter kısıtlaması getirirsin, sıkıntı olmaz kimse de zorlamaz niye bunu kullanamıyorum diye. Username ve password'de replace işlemi çok can sıkar. Kullanıcıya da kendine de yük getirir. Kontrol ettirip uygun girilmesini sorgulamak daha mantıklı. Sen adamın nickinden 1 harfi bile değiştirsen belki adam hesabına giriş yapamaz. Austen tarafından 14/Ağu/15 22:04 tarihinde düzenlenmiştir

$a = "asdasdasdasd); blablabala"; $b = ""; $a_md5 = md5 ; $b_md5 = md5 ; // a: string(32) "08ef1de9905341e3425ed88ae7f9248e" // b: string(32) "ebf2b8eb47de022c0699e9966198a495" Kriptolamaktan kastım bu. Hangi karakteri girersen gir sonuçta çıktı bu olacak. SQL sorgulatırken de bu halleri sorgularsan nasıl bir problem yaşanabilir ki? Ayrıca kullanıcının verisini ya sorgulayıp girmemesini sağlamak ya da giriliyorsa ona uygun geriye dndürmek lazım. Yoksa kullanıcı girdiği verinin sağından solundan kırpılmış halini grmek istemez. Anca forum mesajı gibi yerlerde filtreleme yaparsın onda da sıkıntı olmaz. Js kapatmayı ğrenmekte bir şey yok ki. Tarayıcının ayarlarına gir javascripti de-aktif et ya da noscript gibi bir eklenti kur oldu bitti. yeterince php bilmediğimden kaynaklı, belki istemeyeceğim bir şeyler yapılabilir , php dosyamın içine kod girmesin diye filtrelemek istedim hocam. sql injection dan korkum yok zaten prepared statements kullanacağım. ayrıca dediğim gibi biraz sınırlandırmak istiyorum username ve password'ü bunun için preg_replace mi kullanmalıyım en uygun ne kullanmalıyım? aslında aklıma geldi ya sanırım benim işime gelecek şey şu: $uname = filter_input ;$username = preg_replace('/^a-z0-9_/i', '', $uname) $pass= filter_input ;$password = preg_replace('/^a-z0-9_/i', '', $pass) //// create the hmac ///// $hmac = hash_hmac('sha512', $password, file_get_contents ; //// create random bytes for salt //// $bytes = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); //// Create salt and replace + with. //// $salt = strtr(base64_encode , '+', '.'); //// make sure our bcrypt hash is 22 characters which is the required length //// $salt = substr($salt, 0, 22); //// This is the hashed password to store in the db //// $bcrypt = crypt($hmac, '$2y$12$' . $salt); sonra işte prepared statement ile $username i username e $bcrypt i password e yazdırıyoruzloginde de passwordde aynı kriptografiyi logine yazılan password girişine uygulayıp database deki kriptlenmiş şifreyle karşılaştırıyorum ben de sevgiden yanayım...

gerçi javascript ile ayarlarım o işi ya gereksiz kasmışım şimdi fark ettim :) ben de sevgiden yanayım...

ğrendim ki, FILTER_SANITIZE_STRING'e müdahale etmek FILTER FLAG'lar ile oluyormuş. http://php.net/manual/tr/filter. filters. flags. php ben de sevgiden yanayım...

Şifreyi kriptolu halde saklamayacak mısın? İşlem yaparken kriptoladıktan sonra işlem yaparsan zel karakterler canını sıkmaz. http://www.tahribat.com/document-php-ile-basit-sql-injection-onleme-yontemleri-417/ Kullanıcı adını kısıtlamak için şuradakini kullanabilirsin. Ayrıca js ile kısıtlama yapma. Js kapatılınca tüm filtren kapanır. js kapanınca tüm filtremin kapatılacağını biliyorum. ondan php ile uğraşıyorum zaten ama bi adam gelip js kapatıp js ile engellediğim karakterleri girmeye çalışırsa giremesin uyarı vermesem de olur zaten jsyi kapatacak kadar anlıyorsa bu işi bunun ondan dolayı işin istediği gibi olmadığını bilir uyarı vermeme gerek yok. sanitize edeceğim sadece yani validate etmeyeceğim. zaten yazı ile de uyarımı koyarım şu şu karakterler geçerli diye. ilginç olan şey filter sanitize string japonca da karakter girse bir şey demiyor geçiriyor. sadece XSS ye neden olabilecek şeyleri siliyor aslında bu da çok istediğim bir durum değil onun yerine htmlspecial chars ın yaptığı gibi &quot&nbsp gibi karakterlere dnmesi daha işime gelir. ama heryerde de filter input ile alın bilgiyi diyor. sanırım htmlspecialchars ile alınca adam post'un içine asdasd); "istediği kod" şeklinde yazabileceğinden filter input koy diyorlar ama dediğim gibi onun filtrelemesi de çok geniş biraz daraltmak istiyorum. bunun dışında passwordu şifreleyeceğim evet. bunu ğrendiğim yerde de passwordu zaten kriptleyeceğiz o yüzden ekstradan sanitizasyona gerek yok diyordu ama düşündüm de yine de bi açık oluşturabilir bu durum. $username = filter_input ; $email1 = filter_input(INPUT_POST, 'email1', FILTER_SANITIZE_EMAIL); $email2 = filter_input(INPUT_POST, 'email2', FILTER_SANITIZE_EMAIL); $pass1 =$_POST ; $pass2 =$_POST ; rneğin burda da adam pass'i asdasd; "istediği kod" şeklinde yapabilir diye düşündüm o yüzden şifreye de filtre koymayı uygun grdüm. ben de sevgiden yanayım...

Şifreyi kriptolu halde saklamayacak mısın? İşlem yaparken kriptoladıktan sonra işlem yaparsan zel karakterler canını sıkmaz. http://www.tahribat.com/document-php-ile-basit-sql-injection-onleme-yontemleri-417/ Kullanıcı adını kısıtlamak için şuradakini kullanabilirsin. Ayrıca js ile kısıtlama yapma. Js kapatılınca tüm filtren kapanır. Austen tarafından 14/Ağu/15 12:52 tarihinde düzenlenmiştir

gerçi milletin şifresine karışmayayım ya istediğini yazsınlar :D şifre için preg_replace uygulamayacağım. ben de sevgiden yanayım...

$pass = addslashes yemiyor mu?

Username ve password'de replace işlemi çok can sıkar. Kullanıcıya da kendine de yük getirir. Kontrol ettirip uygun girilmesini sorgulamak daha mantıklı. Sen adamın nickinden 1 harfi bile değiştirsen belki adam hesabına giriş yapamaz. evet ben de zaten kontrol ettirip uygun girdireceğim normalde. bunu ama javascript'le yapabiliyorum. ondan kullanıcı javascripti kapatırsa falan uyaramayacağım için kendimce bi nlem almam gerektiği için bir de php ile filtreleme yapıyorum. password'de hemfikiriz artık orayı ellemiyorum ama username istediğim gibi olmalı bence orayı preg_replace ile filtreliyorum o yüzden. tabiki js ile formda gerekli uyarıları belirteceğim ama inadına acayip işler yapmak isteyen uyarılara aldırış etmeyen bir kullanıcı olursa o da kurala uymamanın karşılığını preg_replace ile alsın işte :) ben de sevgiden yanayım...