PHP kodunuzu koruyun

  • Genelde web saldırısı nedeniyle, OS sunucusu ve http sunucusu dışındaki kullanıcılardan (formlar ve URL'ler vb.) Güvenli veri sağlamak çok önemlidir.
  • PHP kodunuzu güvence altına almak için 3 kategori vardır:

Veri kullanıcılarının doğrulanması

Site, kullanıcıların içerik yakalamalarına ve göndermelerine izin veren formlar sunduğunda, bu girişlerin biçimini (e-posta adresi, telefon numarası, ürün miktarı) belirtmek için yeterli değildir. Veriler uygunsa sunucu da izlenmelidir (örn. PHP). beklentimiz için geleneksel. Tüm sayıları dikkate alarak, kullanıcı tarafından gönderilen tüm verileri dönüştürün:

URL’den veya Formlardan veri doğrulama

Neredeyse tüm veriler web yöneticisinin kurduğu URL’den veya formlardan alınmıştır. Neredeyse tüm URL'ler aşağıdaki gibi belirten parametreleri gösterir:

/index.php?rub=25

Ancak bu parametre değiştirilmemelidir. Ancak bu aşağıdaki gibi mümkündür:

 /index.php?rub=0 /index.php?rub= /index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+ or+1 
  • Veri türleri ne olursa olsun, URL veya form yoluyla alınan biçimin beklenip beklenmediğini kontrol etmek çok önemlidir.
  • Aynısını doğrulamak için filter_input () işlevini kullanabilirsiniz.
  • Örneğin, biçim alanından bir kullanıcıdan bir e-posta alan adıyla gelen bir e-posta aldıysanız. Aynı şekilde kurtarabilirsiniz:

 $ email = filter_input (INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); if ($ email) {// E-posta adresi girişi gerçekten bir posta adresi formatıdır} 

Bu fonksiyon birçok şeyi filtreleyebilir: IP adresi, URL vb. Htmlentities () tarafından işlem olarak URL yoluyla göndermeden önce kodlama dizesi gibi değişiklikler olabilir.

  • "|" Kullanılarak birkaç filtre birleştirilebilir. .
  • Bir ip adresini sadece Ipv4 formatında doğrulamak için:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

Filtreler için aşağıdaki bağlantıya tıklayın:

//www.php.net/filter

URL’nin görüntülenen içeriğini atla

Kullanıcı tarafından girilen içerik ekranda görüntülendiğinde, HTML'yi veya JavaScript kodunu içerir, ancak bu da korumayı zorunlu kılar.

HTML'de görüntülenecek içerik: tüm karakterleri eşdeğer HTML varlıklarında dönüştürmek için ayarı HTML kodlamanız gerekir. Aşağıda bu işlemi otomatikleştirmek için php işlevi var:

echo htmlentities ($ _ İSTEK ['içerik']);

İçeriğin bir URL’de gösterilmesi gerekiyorsa: İçeriğin urlen kodunu girmeniz gerekir.

PHP'nin bu kodlamayı yapmak için iki işlevi vardır: urlencode () ve rawurlencode (). Bu iki işlev arasındaki fark, birinci işlevde ikincisinde% 20 ve "+" veren ve sağlayan bir alanın kodlanmasıdır.

 echo '//www.website?valeur='.urlencode($_REQUESTГ'value']); 

İçeriğin bir veritabanında depolanması gerekiyorsa: Kullanılan veritabanı sunucusunda belirli bir rolü olan tüm karakterlerden kaçmak gerekir. PHP ve MySQL için, mysql_escape_string () işlevi, parametre olarak geçirilen dizedeki potansiyel olarak zararlı tüm karakterleri yapar.

 $ query = 'SELECT id FROM WHERE user = "'. mysql_escape_string ($ _ REQUEST ['kullanıcı']). '"'; 

Sunucunun PHP seçeneği magic_quotes ile yapılandırıldığını unutmayın, kullanıcılar tarafından iletilen veriler otomatik olarak ters eğik çizgilerle (ters eğik çizgi) korunur. Bu nedenle, mysql_escape_string'i korumadan önce bu temel korumayı "geri almalısınız " :

 $ query = 'Mytable WHERE kullanıcısından SELECT kimliği = "'. stripslashes (mysql_escape_string ($ _ REQUEST ['user'])). '"'; 
Önceki Makale Sonraki Makale

En Ipuçları