neden bir kullanıcı kaydı yaparak düzenli olmalıdır?

3 Cevap php

Ben bir kullanıcı kaydı programlama ediyorum. Ancak, bu tür gibi örnek kodları, gelen 'kullanıcı adı' için sınırlayıcı bir charactor bulundu,'' ','. '-' Kabul edilir, hiçbir boşluk veya başka bir boş, vb

Bu kısıtlamalar gerekli mi?

Ben MySQL + PHP kullanıyorum. Ben aşağıdaki çeşitli yollarını benimsemek durumunda:

  1. 'utf8_general_ci' için sütunun harmanlama değiştirmek;
  2. işlevi 'mysql_escape_string' veya PHP 'mysql_real_escape_string' çekin;
  3. kullanıcı adı hakkında bir ilişki tablo oluşturmak <-> userID ('username' müşteri giriş, userID bir INT sayı budur.). Yanı sıra sadece veritabanındaki 'kullanıcı kimliği' kullanabilirsiniz, ancak HTMLs yılında 'username' sadece ekran.

Gerçekten normal bir ifade gerekiyor?

Yardımınız için teşekkür ederim.


PS: Ben bir Çinli değilim, bu nedenle Çinli karakterler gereklidir.

3 Cevap

Bu ayrı mysql_real_escape_string, ben de HTML inşa edebilir şey soyma veya izin vermeme öneriyoruz kullanarak bir web uygulaması olduğu için. Genellikle yasaklama "<" ve ">" yeterli.

Eğer gerçekten bazı kullanıcı olarak kendi adını girmek istemem:

<script src=http://malicious/script.js></script>

Alternatif bir çözüm kullanmak için htmlspecialchars sayfanızda veri çıkışının zaman.

Bu kısıtlamalar gerekliyse değil, ancak adı (regex veya olmadan) valid and unique dize olduğunu, emin olmalısınız

bu dizeleri ve mysql enjeksiyon stripping vulnerable characters geldiğinde ben kaçan önemser ve el her dize kaçmak zorunda değilsiniz hazırlanmış tablolar için Mysqli uzantısını kullanmak için tavsiye ediyorum

o size kalmış, ama mysql_real_escape_string Bence iyi olmalıdır kullanılarak (ve ben çok paranoyak değilim)