php kullanıcı veri girişi ile çalışıyor.

3 Cevap php

Ben Data'nın eklemek olabilir sigara arzu etiketleri ile ilgili bir kullanıcı girişlerini yönetmek için en iyi yolu ne olduğunu anlamaya çalışıyorum:

  • strip_tags() - etiketleri çıkarılır ve bunlar veritabanına eklenen değil
  • etiketleri veritabanına eklenen, ancak bu alanı okuma ve kullanıcıya görüntülenirken biz kullanmak istiyorsunuz htmlspecialchars()

Ne daha iyi, ve bu herhangi herhangi bir dezavantajı var mı?

Selamlar

3 Cevap

Bu öncelik ne bağlıdır:

  • kullanıcı girişi özel karakterleri görüntülemek için önemli ise (gibi StackOverflow, örneğin), daha sonra veritabanında bu bilgileri saklamak gerekir ve ekranda bunu sterilize - Bu durumda, {en azından kullanım isteyeceksiniz [(0)]} çıkışı (yoksa daha sofistike bir şey) görüntülemek için
  • Eğer sadece düz metin yorum istiyorsanız veritabanında sopa önce, strip_tags() kullanın - bu şekilde depolamak için gereken veri miktarını azaltmak ve üzerindeki verileri görüntülerken işlem süresini azaltmak gerekir ekran

etiketler veritabanına eklenen, ancak bu alanı okuma ve kullanıcıya görüntülenirken biz htmlspecialchars () kullanmak istiyorum

Bu. Genellikle insanlar işaretleri ve 'işareti daha-az yazın ve onları sayfada gibi görüntülenen sahip olmak istiyorum. htmlspecialchars (bu metin kullanıcı girişi doğrudan geldi olsun veya veritabanından, ya da tamamen başka bir yerden) her text-to-HTML çıktı adım bunu başarmak için doğru yoldur. Girişi ile uğraşmaktansa bir çıkış-kodlayan sorunu ile başa çıkmak için bir değil-de-tüm-uygun bir taktiktir.

Veya parametrelemesi - - Tabii ki, farklı bir kaçış gerek olacak bir SQL dizede metin koyarak için.

Kullanıcı girişi sağlamak için alınan önlemler veri kullanılan hangi bağlamda tamamen bağlıdır. Örneğin:

  • Bir SQL veritabanı takarak ediyorsanız, parametreli ifadeler kullanmak gerekir. PHP'nin mysql_real_escape_string(), hem de terbiyeli çalışır.
  • Eğer bir HTML sayfası üzerinde görüntülemek için gidiyoruz, o zaman HTML etiketleri şerit veya kaçmak gerekir.
  • Genel olarak, mark-up veya başka bir dilin başka bir form ile kullanıcı girişi karıştırma konum herhangi bir zaman, o dilin unsurları daha önce bu bağlamda koymak girdi kaçan veya şeritli gerekir.

Yukarıdaki son nokta bir sonraki noktaya segues: Pek orijinal giriş daima muhafaza edilmesi gerektiğini hissediyorum. Daha sonra, örneğin, siz HTML etiketleri yeni bağlamında büyük bir anlaşma değil, farklı bir şekilde verileri kullanmaya karar ve zaman, bu anlamda bir çok yapar. Siteniz bir şekilde tehlikeye ise de, size verilen kesin girdi bir kayıt var.

Özellikle bir HTML sayfası görüntülenmek için tasarlanan kullanıcı girişi HTML etiketleri ile ilgili: giriş HTML etiketleri için bir kullanıcı için herhangi bir akla nedeni varsa, o zaman sadece onlara kaçış. Eğer değilse, ekranda önce onları şerit.