php 防止http参数污染,php – HTTP参数污染

HPP是指您的应用程序向另一个系统发出后端HTTP请求的时间.

例如如果您的网站使用以下前端网址进行汇款:

https://www.example.com/transferMoney.php

这只能通过POST方法访问,并采用以下参数:

amount=1000&fromAccount=12345

当您的应用程序处理此页面时,它会向后端系统发出以下POST请求,以使用固定的toAccount实际处理事务:

https://backend.example/doTransfer.php

toAccount=9876&amount=1000&fromAccount=12345

现在你说PHP只在重复的情况下采用最后一个参数.

假设有人将POST更改为您的网站,如下所示:

amount=1000&fromAccount=12345&toAccount=99999

如果您的transferMoney.php页面易受HPP攻击,那么它现在可能会向后端系统发出以下请求

https://backend.example/doTransfer.php

toAccount=9876&amount=1000&fromAccount=12345&toAccount=99999

用户注入的第二个toAccount将覆盖此后端请求并将钱转移到他们自己的帐户(99999)而不是系统设置的预期帐户(9876).这对于攻击者修改他们自己的系统请求非常有用.但是如果攻击者可以从他们自己的网站生成此链接并且诱使其他用户无意中关注不知道额外参数的链接,那么它对攻击者也很有用.

要解决此问题,您应确保所有后端HTTP请求都应用了正确的URL encoding以及验证所有输入.例如fromAccount是一个实际有效的帐号.同样在我的示例中,即使未经验证,后端请求也应该编码为fromAccount = 12345&toAccount = 99999,这将阻止第二个toAccount被解释为单独的POST参数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值