htmlentities
(veya htmlspecialchars
) ve addslashes
(veya mysql_real_escape_string
veya diğer veritabanı uygun kaçan fonksiyonu; addslashes değişmez yanlış bir şey) vardır GET / POST parametreleri ile ilgisi. Onlar giden-kaçan kimin giriş might parametrelerden gelen işlevleri vardır, ancak aynı derecede başka bir yerde, böyle bir statik dize veya veritabanından getirilen bir dize olarak gelebilir.
şimdi ben her / yazı almak parametresi ikisini de kullanıyorum.
Hayır, bu işe yaramazsa. Bu ortak bir hata, ve orada tamamen korkunç PHP öğretici malzeme bir çok koruyan biri. Dize küçük bir döngü içine kaçan yerine, tüm kod yayılmış olma sorunu kapalı bölmek için çalışıyor hoş geliyor, ama dize öncelemeli gerçekte böyle çalışmıyor. Her zaman başka bir dize içinde bir dize koymak, kaçan sağ formu ve kaçan sadece sağ formu uygulamak gerekir. Önceden bunu yapamazsınız.
'Sterilize' veya 'filtre' \
veya <
gibi karakterleri kodlamak veya kaldırmak için tüm gelen parametreleri kalkmayın. Bu uygulama \\\\\\\\\\\\\\\\\\\\\\\\\\
ve &amp;amp;amp;amp;amp;amp;
gibi çöp ile dolduruyor sonuçlanacaktır. Bunun yerine, sadece onları kodlamak gerekir - GET / POST gelmiyor başka varaibles birlikte - metnin farklı bir bağlamda içine tükürme son dakikada, htmlspecialchars
HTML veya {[gibi (5)]} MySQL dize hazır. SQL sorunları kaçan önler olsa, hangi genellikle Parametrelenmiş sorgu ile daha kapalı.
Bu sizin uygulamanızın gereksinimlerine uygunluk için gelen verileri kontrol olmamalı demek değildir. Eğer bir alan var ise bunu kullanmadan önce intval
buna emin olun, bir tamsayı almak için bekliyoruz. Eğer tüm diğer kontrol karakterleri ile birlikte, dize gelen \n
karakteri filtre emin olun, satırsonu içeren beklemeyin düz tek satırlık bir metin dizesi var ise {[(2) }]. Ancak bu uygulama gereksinimleri, değil mutlaka tüm giriş rastlamak bir şey vardır.