Neden $ _REQUEST yerine $ _GET ve $ _POST kullanmak gerekir?

6 Cevap php

Bu soru burada zaten bir cevabı var:

6 Cevap

Ben sadece belirli verileri döndürmek için kullanıcının belirli verileri istediğiniz zaman ben $ _REQUEST kullanın.

Istek yan etkileri ne zaman $ _REQUEST asla kullanmayın. Yan etkileri, açılış POST olmalıdır (anlamsal nedenlerle ve aynı zamanda çünkü temel CSRF şeyler, yanlış img bile bilmeden bir kullanıcı olmadan herhangi bir GET bitiş vurabilir).

Farklı sonuçlar üretecek Geting veya bir sayfada sorarken $ _GET kullanılmalıdır.

$ _REQUEST Çerezlerden okur Aslında yanı sıra

Bu (Bir başına kurulum düzeyinde yapılandırılabilir bulunuyor) tanımlanmamış olması yanında, kullanarak sorunu $_REQUEST bu şeyler üzerinde-kolaylaştırır olmasıdır. Orada (ya da olmalıdır) bir GET isteği ve bir POST isteği arasında bir anlamsal farklılık. Bir kaynak veya diğer girdi alırsanız Böylece uygulamanız için önemli olmalıdır. Bu bunu görmezden gelerek, uygulama daha az çalışabilir hale protokolü, zayıflatan yani HTTP protokolü tanımlanır nasıl. Daha çok sunum odaklı biçimlendirme yerine, semantik HTML biçimlendirme kullanarak yapılabilir aynı tip argüman bulunuyor. Ya da daha genel olarak değil, sadece somut durumun çalışır ne yapıyor daha bir protokol niyetleri şu.

Zaten yanıtlardan birini verdi, bu yüzden başka vereceğim:

Bu bir üslup seçim daha var. Örneğin, genellikle önbelleklenebilecek olmak için sunucu üzerinde durumunu değiştirir bilgi istemiyorum, bu nedenle muhtemelen $_POST değişkenler kısıtlamak istiyorum.

$ _REQUEST Kullanımı bunun gerçekleşmesi istemem nerede değişkenler üzerine olabilir uygulama için bazı saldırı vektörleri açılır.

Ayrıca $ _REQUEST dolu olsun alacağı (Post, Cookie, Get) sipariş JGK düşünün.

yani bir istek ile:

$_GET['foo'] = 'bar'
$_POST['foo'] = 'baz'

neden olur

$_REQUEST['foo'] == 'bar'

$ _REQUEST sıklıkla bahsedilen güvensizlik sahte olduğunu. Tüm bunlar güvenli olmayan makinesi bulunmaktadır kullanıcı, veri almak için yolu vardır. Her zaman girdiyi var, bu yüzden birini kullanarak hiçbir gerçek bir güvenlik avantajı var.

farklı kanallarda aynı adla değerleri için farklı kullanımlar varsa sadece önemli bulunuyor. bu durumda, zaten bazıları yeniden adlandırmak gerekir.

POST kullanıldığında zaman, devletin bir çeşit değişmiş olduğunu beklediğiniz iddia edilebilir ise HTTP GET semantik, bir sayfa almak için kullanılmak içindir.

Örneğin, POST, onlar olmayabilir kullanırken GET kullanarak aynı parametrelerle birden çok kez, aynı sonuçları elde dair bir beklenti var.

Eğer sorunlara verim ne zaman POST kullanarak değil. Ben Raylar AJAX kütüphaneleri Ruby POST yerine GET düşünmek ve web örümcekler tarafından değindi edilirken kayıp olan verilerin bir sürü yol.

Bu nedenle, muhtemelen $ _REQUEST kullanmaktan kaçınmalısınız. Sen sayfa ne amaçlarını biliyorum, ve bir GET isteğini cevaplamak için nasıl karar ve bir POST isteğini cevaplamak için nasıl olmalıdır.