Ben sadece makaleleri kabul eden bir web sayfası oluştururken bazı temel PHP güvenlik teknikleri kullanmalıyım ne olduğunu bilmek istedi?
PHP oldukça yeni ve ben bir güvenlik uzmanı değilim kadar aşağı ne kaleyi tutacak merak ediyorum?
Daha sonra gösterilecektir kullanıcı tarafından oluşturulan metin kabul ederken göz önünde iki cephe var.
Öncelikle, enjeksiyon saldırılarına karşı veritabanını korumak gerekir. Bunun için basit bir PHP fonksiyonu var: mysql_real_escape_string() genellikle bir alan değeri olarak saklamak için bu dize geçerken enjeksiyon veritabanı korumak için yeterli olacaktır.
Bu kod görüntülenir alır zaman HTML kodunu yüklemek için izin verilen bir kullanıcı other users kötü şeyler yapabileceği gibi oradan, size ekran konusunda dikkatli olmak gerekir. Eğer düz metin yazılar yapıyorsanız, sadece htmlspecialchars() çıkan metin olabilir. (Siz de muhtemelen etiketleri
için satırsonlarını dönüştürmek isteyeceksiniz.) Böyle bu sitede kullanılan Markdown motoru olarak, bir biçimlendirme çözümü kullanıyorsanız, bu çözümlerin genellikle motorun bir fonksiyonu olarak HTML korunmasını sağlayacak ama belgeleri okuyun ve emin olun emin olun.
Ah, siz de yazı göndermek için kullanılan GET / POST değişkenleri doğrulayarak emin olun. Söylemeye gerek yok, ve gerçekleştirilen doğrulama Siteniz mantığı ile ne yaptığını uygun olması gerekir gidiyor.
Orada bilmek çok şey olduğunu ve en kısa sürede olabildiğince başlamalıdır.
Eğer yazı (ve muhtemelen bir WYSIWYG ve HTML kabul eden) kabul eğer biri için, içeriği ayrıştırmak ve XSS savunmasız ve benzeri bırakabilir şeyler şerit için bir şey kullanın.
Bir örnek HTML Purifier.
belki iki ipucu daha güvenli web siteleri olsun yardımcı olabilir
Eğer veritabanına eklemek veya silmek, girişleri sterilize etmek zorunda zaman, kullanımı mysql tablolarını veya posta yoluyla gelmesi veya bu şekilde olsun değerlerini iddia:
if(!empty($_GET["integer_like_id_value"]){
$integer_id_value = (int)$_GET["integer_like_id_value"];
}else{
// that stuff seems not to be legit, die application, log error ? whatever
die();
}