2012-05-12 13 views
6

Pracuję nad kolejną aplikacją sieci web z node.js. Na przykład w ASP.net nie można uzyskać dostępu do kodu po stronie serwera .cs z poziomu przeglądarki klienta. Co chcę wiedzieć, to kiedy rozwijam swoją aplikację przy użyciu pliku node.js, czy plik server.js jest chroniony przed osobami przeglądającymi moją witrynę. Chodzi mi o to, że nie chcę, aby odwiedzający moją stronę mieli dostęp do kodu po stronie serwera .js. Czy mogę chronić te pliki, używając uprawnień do plików CHMOD, czy to pomoże?Ochrona kodu po stronie serwera Node.js

Odpowiedz

8

Jeśli korzystasz z Express.js jako serwer internetowy, masz folder "publiczny", w którym umieszczasz pliki statyczne, które są wyświetlane prosto. Poza tym folderem masz inne foldery rodzeństwa, w których przechowujesz swój kod "kontrolery" i "modele". Nie można przejść do jednego z tych folderów za pośrednictwem przeglądarki internetowej, ponieważ są one niedostępne, ponieważ główny katalog dokumentów serwera jest "publiczny".

project_root/ 
    - app.js 
    - public/  <-- web root 
    - javascripts/ 
    - stylesheets/ 
    - images/ 
    - some_static_page.html 
    - controllers/ 
    - models/ 
    - routes/ 
    - views/ 
    - node_modules/ 
1

To nie dlatego, że Node.js używa Javascript, że pliki są magicznie dostępne w przeglądarce. W Node.js, podobnie jak w Asp.net, istnieje różnica między stroną po stronie klienta a serwerem. Jeśli nie obsługujesz swoich plików JavaScript do klienta, nie będą one publiczne.