33 votes

Sécurité dans le serveur Web Node.JS

Donc, je suis en train d'apprendre mon chemin autour de Node.JS et jusqu'à présent je suis amoureux d'elle. J'ai quelques projets sont déjà à l'œuvre que je pense que je peux utiliser nodejs dans.

Je suis inquiet, cependant, au sujet de la sécurité. Si j'écris un serveur web personnalisée à l'aide de Node.JS s'module http, suis-je susceptible d'être super vulnérables aux attaques? Apache/IIS ont eu des années (et des années) des professionnels des équipes de construction de la sécurité dans leurs serveurs, et encore des gens continuent à trouver des trous.. Est-il probable que mon homebrewed serveur web sera beaucoup plus ouvert à l'attaque?

Que puis-je pour construire une bonne couche de sécurité sur mon serveur web? Existe-il des bons articles là-bas qui couvrent le sujet?

9voto

Robert Brisita Points 557

La raison pourquoi il y a des années et des années, des équipes de professionnels du bâtiment de la sécurité dans Apache / IIS est parce que ceux qui sont de tous les aspects de serveurs. Ils peuvent avoir tous les types de services, par défaut, l'exécution de la version X de logiciel qui a besoin d'être patché quand un trou est trouvé, etc.

Une des grandes choses que j'ai trouver sur Node.JS c'est que vous lui dites ce que vous voulez exécuter sur le système d'exploitation de votre application spécifique. Aucun homme au milieu de la couche de si vous ne le voulez pas. Tout ce que j'ai à vous inquiéter si je l'héberger sur un serveur j'administre est au niveau de l'OS ports et le code de l'application web. Pas de fichiers de configuration d'Apache, le module de mises à jour, etc.

Alors, quand il s'agit de la sécurité dans Node.JS vous soucier de frotter à l'extérieur de l'information avant d'agir sur elle, vérifier l'identité sur des actions potentiellement dangereuses, etc. Être aussi fermé que possible. L'utilisation de SFTP pour le transfert de vos fichiers à distance au serveur d'hébergement, et se contenter d'ouvrir les ports nécessaires pour votre application web pour fonctionner correctement.

8voto

Zed Points 3005

Je suis d'accord avec anm et schaermu sur l'utilisation d'un reverse proxy, de sorte que votre application n'est pas directement accessible par vos visiteurs, même si cela a vraiment plus à voir avec la stabilité de la sécurité.

Je tiens à ajouter que vous devez aussi penser en toute sécurité de l'installation du Nœud lui-même et de ses modules. En particulier, ne jamais installer de mnp à l'aide de cette méthode:

curl http://npmjs.org/install.sh | sudo sh

C'est essentiellement donné shell root à tout ce que vous obtenez à partir du réseau à l'aide de l'insécurité HTTP avec aucune vérification, ni même de savoir qui vous parlent. Cela peut conduire à une grave compromis de l'ensemble de votre système à l'aide de très de base et largement les méthodes connues, et si votre système est compromise, alors il n'a pas d'importance si votre demande est derrière un reverse proxy, pare-feu ou quoi que ce soit. Voir cette réponse pour une explication plus détaillée.

5voto

schaermu Points 6251

Essayez d'utiliser Nginx comme serveur Web frontal pour améliorer à la fois la stabilité et la sécurité. Consultez google pour obtenir des ressources sur ce sujet.

3voto

anm Points 1057

Vous voudrez peut-être utiliser un proxy inverse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X