Как защитить сайт nginx + 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
1) Никак.
2) Запереть клиентов в директории, если у вас есть подгрузка локальных файлов.