我使用 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();
});
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
站点的提交。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句