node.js - 如何确保对我的服务器的请求仅通过单一来源/用户界面起作用?
问题描述
我有一个 node.js 服务器,它对我的 mongoDB 具有 HTTP CRUD 功能。
以及通过这些功能发送请求的 Android 应用程序。
我想确保我的服务器会回答来自特定来源的请求。
例如:只回答来自 android 应用程序的请求,或者我的电脑邮递员的请求。
如何确保没有其他人使用相同的 url 和端口发送请求会得到答复?
这是我的 server.js 文件:
const express = require('express');
const MongoClient = require('mongodb');
const bodyParser = require('body-parser');
var db = require('./config/db');
var app = express();
const port = 8000;
app.use(bodyParser.json());
MongoClient.connect(db.url, (err, database) => {
if (err) return console.log(err)
db = database.db("getremp")
require('./app/routes')(app, db);
app.listen(process.env.PORT || port, () => {
console.log("Express server listening on port %d in %s mode - We Are lIVE!",app.settings.env.port, app.settings.env);
});
})
和我的 index.js:
const noteRoutes = require('./note_routes');
module.exports = function (app, db) {
noteRoutes(app, db);
};
解决方案
您可以通过以下方式控制:
发送包含密钥的数据的特定标头,然后控制节点应用程序中的标头如何检查 nodejs 中的标头?
使用 HMAC 来验证用户并控制数据的完整性:Node Hmac Authentication
但是您必须记住,从移动应用程序发出的所有流量都可以被拦截(例如 Fiddler)。切勿使用静态(非动态)值来确保身份验证
推荐阅读
- python - Kivy 将数据从一个屏幕传递到另一个屏幕并直接传递到另一个类
- javascript - 使用引导程序将输入重点放在按钮单击上
- nvd3.js - 默认情况下取消选择nvd3图表上的线条时如何删除复选标记
- javascript - 如何将默认值设置为元素,用 Cleave.js 格式化?
- python - PermissionError:[Errno 13] 权限被拒绝:PosixPath('...')
- r - 将数据合并在一起并无意中从 R 中的数据集中丢失行
- html - 将阴影应用于滚动条拇指
- sql - Oracle 将行转为列
- c# - 在 C# 中反序列化具有不同类型名称的 XML 元素
- javascript - JavaScript, ES6 导入自