Giriş PHP filtreleme?

2 Cevap php

Girişi için örneğin bu link yetiyorsa form verilerini filtreleyerek mi? Örneğin bir yazı ile?

<?php
$var=300;

$int_options = array(
"options"=>array
  (
  "min_range"=>0,
  "max_range"=>256
  )
);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
  {
  echo("Integer is not valid");
  }
else
  {
  echo("Integer is valid");
  }
?> 

Filtreleme en yaygın tür nedir? Dizeleri ve sayıları sanitasyon gibi. Ben sunucu tarafında ve javascript düzenli ifade kontroller üzerinde e-posta alanlarından doğrulama için preg_match kullanın. Ben hiçbir doğrulama nazi değilim ama en sık şeylerden için filtreleme çeşit istiyorum.

Bu tür şeyler böyle, ben örneğin bir sınıfta bazı kamu statik fonksiyonları ile benim uygulamada uzak soyut olabilir düşünüyorum

  Validate::String($str);
     Validate::Interger($int);

Bu konuda ne düşünüyorsunuz?

2 Cevap

filter_var () iyi bir başlangıçtır. SQL deyimi herhangi bir tip bu girdileri kullanarak planlıyorsanız, siz de doğru olduğunu için dezenfektan içine bakmak gerekir.

PDO hazırlanıp, mysql_real_escape_string veya başka db sarıcı (vb MBD2, ..) sizin için bu işlevselliği sağlamak gerekir.

Burada anahtar fikir, filtreleme ve sanitasyon verileri arasında bir fark var ve her yapmanın farklı düzeylerde olmasıdır sanırım. Bu çok çok parçalı bir süreç.

Filtreleme, bir tür denetimi yapmak (bu bir int?) Ve ardından giriş kriterlerine uygun olduğunu doğrulamak olabilir (1 ile 128 arasında bu int?)

Ayrıca verileri sterilize gerekir. çıkışı için htmlspecialchars'ın, bazı uygun teklif ve SQL kullanılmak üzere kaçan.

Tarih filtreleme oldukça yaygındır. Bunun için ben sadece strtotime () kullanın ve makul bir tarih (yani 1969) çıkarsa bakın. Sonra kullanıcı sadece "12 gün" de dahil olmak üzere her şey hakkında girebilirsiniz.

Şifreler yaygındır, ancak benzersiz bir vaka. Boşluk, bir dakika uzunlukta olmalıdır izin vermek istemiyor olabilir, harf ve sayılar, vb içerir

Sosyal güvenlik numarası, telefon ve basit olabilir posta kodu gibi veri elemanları, belirli bir uzunlukta olması ve yalnızca numara (US) içermelidir. Ya da emin geçerli bir biçimidir yapmak ve "kullanılan" sınırlarda, onları sağlam yapmak. Örneğin, bir telefon numarası 0 ile başlayamaz.

İdeal olanı onaylama başka kullanmak istiyorsunuz. Örneğin, posta kodu geçerli olmadığını kontrol daha ayrıntılı, daha sonra ilk "only_digits" doğrulama işlevi çağrılıyor.