处理从多个域到远程服务器的提交表单



我被要求开发一个php rest api来发送电子邮件,并且API将托管在远程服务器上。他们有多个带有简单html + JS的网站(登录页面),由于某种原因,这些网站我们不能包含任何服务器端脚本。我们想在表单的操作中添加类似这样的 url

<form action= "http://remotesite/api/submit.php" method="post" >

我计划使用这样的东西限制 api 接收来自特定域(我们的客户)的请求

$http_origin = $_SERVER['HTTP_ORIGIN'];
if ($http_origin == "http://www.domain1.com" || $http_origin == "http://www.domain2.com" || $http_origin == "http://www.domain3.info")
{  
    header("Access-Control-Allow-Origin: $http_origin");
} 

但我读过请求来源信息可以修改。对于我想在表单页面中不使用服务器端语言的情况下要做的事情,是否有安全的解决方案?

-- 我正在考虑使用$_SERVER["REMOTE_ADDR"]来获取源 ip,并在远程端与 ip 白名单进行匹配。这是一个安全的解决方案吗?

您可以将表单数据发送到本地服务器,然后使用 cURL 将数据从本地服务器发送到远程服务器。

这样,远程

服务器就不会向应用程序用户公开,您可以在后端添加其他安全措施(例如添加可在远程站点上验证的令牌或类似内容)。

如@Patrick所述,这也允许您在远程服务器的代码中将本地服务器的IP列入白名单。

相关内容

  • 没有找到相关文章

最新更新