giriş veya çıkış kaçan / filtreleme için htmlpurifier kullanarak

3 Cevap php

Ben bir javascript WYSIWYG editörü ile halktan bir kullanıcı girişi işleme ve ben metni temizlemek için htmlpurifier kullanarak planlıyorum.

Ben daha / filtreleme kaçan olmadan girişindeki htmlpurifier kullanmak için yeterli veritabanında temizlenmiş giriş saklanır ve daha sonra çıkış olacağını düşündüm. Ama ben her zaman çıkış kaçmak gereken diğer görüşler duydum.

Zaten girişini temizlik eğer ben çıkışını temizlemek gerekir niçin birisi açıklayabilir misiniz?

3 Cevap

Ben WYSIWYG editörü doğrulandıktan sonra ve veritabanına koymak HTML üretir varsayalım. Bu durumda, daha önce doğrulama gerçekleşti, bu iki doğrulamak için bir ihtiyaç vardır.

"Çıktı kaçan" gibi, farklı bir mesele. Aksi takdirde biçimlendirilmiş metin olmayacaktır, sonuçta HTML kaçamaz, ve etiketleri görünür olacaktır. Eğer istemediğiniz zaman çıkış kullanılan kaçan sayfanın biçimlendirme ile müdahale çıkış söyledi.

Ben size doğrulama aşamasında izin ne çok dikkatli olmak zorunda eklemek istiyorum. Muhtemelen sadece birkaç HTML etiketlerini ve özelliklerini izin isteyeceksiniz.

To be 100% safe, use HTMLPurifier twice. Before saving the HTML to DB and before outputting it to screen.
The huge drawback of such solution is performance. HTMLPurifier is ultraslow when filtering HTML and you might encounter longer processing times of your pages.

Eğer ekrana bir şey çıktısını almadan sadece 1-2 filterings gerçekleştirmek eğer ok olmalı, ama yaptığımız gibi istek başına 10 filterings yaparsanız, biz yerine tutmak için yazılmış büyük miktarda çıkış yaparken HTMLPurifier kullanmaya karar verdi.

HTMLPurifier istek başına işlem süresi% 60 aldı ve biz bunun yerine düşük tepki süreleri ve daha yüksek UX ulaşmak istiyordu.

Bu sizin durumunuza bağlıdır. Eğer çıktısını almadan HTMLPurifier kullanarak gelemez, bunun için gitmek - daha iyi ve her zaman (yeni ve hatta db depolanan eski içerik için) izin vermek istediğiniz etiketleri ne üzerinde kontrole sahip.

HTML dönüşüm bir metin olduğunu mantra always escape your output, geri web alanı çalışırken düşmek için bir iyi ve makul varsayılan. Sen gerçekten HTML dönüşüm için HTML performing ve Metin tekrar gerçekten mantıklı değil gibi HTML tedavi edilir nedeniyle, HTML Arıtma durumunda, özel olarak, bu iyi tavsiye kırıyorlar.