Node.js - 限制对服务器的直接访问?如果来自其他页面,则仅允许/加载AND如果存在表单POST变量

时间:2014-10-22 21:51:01

标签: javascript php node.js express

无法找到关于此的任何文档:

有没有办法限制用户直接访问node.js服务器? website.com:3000

现在,如果用户访问我的node.js网站,它会崩溃整个服务器并使其脱机,因为服务器依赖于变量(用户ID,用户电子邮件)。

这些变量来自website.com页面,其中有登录表单,当用户点击登录时,它会将POST变量发送到website.com:3000,在那里保存它们并且用户被计入登录状态。

那么无论如何限制直接访问?或者检查变量是否为null的正确方法是什么,如果是,则socket disconnect(基本断开客户端并向他显示错误消息)。

1 个答案:

答案 0 :(得分:2)

如果您的服务器在互联网上,它需要能够处理来自任何地方的请求,而不会崩溃或做坏事。

这是良好的服务器编码的责任。它应该防御性地测试所有请求,看它们是否包含有效信息。如果没有,他们可以简单地快速返回错误或不做任何事情。

您无法准确判断请求的来源。来自website.com托管的表单的请求实际上来自该用户的浏览器(而不是来自website.com),因此您无法在连接级别告知传入连接之间的区别你喜欢和不喜欢的人。

因此,听起来更简单的解决方法就是测试传入的数据,看它是否包含您需要的所有有效数据。如果没有,则创建一个适当的响应并返回该响应,而不会对您的服务器或其数据造成任何伤害。