2013-05-26 34 views
0

我可以依靠每個瀏覽器只發送來自發布表單的POST數據,還是有一些瀏覽器發送附加數據?

我問的原因是,我有一個很多字段的表單,可能只是數字。所以最簡單的驗證就是運行一個函數來檢查每個字段是否是數字。

我在我的機器上的瀏覽器只發送表單中的字段,所以我希望這適用於其他瀏覽器。

+2

您認爲只能通過瀏覽器發出發佈請求,並且用戶不能篡改其瀏覽器中的表單字段。 – sevenseacat

+0

總有可能會有一個smartass或blackhat的傢伙,會試圖搞砸你。不要懶惰用戶的數據。 –

+1

那麼萬一他們這樣做,驗證將失敗,並且什麼都不會發生? – jah

回答

1

我可以依靠每個瀏覽器只發送POST數據從他們發佈的形式,還是有一些瀏覽器發送額外的數據?

不,完全沒有。瀏覽器通常如果用戶不特定,則不發送其他POST數據,但這不是信任POST數據的理由。

我問的原因是,我有一個很多領域的表格,可能只是數字。所以最簡單的驗證就是運行一個函數來檢查每個字段是否是數字。

我不會這麼做。你可以創建一個預定義的$_POST索引數組來檢查並運行foreach。請勿直接在POST值上使用foreach

我在我的機器上的瀏覽器只發送表單中的字段,所以我希望這適用於所有其他瀏覽器。

通常情況下,POST請求不僅可以通過提交表單來完成。因此,任何POST數據應始終進行驗證,並忽略未請求的數據。

+0

「不要對POST值使用foreach」爲什麼是這樣? – samayo

+0

@phpNoOb,因爲我(用戶)可能會混淆那個數組,但是我想要。你爲什麼? – Shoe

+0

但我的例子中的驗證仍然失敗? – jah