Nasıl düzgün metin alanına geri çıktısı, veri, metin alanına alınan dezenfekte mi?

2 Cevap php

Bir textarea bir kullanıcı irade giriş metin. Daha sonra doğrudan MySQL veritabanı içine sokulur. Bunun üzerine mysql_real_escape_string Döşeme, htmlentitiesi, kullanımı ve ben sihirli tırnak etkin olması. Geri bir textarea içine veri çıktısı alınırken Bunu nasıl sterilize gerekir?

Yardımlarınız için teşekkürler. Ben bunu doğru bir yolda çok emin olmamıştım ...

2 Cevap

Kaydetmeden zaman htmlentities kullanmamalısınız. Görüntüleyerek zaman htmlentities kullanmalısınız. Başparmak kuralı ihtiyacınız kadar dezenfekte / veri kodlamak için değildir. Kaydettiğinizde bunu htmlentities yaparsanız o zaman kullanıcı girişi düzenlemek istediği zaman metin üzerinde html_entity_decode yapmak zorunda. Yani ihtiyacınız ne için ve daha fazla bir şey sterilize. Kaydederken, SQL enjeksiyon için sterilize etmek gerekir, bu nedenle mysql_real_escape_string o. Görüntülerken, size XSS için sterilize etmek gerekir, bu nedenle htmlentities o.

Ayrıca, ben Darryl Hein yorum gördüm emin değilim, ama sen gerçekten magic_quotes etkin istemiyorum. They are a bad, bad, thing ve PHP 5.3 olarak onaylanmaz ve PHP 6 tamamen gitmiş olacak.

PHP'nin eski bir sürümünü kullandığınız sürece, htmlentities() ne zaman kullanılacağı konusunda Paolo cevabı ek olarak, bir mysql içine yerleştirilmesi için sterilize etmek için doğru yolu DB kullanmak için Prepared Statements, hangi mysqli extension parçasıdır. Bu, kullanım için herhangi bir ihtiyaç yerine mysql_real_escape_string().

Bunun dışında, ben bir şeyler korurum düşünüyorum.