Bu veri için $ _REQUEST kullanmak yanlış mı?

5 Cevap php

Yani, (2 yıl) biraz kodlayan oldum ve ben çok öznel bir soru var:

Bu veri için $ _REQUEST kullanmak yanlış mı?

Bu esas arada kimlik doğrulama ilgilidir.

Veri $_REQUEST, bir çerez, bir form veya bir sorgu dizesi ya gelebilir oluşabilir 3 yollarını düşünüyorsanız. Şimdi, insanların çoğu doğrudan bir çerez bekliyoruz sadece $_COOKIE kullanarak, ya $_POST veya $_GET gelen bilgi kapmak olduğunu biliyoruz.

Benim teorisi gerçekte, orada bu verileri herhangi bir fark olmamalı, ve yerine eğer herhangi bir fark olmaması gerektiğidir $_POST veya $_GET ile {[(2) }].

Eğer sisteme bir kullanıcı kimlik doğrulaması ise kimlik bilgilerini $_POST veya $_GET dizide bulunur eğer, gerçekten önemi nedir? Ya $_COOKIE ise Heck, muhtemelen önemli olmamalıdır. Onlar hala doğruluğu kontrol etmelisiniz, size siteye giriş için kimlik bilgilerini vererek, ve eğer öyleyse bunları oturum edilir

Şimdi, ben size bir sorgu dizesi yoluyla veri gönderen bir giriş formu var çalışırsanız güvenlik sorunları vardır fark yok, ama ben bu soruya ilgilidir inanmıyorum. Birisi bir login çok kez başarısız olursa Ayrıca, sunucuyu aşırı yüklenmesini önlemek için yerinde ayarlanmış uygun sınırlar olmalıdır.

Ben bu konuda görüş burada istiyorum.

Iyi ölçmek için toplum Wiki'd.


Oh, ve sadece arada, burada $_REQUEST ilgili başka sorularınız varsa ilgili diğer StackOverflow sorular

http://stackoverflow.com/questions/368329/php-using-get-post-instead-of-request http://stackoverflow.com/questions/107683/when-and-why-should-request-be-used-instead-of-get-post-cookie

5 Cevap

"Iyi" kodlama Uygulamada, size disambiguate mümkün olduğunca çok istiyorum.

$ _REQUEST $ _POST, $ _GET, Ve varsayılan $ _COOKIE gelen verileri içeren bu yana hangi yöntem geldi gibi, $ _REQUEST kullanarak alınan verileri depolayan değişkeni tarafından tutulan değeri belirsiz olacaktır.

Daha spesifik ise, bu kod okunabilirliği yanı sıra mantık anlayış fayda ve gelecekte hata ayıklama için yardımcı olacaktır.

(Her yöntem ile ilgili güvenlik sorunları, özellikle $ _GET biri, dursun)

Ben hep birlikte önlemek söyleyebilirim. Ben anlam ayrımı birçok nedenden (hata ayıklama, berraklık / self-dokümantasyon, zerafet, vb) için önemli olduğunu Sev katılıyorum, ancak ortaya çıkabilecek önemli güvenlik sorunları vardır, ve o bunu önlemek için benim ana nedeni olacaktır.

Basit bir örnek olarak, ne aynı anahtar diziler iki gönderildiğinde ne olur ($_POST['criticalInfo'], örneğin ve $_GET['criticalInfo'])? Çoğu güvenlik sorunları gibi, güvenlik açıkları bireysel uygulanmasında kendilerini, bu nedenle belirli riskleri tahmin etmek imkansız olurdu. Aslında belirsizlik genellikle delik açılır olmasıdır.

Script değişkenleri alır belirlemek için php_ini in "variables_order" o kadar bırakmayın. Vb $ _GET, $ _POST, kullanın

Ayrıca hakkında kimlik bilgileri bir POST isteği dışında başka bir şekilde gelip izin değildir. Benim GET isteği (kullanıcı giriş) gibi yan etkilere sahip istemem.

Öyle mi wrong? Hayır.

O $_GET aşağı veya $_POST mi? Evet. Doğru dizi kullanın ve size dizi içeriği $_REQUEST nereden geldiğini bilmeden kaynaklanan sorunların her türlü kaçınmak gerekir.