2013-05-26 35 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