php 个漏洞中的工单系统

Ticket system in php vulnerabilities

我正在为某个网站构建票务系统,用户可以从该网站预订某些活动的门票。我的预订机制是这样的:

  1. 用户点击立即购买按钮。
  2. PayPal 处理付款。
  3. PayPal 在成功结帐后将用户重定向到生成票号的某个 "generate_ticket.php" 页面。
  4. 用户被重定向到第一页,其中显示了票号。

问题在于:任何恶意用户都可以通过观察开发者工具中的网络分路器,知道 url 成功结账被重定向到哪个页面,并向此页面发送请求 "generate_ticket.php"并获得免费门票。

以下是我想解决的问题:

The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

这个变量可以修改。所以,不靠谱,至少不靠谱。

那么,有没有人有任何解决方案来修复这些漏洞或阻止用户请求免费门票?

Paypal 有一个叫做 IPN 的功能,一旦你在 generate_ticket.php 上获得数据,基本上你不会直接向用户发送票证,一旦交易被创建,你可能会在数据库中插入一条处于待处理状态的记录并更新它根据 paypal 的响应,这里 IPN 开始发挥作用,在交易完成后,paypal 将发送一个 post 请求,您提供为 notify_url,您将在其中处理向用户发送他的门票的脚本。