Ampersanı giren Kullanıcılar ve

3 Cevap php

benim sosyal ağ sitesi w3c xhtml geçerli ancak kullanıcıların blog raporlarını ve malzeme göndermek için güçlü ve zaman zaman karakterleriyle dönüş karmaşa içinde benim doğrulama girmek olduğunu. Bunu nasıl düzeltebilirim ve ben o olabilir pisliği benim doğrulama için dışarı bakmak gerekir herhangi bir diğer tek karakterler vardır olabilir?

3 Cevap

Kullanıcı üretilen içerik görüntülerken, htmlspecialchars() fonksiyonu ile çalıştırın.

Genel Prensip olarak, kullanıcı-teslim (veya herhangi bir harici) doğrudan doğrulama veya filtreleme olmadan sayfanızın içine içerik eklemek için bir hatadır. Doğrulama hataları neden yanı sıra aynı zamanda "kırık sayfaları" ve büyük güvenlik açıkları (cross-site scripting saldırıları) neden olabilir.

Eğer anywhere güvenilen% 100 değildir veri almak zaman, bir şekilde güvenli hale getirmek gerekir. Siz bazılarını veya hepsini yaparak bunu yapabilirsiniz:

  1. Escaping metinsel veriler özel karakterler onları temsil HTML kuruluşlar tarafından değiştirilir böylece.
  2. Stripping veya filtering güvensiz HTML etiketleri.
  3. Validating bu HTML herhangi bir güvensiz veya yasadışı yapılar içermez.

Kullanıcı girişi metin olarak yorumlanabilir içindir, o zaman çoğunlukla seçenek 1 bakıyoruz; Eğer Kullanıcıların HTML izin veriyorsun o zaman seçenekler 2 ve 3 bakıyoruz. Dördüncü seçenek kullanıcıların kullanarak bu biçimlendirme ve HTML arasındaki çeviri, bu tür Markdown veya bbcode olarak biraz daha kısıtlayıcı olmayan HTML biçimlendirme kullanmak sahip olmaktır (umarım) güvenlik açıkları, sayfa açan yapıları, ya da diğer korkunç şeyler eklenmesine izin vermez kütüphane.

Kullanıcıların HTML biçimlendirmesi girmek için izin vermek için kötü bir fikir.

Bu kötü şeyler her türlü, en önemlisi cross-site scripting (XSS) güvenlik açıkları ve gizli spam enjeksiyonu (sizden gizli, motor bot arama yok) sağlar.

Sen gerekir:

  • htmlspecialchars() kullanarak tüm HTML etiketlerini yoketmek ve sadece satırsonlarını korumak nl2br(). Sadece çok özel etiketler (phpBB veya Wiki gibi biçimlendirme gibi şeyler) verir, kendi güvenli biçimlendirme uygulayarak bazı biçimlendirme izin olabilir.

  • HTML Purifier güvenilir tüm potansiyel tehlikeli biçimlendirme ortadan kaldırmak için kullanın. PHP'nin strip_tags() işlevi temelde kırık ve beyaz liste argümanı kullanmak öznitelikler tehlikeli kod izin verir.