使用 Express 限制对 Node.js 的访问

2024-01-08

我确实在服务器中运行了一个node.js 脚本。 我想要的是它不能直接从浏览器访问,而且我希望只有某些域/IP 可以调用它! 是否可以?!


不确定如何区分从浏览器访问和从其他软件访问某些内容,但限制对某些域/IP 的访问应该是可行的。以下(非生产)代码限制对本地主机循环的访问可以作为起点:

function securityCheck( req, response, next)
{    var callerIP = req.connection.remoteAddress;
     (callerIP == "::ffff:127.0.0.1" || callerIP == "::1") ? next() : reply404( response);
}

function reply404( response)
{   response.writeHead(404, {"Content-Type": "text/html"});
    response.statusMessage = "Not Found";
    console.log("reply404: statusCode: " + response.StatusCode);
    response.end('<span style="font-weight: bold; font-size:200%;">ERROR 404 &ndash; Not Found<\/span>');
}
var app = express();
app.use(securityCheck);  // restrict access
... // continue with app routing

另请参阅更详细的 SO 答案Express.js:如何获取远程客户端地址 https://stackoverflow.com/questions/10849687/express-js-how-to-get-remote-client-address and 如何在express.js 中获取发起请求的域? https://stackoverflow.com/questions/18498726/how-do-i-get-the-domain-originating-the-request-in-express-js

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Express 限制对 Node.js 的访问 的相关文章

随机推荐

  • 如何使用 TFS 离线工作

    我们的 TFS 服务器目前存在一些临时连接问题 因此 VS 没有响应 导致 50 多名开发人员无法工作 如果出现此类问题 是否可以将 TFS 切换到离线模式 看到这个参考 http msdn microsoft com en us libr
  • 如何在 AWS Amplify/AppSync React 应用程序中正确处理未经身份验证的用户和请求?

    我很难弄清楚如何在使用 AWS Amplify 和 AWS AppSync 的 React 应用程序中处理未经身份验证的用户 似乎大多数文档建议将整个应用程序包装起来withAuthenticatorHOC 来自aws amplify re
  • Bootstrap 手风琴,单击时滚动到活动(打开)手风琴的顶部?

    我正在使用 Bootstrap 制作一个响应式网站 它包含带有大量文本的手风琴 当您读到底部并单击下一个手风琴时 大量文本被折叠 我留在页面底部 我发现这个有用的代码Bootstrap 手风琴滚动到活动面板标题的顶部 https stack
  • 从 IE 获取用户名,以针对 LDAP 进行身份验证

    用户将仅使用 IE 并且在 IE 中 如果他们登录到域控制器 则可以在没有提示的情况下传递他们的凭据 我想知道的是 我该如何获取他们的用户名 我认为这可以解决问题 SERVER auth user 但没有运气 像这样您可以在 PHP 中获取
  • Angular 2+ - 检查 Pipe 是否返回原始列表的空子集

    我有一个要迭代的字符串列表 但我希望能够使用搜索词过滤它们 像这样 div item div 我的问题是 如何检查管道是否返回列表的空子集 换句话说 如果没有任何字符串与搜索词匹配 我想显示一条消息 没有匹配项 div No matches
  • 加载时淡入延迟

    我偶然发现了一些非常好的东西 我想在即将到来的项目中使用 这是加载时的动画不透明度 或者您可以将其称为淡入 我想知道你是否可以将一些元素链接在一起 例如 3 element2仅在以下时间开始element1完成了 并且element3当没有
  • 在 Ubuntu 18.04 上安装 Ruby 2.3.x 在安装过程结束时导致错误

    我最近将系统更新到了 Ubuntu 18 04 LTS 从那时起 Ruby 版本似乎已经更新到了 2 5 问题是 当尝试部署使用 Capistrano 的项目时 它现在会抱怨找不到 Ruby 2 3 运行时尝试安装的版本rvm instal
  • 将 Docker-Machine 与 Amazon EC2 集成

    我正在阅读这篇文章 它向我展示了如何在 amazon ec2 之上配置我的 docker VM https docs docker com machine drivers aws https docs docker com machine
  • 在打字稿模块内扩展全局类型(例如“Window”)

    如果您使用打字稿编写并且不使用模块 则可以扩展全局Window目的 例如 这样编译 interface Window myCounter number window myCounter window myCounter 0 window m
  • 我不知道如何让我的玩家在接触敌人时死亡

    就像标题所说 我不知道如何让我的玩家在敌人接触他时死亡 我已经查过了 但我仍然无法弄清楚这一点 有什么想法吗 跳过下一部分 希望我在这里放更多东西 但显然没有说到重点 ulahtluihliukhrefluijaheuflhawuleifh
  • 实例化一个 TypeVar 类型

    作为一名 C 程序员 以下代码对我来说似乎很自然 但它无法运行 from typing import TypeVar Generic List NewType TPopMember TypeVar TPopMember Population
  • 在嵌入式 x86 程序集中使用数组?

    我有一个方法 C 它返回一个字符并采用一个字符数组作为其参数 我第一次搞乱汇编 只是试图返回 dl 寄存器中数组的第一个字符 这是我到目前为止所拥有的 char returnFirstChar char arrayOfLetters cha
  • PHP DOM:更改现有 DOMDocument 的文档类型

    创建 DOMDocument 时DOMImplementation createDocument http www php net manual en domimplementation createdocument php 您可以指定文档
  • Python - 如果不是带有 0.0 的语句

    我有一个关于if not中的声明Python 2 7 我写了一些代码并使用了if not声明 在我编写的代码的一部分中 我引用了一个函数 其中包含if not语句来确定是否输入了可选关键字 它工作正常 除了当0 0是关键字的值 我明白这是因
  • 导航栏大标题 - 动画问题

    我在导航栏上使用大标题 当我点击一个单元格进入下一个控制器时 大标题有一个奇怪的动画 如下面的 gif 所示 它不会立即消失 我尝试了以下解决方案 但没有任何结果 https www morningswiftui com blog fix
  • p:fileUpload required =“true”并且自定义验证器不起作用[重复]

    这个问题在这里已经有答案了 自从required的属性
  • 间歇性和临时性 iOS 钥匙串故障

    我们有一个应用程序严重依赖于能够使用 iOS 访问用户的会话令牌Keychain 当我们的应用程序打开时 首先检查的是令牌是否可用 如果不可用 我们会向用户显示登录屏幕 我们不为此使用任何第三方库 并使用Keychain s SecItem
  • 如何恢复 Mercurial hg 拉动?

    如果你做一个hg pull然后一个hg update or an hg merge 有办法解决这个问题吗 即 将存储库恢复到执行以下操作之前的状态hg pull 我相信你能做到hg update r n您可以在拉取之前将变更集指定为n 虽然
  • 如何将数据库查询映射到对象[在Java中]?

    我有一个连接 5 个表的查询 然后我用我需要的列值填充我的手工对象 使用特定工具解决该问题的常见解决方案有哪些 有这样的工具吗 我才刚刚开始学习 Hibernate 所以我的问题是 Hibernate 是解决这个问题的正确决定吗 Hiber
  • 使用 Express 限制对 Node.js 的访问

    我确实在服务器中运行了一个node js 脚本 我想要的是它不能直接从浏览器访问 而且我希望只有某些域 IP 可以调用它 是否可以 不确定如何区分从浏览器访问和从其他软件访问某些内容 但限制对某些域 IP 的访问应该是可行的 以下 非生产