付款后如何定义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