2009-09-30 17 views
1

Nous avons une application Web dans laquelle les utilisateurs peuvent télécharger des documents/fichiers dans notre base de données. Avant de télécharger un document/fichier, nous voulons envoyer le fichier pour la recherche de virus en ligne gratuit offert par quelques sites Web comme http://virusscan.jotti.org/en, obtenir le statut d'analyse à partir d'eux. Seulement si le statut de la réponse est OK, il devrait être autorisé à télécharger dans notre base de données.Formulaire en plusieurs parties Soumettre directement à une URL

J'ai même essayé une solution donnée dans: lindaocta.com/?cat=20

Ma question est ici:

1) Comment puis-je gérer dans ma demande d'envoyer directement le document/fichier aux sites de scanner de virus en ligne gratuits sans télécharger le document sur mon serveur.

2) De nos jours, les applications web sont développées en utilisant AJAX, donc la réponse peut être mise à jour progressivement dans la page. Si j'essaie de lire la réponse renvoyée par le site web gratuit de scanner de virus en ligne, ce n'est pas ce que j'attendais. Comment puis-je résoudre ce genre de scénarios?

Technologies OS: Linux RedHat ES5.0 Java 1.6 JSP Tomcat Servlets v6.0.10

Répondre

1

1) Vous auriez au moins proxy la demande via votre serveur afin d'avoir une chance à inspecter la réponse du scanner de virus. Si le client publie directement dans la société AV, votre servlet sera supprimée de la boucle, à moins que le site AV ne propose un système de vérification tiers basé sur des jetons. Quel est le site AV gratuit?

2) Ne jamais gérer toute logique métier de sécurité du côté client (navigateur) que ce soit par AJAX ou toute autre méthode. Un attaquant peut simplement modifier le javascript et forger une réponse positive du site du scanner AV.

Pourquoi avez-vous si peur de télécharger le fichier potentiellement dangereux sur votre serveur? Il vous suffit de le télécharger dans un répertoire spécial non publiable que vous créez (où aucun autre programme ne recherche de fichiers de configuration), de l'analyser et de le supprimer s'il ne le fait pas. Si vous n'essayez jamais de l'exécuter, et qu'il n'écrase pas un fichier de configuration ou un fichier de noyau ou quelque chose du genre, vous en avez probablement fait assez.

+0

Je comprends que ça fait 2 ans maintenant. Comment puis-je faire ce travail - 'Vous auriez au moins proxy la demande par le biais de votre serveur»? Tout pointeur vers un exemple de travail sur ce sujet est apprécié. – Gnanam

+0

En outre, je ne peux pas comprendre ces points - '... où aucun autre programme ne cherche de fichiers de configuration ...', '... il n'écrase pas un fichier de configuration ou un fichier noyau ou quelque chose ...'. Pouvez-vous expliquer ce que signifie le fichier de configuration ou le fichier noyau ici? – Gnanam