【问题标题】:Post data to NodeJS server from Wordpress form从 Wordpress 表单将数据发布到 NodeJS 服务器
【发布时间】:2019-05-05 23:18:09
【问题描述】:

我使用 Wordpress 作为 CMS,我想将数据从 Wordpress HTML 表单发送到我的 NodeJS 服务器进行处理。什么是实现这一目标的可靠、可靠的方法? (NodeJS 与 Wordpress 位于不同的服务器上)

以下是我在 Wordpress 页面上添加的 JQuery 脚本:

<form id="sendForm">
 <input type="text" name="email" placeholder="E-mail">
 <button type="button" name="button" id="submitButton">submit</button>
</form>

<script type="text/javascript">
 var myNodeJSServer = "http://myNodeServer.com";
 jQuery("#submitButton").click(function() {
  jQuery.post(myNodeJSServer, jQuery("#sendForm").serialize());
 });
</script>

为此,我必须允许 Node 服务器中的所有来源。这对于生产环境不安全吗?

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

【问题讨论】:

  • “更好”是主观的。这真是见仁见智,
  • 好点。为此,我必须允许节点服务器上的所有来源。这不是生产环境的安全配置吗? res.header("Access-Control-Allow-Origin", "*");
  • 最好指定WordPress域的来源。
  • 谢谢@justkidding96。如何指定 Wordpress 域的来源?

标签: javascript jquery node.js wordpress


【解决方案1】:

For this to work, I had to allow all origins in the Node server. Is this not secure for a production environment?

这当然不是最佳做法;任何面向公众的 Web 服务器总是存在风险,因此您应该始终致力于减少攻击面。在这种情况下,您绝对应该限制从哪些来源接受数据。

请参阅 Access-Control-Allow-Origin 的 MDN 文档:

res.header("Access-Control-Allow-Origin", "https://developer.mozilla.org")

我不知道你的源域是什么,但它应该看起来像这样。

注意:如果您的 Wordpress CMS 位于 wordpress.com 的子域中,则非常重要将子域放入您接受的来源(即 mysite.wordpress.com)——否则您将接受来自任何wordpress.com 站点的提交。

【讨论】:

  • 清除。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-06-03
  • 2020-06-14
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
相关资源
最近更新 更多