我正在使用 node js 并且我设置了策略来限制 api 的准确性,而不是在浏览器中。为此我设置了以下条件
app.route('/students').all(policy.checkHeader).get(courses.list)
exports.checkHeader = function(req, res, next) {
var headers = req.headers;
if ( headers['upgrade-insecure-requests'] || headers['postman-token']) {
res.status(401).json('Page not found');
} else {
return next();
}
}
我不确定我的过程是否正确。我正在搜索仅存在于浏览器的公共(public)参数(header-parameter)。任何人都可以帮助我。谢谢。
最佳答案
这是不可能的。
您无法控制哪些类型的客户端向您的 HTTP 服务器发出 HTTP 请求。
您无法可靠地确定哪种类型的客户发出了您收到的请求。
升级不安全请求 header 可以由任何自定义客户端发送(或不发送)任何值。同上 postman token 。同上用户代理。同上其他一切。
限制它的唯一方法是在请求中要求某种 secret 。如果你想让普通的网络浏览器访问它,那么这个 secret 就会通过浏览器开发者工具泄露。
关于javascript - 如何限制API只在浏览器运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588012/