J'ai une Java application web qui accepte base64
chaînes d'images des utilisateurs. Ces chaînes sont d'abord converties en un flux d'octets, après quoi le flux est analysé pour les virus. Après cela, le fichier est stocké en tant que version redimensionnée de l'image réelle.
Ma question est, lorsque le fichier a été transformé à partir d'un base64
chaîne vers un flux d'octets en mémoire et il se trouve qu'il contient un virus, ce virus pourra-t-il s'échapper du flux d'octets et infecter le reste du serveur? Ou peut-il le faire uniquement après que le flux a été transformé en un fichier stocké sur le disque?
Ni.
Un virus se trouvant sur un disque en tant que fichier est inoffensif. Un virus se trouvant dans la mémoire lorsque les données sont inoffensives. Il ne peut infecter une machine que lorsque quelque chose essaie de l'exécuter ou l'interprète incorrectement. Cela peut se produire en raison de l'action de l'utilisateur (inciter quelqu'un à télécharger et exécuter un fichier .exe) ou en raison de faiblesses de l'application, c'est ce que vous demandez (par exemple, masquer des données malveillantes dans un PDF pour déclencher) une vulnérabilité dans un lecteur PDF et tromper l'application en exécutant des instructions malveillantes).
Donc, pour choisir quelques exemples de votre situation:
Cependant, un virus ne peut pas causer de problèmes simplement en étant sur votre serveur. Il doit trouver un moyen de s'exécuter. La seule défense consiste à pratiquer une sécurité d'application appropriée et à tout mettre à jour.