我将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();
});
答案 0 :(得分:0)
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
网站的提交。