#node.js #express #parse-platform
#node.js #экспресс #разбор-платформа
Вопрос:
Я создаю веб-приложение и хочу добавить ограничение, получив исходное доменное имя запроса, чтобы я мог проверить, будет ли это мой домен или кто-либо еще будет использовать мои данные. для достижения этой
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 apache, я отправил запрос и был поражен, увидев, что он разрешил это, даже если вы знаете, что это виртуальный домен, а не реальный.
каково решение? как я могу проверить реальную идентификацию реферера, доменное имя и т. Д.?
Кстати, я использую это в приложении parse sever, если сервер parse предоставляет что-либо для этого на уровне приложения, пожалуйста, дайте мне знать. если это возможно в триггере beforeSave в коде cloudeтож, пожалуйста, дайте мне знать.
Спасибо.
Комментарии:
1. Вы не можете надежно определить, откуда поступают пользовательские http-запросы. Итак, это, вероятно, неправильный способ попытаться выполнить то, что вы пытаетесь сделать. Обычно этот тип проблемы решается путем запроса учетных данных для входа, а затем поиска злоупотреблений услугами в определенных учетных данных для входа, а затем запрета этих учетных данных при обнаружении злоупотреблений.
Ответ №1:
Вы не можете проверить ничего, что указано в заголовках, по крайней мере, все в заголовках можно изменить с помощью пользовательского запроса.
Чтобы предотвратить запрос, вы можете использовать это промежуточное программное обеспечение:
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();
});
но для проверки вам нужно использовать некоторые службы, которые выполняют whois по имени домена и проверяют IP-адрес запроса, но этот процесс очень длительный и может заставить запрос ждать, пока он получит ответ от службы.
Я рекомендую вам использовать аутентификацию / авторизацию на основе токенов и передавать эти токены другим сторонам для предоставления в запросе, что будет достаточно безопасно и быстро.
Проверьте мой репозиторий: https://github.com/num8er/alttab-nodejs-challenge
Вы увидите пример аутентификации и фильтрации на основе токенов.