如何确保从PHP中的特定JavaScript页面发布变量

时间:2011-03-01 02:31:03

标签: php javascript ajax lamp

有些任务只能通过JavaScript完成。

我的问题是,在从JavaScript执行任务后,JavaScript代码必须将变量发送到PHP页面,据我所知,它只能通过post,get和cookie来完成,这意味着用户可以可能伪造变量并提交它。

我想确保PHP页面接收的变量来自JavaScript页面。 到目前为止没有运气。解决方案是什么?

4 个答案:

答案 0 :(得分:1)

你是对的,这肯定是个问题。

通过确保该值至少在可接受值的某个范围内,将客户端的输入列入白名单/验证可以解决您的一些问题。

您关注的具体用例是什么?如果我们对您的情况有更多了解,也许我们可以为您提供更多帮助。

答案 1 :(得分:1)

如果您要描述您的具体方案以及需要避免哪种数据输入,我们可以帮助您。

通常,您应该始终尝试验证客户端(JavaScript)上的数据,以便向用户提供更好的反馈(例如突出显示所需的表单字段留空)。认为这只是对用户的礼貌。

无论如何,您永远不会信任来自浏览器的数据,并在服务器上执行所有安全相关验证,而不关心什么样的客户端软件已被用于收集该数据(即您的JavaScript代码或一些硬编码的GET / POST数据)。

答案 2 :(得分:0)

正如其他答案所述,白名单是你唯一可以做的事情 - 如果有人故意攻击你的网站,则不要求你获得的任何内容都是有效的。

由于攻击者无需使用浏览器执行糟糕的操作,因此无法进行任何客户端验证或Cookie工作。

答案 3 :(得分:0)

您可以在投放网页时生成真实性令牌。然后检查响应是否包含相同的真实性令牌。 A la rails