恶意黑客能否改变隐藏的后期variables?

我知道一个POST可以被欺骗的原始域,但是能够改变我的HTML隐藏的POSTvariables的variables呢? 我担心有人可以通过以下方式更改PayPal表单中的“金额”值:

<input type="hidden" name="amount" value="1.00"> 

对此:

 <input type="hidden" name="amount" value="0.01"> 

或类似的东西。 谢谢。

是的,任何人都可以轻松修改你的表单variables。 无论是GET还是POST都没有关系。

networking安全规则#1:永远不要相信任何用户input。 还称为“所有用户都是恶意黑客”或其一些变种。

回答评论:解决scheme是在服务器端知道所有正确的值,而不必通过客户端(Javascript)传递它们。 所以不pipeforms如何,你已经知道价格。 只需使用与填充表单相同的值即可。

是的,使用浏览器检查工具和JavaScript非常简单。


您不应该依赖于您最初在响应客户端时传输的amount字段。 更安全的方法是依靠项目的标识符,您可以将其映射到服务器上的价格( 更受控制的环境 )。

是的,可以使用javascript更改该值。 如果您还没有练习使用JavaScript,您也可以使用Google Chrome的开发者工具进行testing。

事实上,这是不依赖用户input的主要原因之一。

忘记JavaScript和浏览器工具。 请认识到,我可以发送任何cookie,POST和GET参数(键和值对),无论这是否是他们的forms。 (请参阅cURL )

弗兰克说:“在商店,你很less会看到客户填满他们的购物车,然后告诉收银员他们需要付多less钱。”

试着像这样想。 浏览器 (不是用户)是客户端,服务器是收银员。 从浏览器stream向服务器的任何信息都可以是我想要的。

是。 它变得更糟,因为他们甚至不需要改变你的页面来做到这一点。 用户可以使用任何文本编辑器来构build一个HTML表单,并且用一个文本框来填充,从本地磁盘加载,用他们想要的来填充它们,然后点击提交。 OTOH,这将显示在一些标题值。

或者,如果他们真的确定,可以通过telnet连接到服务器上的端口80,并伪造整个HTTP请求,包括标题。

传入的请求中没有可以信任的单个字节。

也就是说,对于这些问题已经有了一些已知的解决scheme,这些解决scheme通常是用哈希,签名和密码术来实现的,但是我不知道在哪里寻找它们。

在这种情况下, 让他们改变价值,如果他们愿意,让他们付给你0.01美元。 但是,当您获得PayPal IPN(即时付款通知)时,它将包括他们支付的价格; 检查对您的项目数据库,以确保它是正确的价格。

如果不是正确的价格,不要发送/给予该项目。 你赚了0.01美元!