Yok / yanlış yazdığınız GET değişkenleri ile başa çıkmak için en iyi yöntemler?

2 Cevap php

Eğer olsun isteği kırık veya verilerin yanlış türleri geçiyor algılamak zaman ne yaparsınız? Eğer foruma 3 ile ilgili tüm konuları listeleyen bir forum-page.php? Forum = 3 söylüyorlar.

Ne "forum" değişkeninin yokluğu ile başa çıkmak için iyi bir yol olurdu? Ne yerine bir tamsayı olma, sen bir dize alacağı hakkında? Nasıl böyle bir yanlış isteğine yanıt vereceğini?

  • Eğer isteğini neden reddettiğini bildiren bir hata tükürmek
  • Forum-page.php "forum" olmadan denir eğer değişken sadece bir varsayılan sayfa forum-page.php? Forumda = 1 gibi bir şey yönlendirmek. Bir yanlış yazdığınız forum değişken için aynı şey.
  • Başka bir sayfaya yönlendirir. Forum / Forum indeksi gibi bir şey?
  • Diğer seçenekler?

Gerçekten bu konuda görüşler okumak isterim.

2 Cevap

Ben genellikle (örn. "forum parametre gereklidir") nedenini açıklayan bir durum açıklama ile 400 (Bad Request) döndürür. Değil emin PHP izin verirse bu (ASP.NET yapar), ama sonra sonra uygulama için mantıklı bir şekilde hatayı görüntüleyen özel bir sayfaya 400 harita olabilir.

Her sayfa ve onların GET istekleri üzerinde biraz bağlıdır. Size bir örnek olarak kullanılan biri gibi sayfaların çoğu nazikçe başarısız olabilir, ama eksik değişkenleri gerektirmiştir diğerleri 400 (Bad Request) atmak gerekebilir veya 404 (Sayfa bulunamadı). Orada bir arama motoru tarafından spidered veya internets sayesinde etrafında geçirilen kötü bir bağlantı olabilir, bu nedenle bu davranışı durdurmak isterdim çünkü 404 aslında oldukça gereklidir.

Benim görüşüm şu denemek için:

  1. Yanlış / eksik gerekli değişkenler için, 400 veya 404 (app bağlı) atmak. Ancak, 400 için, ben varsayılan sayfa (forum-page.php) incelikle başarısız olur ve sayfanın üst kısmında bir hata kutusuna hatayı göstermek.
  2. Mistyped olabilir yanlış temel olmayan değişkenler için, varsayılan sayfa incelikle başarısız.
  3. Onlar app güvenliğini yıkmayı girişimleri olabilir beri tamamen yanlış biçim veya nesne türü yanlış zaruri olmayan değişkenler için, 404 atımı.

Sonuçta, yapmak asla gerçekten önemli bir şey yanlış / eksik değişkenleri "tahmin" ve (çoğu durumda) kullanıcı için doldurmak için çalışmaktır. Bu davranış bir güvenlik açığını simüle etmek webapp kandırmak için hackerlar tarafından istismar edilmiş pek çok webapps geldim.