web-dev-qa-db-fra.com

Quelles sont les raisons pour sceller un .jar et comment puis-je vérifier cela?

J'ai créé un pot scellé, mais je ne vois pas la différence comparée à l'utilisation d'un non scellé.

  • Quels tests je peux effectuer pour vérifier que le pot est scellé?
  • Quelle raison pourrions-nous avoir à préférer en utilisant un scellé sur Non un?
  • Un scellé va-t-il créer des problèmes pour les utilisateurs de mes projets?
8
Aquarius Power

Pour répondre à votre deuxième question, nous scellons nos pots comme une mesure de sécurité, car cela empêche une forme d'injection de code lorsque des classes supplémentaires sont ajoutées à notre base de code au moment de l'exécution.

Nous avons une certaine quantité de réflexion dans notre code où des objets sont créés en fonction de la saisie de l'utilisateur. Le code qui crée ces objets ne permettra que les classes des noms de forfaits fixes à être instanciés.

En scellant les pots qui contiennent les classes que nous voulons que les utilisateurs puissent être capables de créer, il n'ya aucun moyen que l'utilisateur puisse créer de nouvelles classes potentiellement dangereuses et que notre logiciel puisse les instantiez au moment de l'exécution. À moins que la classe ne soit dans le bon paquet, notre code ne le chargera pas et scellera que les bocaux signifie que seules les classes que nous souhaitons que les utilisateurs aient accès à être accessibles.

Si nos pots n'étaient pas scellés, l'utilisateur pourrait potentiellement ajouter de nouvelles classes pouvant être instanciées. Ce serait un risque de sécurité.

TL; DR: En scellant vos pots, vous pouvez empêcher un type d'injection de code malveillante.

2
Mark Douglas