Pourquoi Java est-il étiqueté comme un langage "sécurisé"?


Je suppose que c'est une question générale, mais je suis en train de suivre des cours d'introduction à java (SE/ME) et le matériel d'étude affirme que java est souvent utilisé à des "fins de sécurité". Il n'explique cependant pas ce qu'ils veulent dire en affirmant que java intègre une bonne sécurité.

Est-ce une preuve de piratage? Produit-il un logiciel très stable? Comment?

La sécurité de mon point de vue (pour le moment) est que c'est entre les mains du développeur qui écrit le code, pas la langue elle-même?

Author: Marcus, 2010-10-08

11 answers

IMHO, c'est une déclaration très trompeuse. En Java, vous ne pouvez pas accéder aux tableaux hors limites, et vous n'avez pas de pointeurs, et donc plusieurs failles de sécurité comme la corruption de pile ou le débordement de tampon sont impossibles à exploiter en Java. Mais Java n'est pas intrinsèquement plus sûr que n'importe quel autre langage; c'est juste qu'il y a moins de chances de faire des erreurs qui peuvent causer des failles de sécurité. En effet, cela réduit les failles de sécurité, mais il est totalement trompeur de dire que Java est sécurisé.

 28
Author: Lie Ryan, 2010-10-08 19:26:06

Il y a deux choses qui rendent Java "plus sûr" que les autres langages sous certains aspects:

  • La vérification automatique des limites de tableau et le manque de gestion manuelle de la mémoire rendent certaines classes d'erreurs de programmation qui provoquent souvent de graves failles de sécurité (telles que les dépassements de tampon) impossibles. La plupart des autres langages modernes partagent cette fonctionnalité, mais C et C++, qui étaient des langages de développement d'applications dominants (et sont toujours majeurs) au moment où Java est apparu, le font pas.
  • Le concept Security Manager rend relativement facile l'exécution d'applications Java dans un "bac à sable" qui les empêche de nuire au système sur lequel elles s'exécutent. Cela a joué un rôle important dans la promotion de Java à ses débuts, car les Applets étaient envisagés comme un moyen omniprésent et sûr d'avoir des applications Web côté client.
 12
Author: Michael Borgwardt, 2010-10-08 19:30:19

Java fournit des garanties et des outils de sécurité, tels que:

  • Aucun exploit de dépassement de tampon
  • Vérification du code octet
  • Autorisations de sécurité pour différentes bases de code
  • Api liées à la sécurité

Pour plus de détails, voir Oracle "Java Aperçu de la Sécurité".

 5
Author: Andy Thomas, 2018-09-07 13:24:32

Parce que Java se compile en tant quebytecode qui s'exécute ensuite dans une machine virtuelle , il ne peut pas accéder à l'ordinateur sur lequel il s'exécute comme le peut un programme compilé nativement.

 3
Author: thomaspaulb, 2010-10-08 19:25:45

La raison générale pour laquelle Java est considéré comme plus sécurisé que, disons C, est parce qu'il gère la gestion de la mémoire pour vous. Dans d'autres langages, les programmeurs allouent leur propre mémoire et ne le font souvent pas correctement, provoquant des débordements de tampon, etc. Bien sûr, la machine virtuelle Java peut toujours contenir les mêmes types de bogues, mais elle est bien testée au fil du temps, contrairement à tous les programmes écrits par l'utilisateur.

Donc à cet égard, il est plus sûr. Mais vous pouvez toujours écrire du code non sécurisé, car non langue vous protéger contre l'écriture manifestement erronée code.

 3
Author: Matthew, 2010-10-08 19:28:36

Plusieurs langages, notamment C et C++, ont une classe de bogues qui peuvent permettre l'exécution de code arbitraire lorsqu'ils sont exploités - de tels bogues sont assez courants et faciles à créer. Ces bogues sont souvent une forme de buffer overflow .

Java, et de nombreux autres langages/plates-formes éliminent cette classe de bogues(bar bogues potentiels exploitables dans la machine virtuelle elle-même), ce qui, selon beaucoup, la rend plus sécurisée.

 3
Author: nos, 2010-10-08 19:29:15

C'est du marketing)

 2
Author: Stan Kurilin, 2010-10-08 20:01:11
  1. C'est la question de base posée dans une interview pourquoi java est sécurisé sa raison derrière cela car java est sécurisé car à l'intérieur de la jvm un logiciel est présent dont le nom est security manager dont la responsabilité est de gérer toutes choses, si quelque chose se passe wrong.so son contrôle / prévention d'un système

  2. Une autre chose est qu'il crée une interface entre le code source et le système(os),Et aucune autorisation de l'utilisateur de faire quelque chose de mal.

 2
Author: atul, 2012-10-09 10:07:52

Le compilateur Java convertit le code Java en code octet (.class file) et ces codes d'octets sont ensuite exécutés par la machine virtuelle Java (JVM) . JVM est un interpréteur installé sur chaque machine cliente qui est mis à jour avec les dernières mises à jour de sécurité par Internet . Lorsque ces codes d'octets sont exécutés, la JVM peut s'occuper de la sécurité. On dit donc que java est plus sécurisé que les autres langages de programmation.

 2
Author: user2287187, 2013-08-08 11:03:26

Les types génériques (ou génériques) ont également une ressemblance superficielle avec les templates en C++, tant dans leur syntaxe que dans leurs cas d'utilisation attendus (tels que les classes de conteneurs). Mais la similitude n'est que superficielle - les génériques du langage Java sont implémentés presque entièrement dans le compilateur, qui effectue la vérification de type et l'inférence de type, puis génère des bytecodes ordinaires non génériques. Cette technique d'implémentation, appelée effacement (où le compilateur utilise les informations de type générique pour assurer la sécurité du type, mais l'efface ensuite avant de générer le bytecode), a des conséquences surprenantes et parfois déroutantes. Alors que les génériques sont un grand pas en avant pour la sécurité des types dans les classes Java, apprendre à utiliser des génériques fournira presque certainement une occasion de se gratter la tête (et parfois de maudire) en cours de route.

 1
Author: Rajesh, 2013-07-26 12:27:08

**

> Pourquoi Java Est Sécurisé Lanquage

**

Raison: 1. Comme le programme java s'exécute dans sa propre machine virtuelle sandbox 2. La dissimulation de données en Java (OOPs) en fait l'un des langages sécurisés. Peut-être que certains points sont également là, mais ne peuvent pas le rappeler en ce moment.

3.No utilisation de pointeurs empêchant l'accès non autorisé au bloc de mémoire.

4.No accès à la gestion de la mémoire

  1. Fonctionnalité de contrôle d'accès
  2. Gestion des exceptions
  3. Utilisation du mot-clé final
  4. Paquet java.la sécurité fournit les classes et les interfaces pour le cadre de sécurité

La sécurité Java est activée à chaque étape: le mot-clé final chargement sécurisé de classe responsable de la sécurité jit vérification du code octet gestion automatique de la mémoire jsse extension cryptographique java signature numérique jaas: service d'authentification et d'autorisation java

Si vous avez appris cette chose, veuillez aimer ceci

 0
Author: Keshav Gera, 2017-04-18 06:28:02