Vla*_*lad 36 html php validation post
我知道POST可以在起源域方面被欺骗,但是能够在我的HTML中更改隐藏的POST变量的变量呢?我担心有人可能会改变我的PayPal表单中的"金额"值:
<input type="hidden" name="amount" value="1.00">
Run Code Online (Sandbox Code Playgroud)
对此:
<input type="hidden" name="amount" value="0.01">
Run Code Online (Sandbox Code Playgroud)
或类似的东西.谢谢.
Tes*_*rex 74
是的,任何人都可以轻松修改表单变量.无论是GET还是POST都没关系.
Web安全规则#1:永远不要相信任何用户输入.也称为"所有用户都是恶意黑客"或其某些变体.
回答评论:解决方案是知道服务器端的所有正确值,而不必通过客户端(Javascript)传递它们.因此无论表格形式如何,您都已知道价格.只需使用您用于填充表单的相同值.
xan*_*ded 13
是的,使用浏览器检查器工具和JavaScript非常简单.
您不应该依赖于amount
您在响应客户端时最初传输的字段.更安全的方法是依赖项目的标识符,您可以将其映射到服务器上的价格(更受控制的环境).
是的,可以使用javascript更改该值.如果您还没有练习使用javascript,也可以使用Google Chrome的开发人员工具进行测试.
事实上,这是不依赖用户输入的主要原因之一.
是.它变得更糟,因为他们甚至不必改变你的页面来做它.用户可以使用任何文本编辑器构建一个带有文本框形式的html页面,从本地磁盘加载它,用他们想要的任何东西填充它们并点击提交.OTOH,将出现在一些标题值中.
或者,如果它们确实存在,则可以通过telnet连接到服务器上的端口80,并伪造整个HTTP请求,包括标头.
您可以信任的传入请求没有单个字节.
也就是说,这些问题的已知解决方案通常是在哈希,签名和加密方面实现的,但我不知道在哪里寻找它们.