Question

J'ai une application Web C # sur .net 2.0 hébergée sur le serveur A. L'application Web permet aux utilisateurs de télécharger des fichiers à l'aide de <input id="File1" name="filMyFile" type="file" runat="server" /> sur le serveur A. Tout cela fonctionne correctement.

On me demande maintenant de modifier l'application Web pour permettre aux pages servies par A d'autoriser le téléchargement directement sur le serveur B sans stocker aucune information sur A, même de manière temporaire.

On me demande de le faire pour des raisons de sécurité. Je pensais éventuellement utiliser un iframe et que le serveur B héberge uniquement la partie de téléchargement encapsulant la demande avec SSL. Je ne suis pas tout à fait sûr des conséquences de cette opération pour la sécurité. Toutefois, j'ai vu quelques sites Web sur lesquels SSL ne contrôle qu'un identifiant (iframe) contenant la partie de connexion et le reste de leur site n'était pas sécurisé.

Est-ce une bonne chose à faire? Quelqu'un peut-il recommander un meilleur moyen? Peut-être suggérer une architecture de base.

Était-ce utile?

La solution

J'ai utilisé l'approche iframe, où le code iframe avec le formulaire de téléchargement est hébergé sur le serveur B. Cela a fonctionné assez bien. Vous pouvez également héberger toute la page sur le serveur B si vous le souhaitez.

Autres conseils

Pourquoi ne définissez-vous pas simplement l'action form sur la page sécurisée SSL sur le serveur B?

<form method="POST" action="https://serverb/uploadmanager.ashx" ...>

Vous pouvez également écrire le fichier directement sur une base de données SQL. Je préfère cette approche du point de vue de la sécurité, car le fichier ne vit jamais sur le disque dur du serveur. Il pourrait ensuite être partagé entre les deux serveurs.

Le revers de la médaille est qu'il est plus difficile d'effectuer une analyse AV sur des fichiers qui ne sont pas écrits au préalable sur le disque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top