我确实在服务器中运行了一个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 – 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(使用前将#替换为@)