Как защитить сайт nginx + express.js от оффлайн браузеров, зловредных ботов и прочей нечисти?
Сразу предупреждаю, вопрос новичка.
Его можно разделить на 2 части:
1. Как правильно настроить прокси-сервер на nginx, что бы отсечь оффлайн браузеры, боты, и все то что может зря грузить сервер?
2. Как "штатными" методами node.js, express.js защитить бизнес-логику проекта от "кражи"?
1. Можно ограничить интенсивность запросов с одного IP, в nginx, например при помощи такого модуля nginx.org/ru/docs/http/ngx_http_limit_req_module.html или добавить фаервол/брандмауэр хардварный или софтварный.
2. Исходные коды сервера ни кто не заберет, если Вы не напишите очевидных дыр, через которые их можно будет взять, а клиентский код заберут, но его можно чуточку испортить при помощи обфускации habrahabr.ru/post/112530 и минификации https://www.npmjs.com/package/uglify-js
способы есть разные. Но так или иначе на классическом nginx этого просто так сделать нельзя. Нужны кастомные сборки типа habrahabr.ru/post/260159 . Если у вас есть опыт в lua, то можно написать waf и на стандартный nginx-extras