Как защитить Node App от прямого доступа и правильного способа установки Node - PullRequest
0 голосов
/ 31 октября 2018

Это может быть глупый вопрос для экспертов по Node, но я запутался в этом.

У меня есть VPS с (Centos) и веб-сайт php на example.com. Я хотел запустить некоторое приложение Node вместе с моим сайтом php, поэтому я установил Node.js в свой корневой каталог. Для лучшего понимания, вот структура каталогов

public_html
    -> index.php
    -> style.css
    -> node 
         -> server.js
         -> node_modules
         -> package.lock.json 
         -> package.xml

Мои вопросы

1) Это правильный способ установки Node и всех модулей Node в корневой каталог? Если нет, то где установить Node и его модули? Потому что я пытался установить Node и его модули (socket.io, express и т. Д.) Из корневого каталога, как это

node 
    -> node_modules
    -> package.lock.json     
    -> package.xml
public_html
    -> index.php
    -> style.css
    -> server.js

и затем запуск node server.js, расположенный в моем корневом каталоге, но он не может быть запущен, потому что не найдены некоторые модули, такие как socket.io, которые мне потребовались в server.js.

2) Как я могу защитить свое приложение Node server.js? Потому что любой может получить к нему доступ через прямой адрес браузера, например,

 https://example.com/server.js

и это покажет весь простой код, как обычный файл JavaScript.

Благодарю за любую помощь.

Ответы [ 2 ]

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

Чтобы ответить на ваш первый вопрос, НЕТ .

Вы должны развернуть свое приложение в непубличной папке, такой как /opt/yourapplication. Я рассмотрю вопрос о создании пользователя yourapplicationuser с ограниченным набором прав и сделаю его владельцем папки вашего приложения. Затем запустите ваше приложение от имени этого пользователя.

Чтобы ответить на второй вопрос, нечего защищать , поскольку приложение nodejs не будет совместно использовать каталог и его файлы, а вместо этого предоставит фактическую реализацию HTTP-сервера, которая будет прослушивать входящие запросы на данный / настроенный порт.

Разделить порт 80 для приложений PHP и NodeJS, что, как я понимаю, является вашей целью. Вам нужно настроить обратный прокси-сервер (который может быть вашим реальным сервером httpd), который на основе маршрута перенаправляет трафик в приложение NodeJS, прослушивающее какой-либо другой локальный порт, например: 8081.

Я думаю, что шаги, отраженные в этом руководстве , могут помочь вам в вашем путешествии.

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

Чтобы ответить на ваш второй вопрос: Вы можете защитить свой файл server.js, добавив его в свой robots.txt как запрещенный:

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