我正在构建一个web应用程序,并希望通过获取请求源域名来添加限制,这样我就可以验证它是我的域还是其他人将使用我的数据。为了达到这个目的
var app = express();
app.all('*', function(req, res, next){
var reqHeaders = req.headers;
if( reqHeaders.origin === 'http://hotmail.com' ){
next();
}
else{
console.log('invalid domain: '+reqHeaders.origin);
}
});然后,我在windows上创建了一个虚拟域(127.0.0.1 hotmail.com),并由xampp设置它,我发送请求,并且惊讶地看到它允许它,即使您知道它不是真实的虚拟域。
什么是解决办法?我如何检查推荐人的真实身份,域名等?
顺便说一下,我在解析服务器应用程序中使用这个,如果解析服务器在应用程序级别上提供了什么,那么请告诉我。如果有可能在云代码中触发,那么也请告诉我。
谢谢。
发布于 2016-10-12 21:42:20
不能检查标头中提供的任何内容,至少可以使用自定义请求更改标头中的所有内容。
要防止请求,可以使用此中间件:
var app = express();
app.use(function(req, res, next){
if(req.headers.origin !== 'http://hotmail.com' ){
return next();
}
console.log('invalid domain: '+req.headers.origin);
res.status(400).send();
});但要检查,您必须使用一些服务,通过域名和检查请求ip,但这个过程是非常长的过程,可以让请求等待,当它得到服务的响应。
我建议您使用基于authentication/authorization的令牌,并将该令牌提供给其他请求方,这样就足够安全和快速了。
查看我的存储库:https://github.com/num8er/alttab-nodejs-challenge
您将看到基于令牌的auth和筛选的示例。
https://stackoverflow.com/questions/40008591
复制相似问题