Tanrım, herhangi bir {[bazı mysql_escape_string
veya mysql_real_escape_string
türünü veya en az addslashes
veya addcslashes
yaptığını söyle lütfen (4)]} değişkenler before Bir çiğ MySQL deyimi içine ekleyebilirsiniz?
Bunu yapmak için en güvenli yolu olduğunu düşünüyorum:
a) filter_var
kullanın veya preg_replace
$ _POST gelen yabancı karakterleri kurtulmak için ['username']
MySQL kullanıcı adı ile b) SELECT
satır (ayrıca) sindirilmiş şifreyi kapma
c) değil SQL deyiminde, uygulama kodu) Eğer şifrenizi düz metin bırakmayın varsayarak ($_POST
dan alınan satırın buna şifre mesajı sindirilmiş sürümünü karşılaştırmak
Eğer bu şekilde yaparsanız, orada enjeksiyon (username) için sadece 1 mümkün yerdir, ve bir preg_replace( '/\W/', '', $_POST['username'] )
A-Za-z0-9_-(veya değiştirmek bir şey değil kaldırır yapıyoruz olduğunda oldukça imkansız karakter adınızı izin verilenler için).
Eğer kaya gibi sağlam, uygun sanitasyon yapıyoruz eğer karşılaştırma yapmak nerede Ancak, bu gerçekten önemli değil. Teorik olarak, olsa, ben kullanıcı girişi ve ham SQL ifadeleri (yani sadece SELECT
username tarafından ing ve DB karşılaştırarak dışında) ile mümkün olan en az etkileşim için izin istiyorum.