付款后如何定义redirect_to url?

Posted

技术标签:

【中文标题】付款后如何定义redirect_to url?【英文标题】:How can I define a redirect_to url after payment? 【发布时间】:2018-08-25 22:54:27 【问题描述】:

我的付款表单中有一个隐藏输入,如下所示:

<form action="<bank_api>">
    <input type="number" name="amount" />
    <input type="hidden" name="redirect_to" value="<current_url>" />
</form>

我会在付款后这样使用它:

header("location: " . $_GET['redirect_to']); 

一切正常,只是我觉得有安全问题:

用户可以在提交表单之前简单地更改隐藏输入的值(设置另一个网站的 url),然后在付款后将其重定向到该网站。看?我的服务器将向另一个网站发送请求。这样可以吗,还是我必须在重定向之前输入一些检查域名?

【问题讨论】:

将重定向 URL 存储在服务器端,如数据库或会话或 Laravel 等 ENV 配置。不在 html 中。 . 如果你在发送 HTML 页面时知道 URL,那为什么还要发送给客户端呢?将其存储在会话中并从那里检索。 【参考方案1】:

将redirect_url存储在$_SESSION中,表单提交后取回并删除。

【讨论】:

以上是关于付款后如何定义redirect_to url?的主要内容,如果未能解决你的问题,请参考以下文章

使用redirect_to后如何停止控制器执行? (使用导轨)

在 PayPal 付款后如何获取 TransactionID

php 订阅后如何获取 PayPal 定期付款数据?

执行付款后调用的 PayPal REST API 取消 URL

WordPress登录redirect_to不起作用

深刻理解render 和 redirect_to