Как остановить хакеров, отправляющих мой экспресс-сервер в автономном режиме? - PullRequest
0 голосов
/ 03 октября 2018

Я создал Digital Ocean Droplet в Ubuntu, установил Nginx с Express Server, действующим в качестве прокси.Он также использует Node и React JS.Иногда, когда я просыпаюсь утром, я замечаю, что вижу только фоновый цвет тела в своем приложении, и форма входа в React не отображается.Журнал консоли затем показывает 502 Bad Gateway.Сначала я думал, что это просто редкое явление, но это происходит совсем недавно.Пожалуйста, поймите, я чрезвычайно новичок во всем этом, поэтому я надеюсь, что вы понимаете, о чем я говорю.

Глядя на мои журналы Nginx, кажется, что кто-то пытается запросить файлы с моего сервера:

enter image description here

Я не совсем уверен, как это отправляет мой сервер Express в автономном режиме (я предполагаю, что это то, что он сделал), но мне действительно нужночтобы избежать этого.

Может ли кто-нибудь помочь мне понять, как я этого избежать?Или, если эти запросы нормальные, и я смотрю не в том месте, как я могу определить, почему это выводит мой сервер из строя?

Большое спасибо, я ценю любую помощь.

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Это не то, что отключило ваш экспресс-сервер.

Когда вы видите журнал, это только 4/5 запросов в секунду с возвращаемым 301 HTTP-кодом для 194 октетов (кажется, что запрос не передаетсяваше экспресс приложение).Nginx может обрабатывать гораздо больше.

Даже если это не главная причина, если вы хотите заблокировать ее (расширение php), поместите это в файл конфигурации nginx:

location ~ (\.php) {
    return 403;
}

Чтобы проверить,Ваша проблема связана с узлом или nginx (я предполагаю, что nginx работает на порту 80 и узлом на порту 3000), просто запустите запрос curl на обоих.

curl -X GET -vI http://localhost:9000/myapp => If HTTP code 502 problem comes from your app

curl -X GET -vI http://localhost:80/myapp => If HTTP code 502 and previous request works, your nginx server do a wrong redirection of the request 

Возможно, ваша проблема связана с вашим экспресс-приложением.Возможно, из-за маршрута происходит сбой вашего приложения, или у вас возникают утечки памяти, когда через некоторое время сервер отключается.

Вы можете легко проверить утечки памяти, отправив на сервер тысячи запросов (100 000 здесь, 5 одновременных):

ab -n 100000 -c 5 http://badasse.com/

Во время этого проверьте с верхней частью памяти, используемой процессом вашего узла / pm2, она должна оставаться постоянной

0 голосов
/ 03 октября 2018

Возможно, вы захотите взглянуть на шлемjs

В файле readme говорится:

Шлем помогает защитить приложения Express, устанавливая различные заголовки HTTP.

0 голосов
/ 03 октября 2018

Я не уверен, как вы запускаете приложение Express, но если вы запустите его с помощью команды узла, через некоторое время оно может вылететь.Вместо этого лучше использовать инструменты для производства, такие как pm2 или forever

Например, для запуска:

pm2 start app.js -i max

С этим решением приложение будетавтоматический перезапуск при сбое.Мой совет, чтобы добавить журналы к вашему приложению специально для ошибок, которые вызывают сбой приложения по этой причине использовать Winston

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...