PLATFORM: PHP & mySQL
Benim deney amaçları için, benim kendi web kendimi XSS enjeksiyonlarının birkaç denedim. Benim form textarea girişi var bu durumu göz önünde bulundurun. Bu bir textarea olduğu gibi, ben metin ve (İngilizce) karakterlerin her türlü girmek mümkün duyuyorum. İşte benim gözlemler:
A). Ben sadece sayisinda strip_tags ve mysql_real_escape_string uygulamak ve sadece veritabanına veri ekleme önce the query is breaking ve ben nedeniyle anormal fesih, benim masa yapısını gösteren bir hata ile vurmak duyuyorum benim girişine htmlentitiesi kullanmayın yoksa.
B). Ben sadece veritabanına veri ekleme, önce benim girişi strip_tags, mysql_real_escape_string ve htmlentitiesi uygulayarak ediyorsam, the query is NOT breaking ve benim veritabanına textarea veri eklemek için başarıyla mümkün mümkün duyuyorum.
Yani tam olarak ne zaman kullanılması gerektiğini htmentities pahasına ama emin kullanılması gerektiğini anlıyorum. Akılda yukarıda, ben bilmek istiyorum:
Tam olarak ne zaman htmlentities kullanılmalıdır? Sadece ben DB verileri göstermek için çalışıyorum htmlentitiesi uygulamak sonra DB içine veri ekleme ya da bir şekilde DB içine veri almak ve daha önce kullanılmış mıdır?
(Ben benim durumumda en belirgin ve etkin çözüm olduğuna inanıyorum) Yukarıdaki nokta B anlatılan yöntem) takip ederseniz ben DB verileri göstermek için çalışıyorum, ben hala htmlentitiesi uygulamak gerekiyor? Eğer öyleyse, neden? Değilse, neden olmasın? http://shiflett.org/blog/2005/dec/google-xss-example: Ben de yazı geçtikten sonra benim için gerçekten kafa karıştırıcı, çünkü ben bu ask
Sonra bu bir daha PHP fonksiyon denir: html_entity_decode. Htmlentities benim girişine uygulanmıştır gibi (B noktasının belirtildiği gibi benim prosedürün ardından) DB benim verileri göstermek için kullanabilir miyim? Zaman html_entity_decode ve Htmlentities ve: Hangisini dan tercih etmelisiniz?
PREVIEW PAGE:
Ben burada özel bir durumun biraz daha özel ayrıntıları eklemek için yardımcı olabileceğini düşündüm. Bir 'Önizleme' sayfası olduğunu düşünün. Bir textarea giriş gönderdiğinizde Şimdi, Önizleme sayfa girişi alır ve gösterir html ve aynı zamanda, gizli bir giriş, bu girişi toplar. Önizleme butonuna gönderme düğmesi vurduğunuzda, daha sonra gizli girişinden veri için yeni bir sayfa POST'ed ve o sayfa DB içine, gizli giriş içerdiği verileri ekler. Ben formu başlangıçta gönderildiğinde htmlentitiesi geçerlidir (ama sadece sayisinda strip_tags ve mysql_real_escape_string uygulanır) ve textarea içinde kötü niyetli bir giriş var yoksa, gizli giriş kırık ve gizli giriş son birkaç karakter gözle {[(0 olarak görülüyor )]} istenmeyen sayfada. Yani akılda tutarak bu, ben Önizleme sayfasında düzgün gizli giriş bütünlüğünü korumak için bir şeyler yapmak ve henüz bunu kırmak kalmaması gizli giriş veri toplamak gerekir. Bunu nasıl gidiyorsun? Bu bilgi gönderme gecikme için özür dileriz.
Şimdiden teşekkür ederim.