Question:
Pourquoi JavaScript peut-il être exécuté en toute sécurité dans le navigateur?
PBeezy
2018-11-30 11:28:42 UTC
view on stackexchange narkive permalink

JavaScript présente certaines limitations, telles que l'interdiction de lire et d'écrire sur le disque et de ne pas autoriser l'accès à d'autres fenêtres ou domaines de navigateur. Mais est-ce tout ce qui est nécessaire pour empêcher le code malveillant de s'exécuter?

JavaScript est assez puissant, et il semble étrange que les navigateurs exécutent sans aucun doute tout le code JavaScript qui leur est fourni. Comment est-ce sûr?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (https://chat.stackexchange.com/rooms/86702/discussion-on-question-by-pbeezy-why-is-javascript-safe-to-run-in-the-navigateur).
Dix réponses:
forest
2018-11-30 11:38:41 UTC
view on stackexchange narkive permalink

La norme est conçue pour être sûre. L ' implémentation peut ne pas l'être.

Le navigateur isole JavaScript, car il s'exécute dans un processus de navigateur lui-même. Il ne peut rien faire qui n'est pas autorisé par l'interpréteur JavaScript du navigateur ou le compilateur JIT. Cependant, en raison de sa complexité, il n'est pas du tout rare de trouver des vulnérabilités permettant à JavaScript de compromettre le navigateur et d'obtenir l'exécution de code arbitraire avec les privilèges du processus du navigateur.

Parce que ces types de bogues de sécurité sont si courants que de nombreux navigateurs implémenteront un bac à sable. Il s'agit d'un mécanisme de protection qui tente d'isoler un processus de navigateur compromis et de l'empêcher de causer d'autres dommages. Le fonctionnement du bac à sable dépend du navigateur. Firefox a un sandboxing très limité, tandis que Chrome et Edge ont un sandboxing important. Cependant, malgré cette défense en profondeur, les vulnérabilités des navigateurs peuvent souvent être combinées avec des vulnérabilités d'échappement du bac à sable.

C'est exactement le point: Javascript lui-même n'est pas "dangereux" (en termes de nuire au PC - pour les applications Web, Javascript peut être un grand défi).Le problème est que l'augmentation de la complexité, des fonctionnalités et de la taille pure des navigateurs est énorme - en quelques années, les navigateurs sont passés de simples outils d'affichage html à des logiciels de type OS.Il est donc très probable qu'il y ait et qu'il y aura toujours des vulnérabilités dans le navigateur qui peuvent être exploitées via Javascript.Autre point: les plugins.Écrit par "quelqu'un" mais excuté par le navigateur, vous avez donc une surface supplémentaire pour les vulnérabilités.
@forest Il existe une différence entre le sandbox fourni par le système d'exploitation et le sandbox fourni par le navigateur.Le premier peut être utilisé par le navigateur.Mais si un bac à sable OS, par exempleoffre l'accès à n'importe quel fichier sur une partition FAT32, cela ne signifie pas que le navigateur permettra à JS de le lire.Par exemple.Firefox fonctionnera toujours JS dans un environnement restreint, mais il ne peut pas utiliser le système d'exploitation pour fournir une protection (supplémentaire).
@MaartenBodewes Bien sûr, mais ce n'est pas quelque chose qui est garanti avec le navigateur.
C'est très rare mais c'est déjà arrivé: http://www.mobilexweb.com/blog/jailbreakme-iphone-ipad-browser-how-it-work
Une lecture supplémentaire sur pourquoi / comment la mise en œuvre du sandbox de Firefox est-elle plus limitée que d'autres?
"Firefox a un sandboxing très limité, alors que Chrome et Edge ont un sandboxing important": intéressant, j'aimerais en savoir plus à ce sujet.Par exemple, [cette réponse] (https://superuser.com/a/1309274/426045) indique le contraire.Avez-vous une source?Ou devrais-je poser une autre question?
@FabioTurati Cette réponse est incorrecte.Le sandboxing dans Firefox dont ils parlent est conçu pour empêcher les onglets qui plantent individuellement de planter tout le navigateur, et non pour isoler les compromis.Par exemple, Chrome / Chromium sandbox le GPU, alors que Firefox ne le fait pas (j'ai vérifié la dernière fois).Firefox (sur \ * nix) utilise jemalloc avec des tas de 4 Mio, ce qui facilite les attaques de pulvérisation de tas pour désactiver ASLR, contrairement à Chromium.Le PresArena de Firefox est également inférieur au PartitionAlloc de Chromium.Firefox a fait des tests dessus, tandis que Chromium travaille sur CFI et a des centaines de cœurs qui le fuzzent 24/7.
@FabioTurati Cette réponse n'est correcte que dans la mesure où Chromium et Firefox utilisent les mêmes technologies de base (par exemple seccomp-bpf), mais néglige de mentionner que le filtre seccomp de Firefox est très limité et primitif, alors que celui de Chromium est extrêmement étroit et fortement intégré dans les processus de sandbox..Il néglige également de mentionner le fait que Firefox ESR ne corrige pas intentionnellement les bogues de sécurité «modérés», seulement les plus graves, ce qui permet parfois d'enchaîner les bogues pour obtenir l'exécution de code.Chromium corrige également les bogues rapidement, alors que Firefox a des bogues vieux de dix ans encore ouverts ...
Notez également que JavaScript ** à l'intérieur du navigateur ** peut toujours être "malveillant" et faire des "choses malveillantes" car il s'agit d'un langage [Turing-complete] (https://en.wikipedia.org/wiki/Turing_completeness).Cependant, cela dépend de la façon dont vous définissez «malveillant». Cela peut par exempleouvrez facilement des popups ("adware") ou affichez des éléments similaires à l'intérieur de la fenêtre du navigateur.Un JS malveillant peut également voler vos informations de connexion s'il est injecté sur le site via des publicités, par exemple. Bien sûr, JS "sortir" du navigateur est une manière différente d'être "malveillant".
@forest "_Firefox a des bogues vieux de dix ans encore ouverts_" Quel genre de bogues?Voulez-vous dire des bogues de confidentialité ou des types de bogues conformes aux spécifications mais indéfendables?
@curiousguy Un mélange de tout.Rien de particulièrement grave, mais beaucoup de petites choses comme ne pas gérer correctement `SIGTERM` causant une corruption à l'arrêt.Juste des choses pour éroder la confiance.
@forest Firefox a un processus GPU sur Windows, à partir de 69 également sur Linux.Sous Unix, jemalloc utilise des blocs de 1 Mo, pas des tas de 4 Mo et je pense que c'est toujours le cas (Chromium utilise des blocs de 2 Mo!).Vos déclarations sur les filtres seccomp-bpf ou «bogues vieux de dix ans» sont juste vagues et subjectives, il est trivial de voir que Chrome a aussi des bogues ouverts depuis 2008 (près du début du projet).
@gcp Je ne connais Firefox que sous Linux (et il utilise le système malloc sous Windows).Les informations sur les problèmes jemalloc de Firefox sont discutées en détail dans le célèbre article "Shadow over Firefox" sur Phrack.En ce qui concerne le commentaire du filtre seccomp-bpf, je n'ai qu'un espace limité dans un commentaire pour élaborer dessus.
@forest Firefox sur Windows utilise également jemalloc.Les sources auxquelles vous faites référence sont tout simplement obsolètes.La sécurité du navigateur évolue constamment dans tous les principaux navigateurs.
@gcp Quand a-t-il commencé à utiliser jemalloc sous Windows?Mais vous avez raison, mes informations peuvent être obsolètes, en particulier pour Windows.Je suppose que c'est bien que je ne l'ai mentionné que dans les commentaires au lieu de la réponse.
@forest J'ai trouvé le bogue 1014976 - Activez jemalloc par défaut sur toutes les versions de Windows MSVC à partir de mai 2014 et le bogue 1258257 - Réduisez la taille du cache de la page mozjemalloc de 4 Mo à 1 Mo à partir de 2016.
@gcp Ah, d'accord.Eh bien, cela expliquerait.J'ai arrêté de faire des recherches sur le navigateur presque exactement un an auparavant!Merci pour la correction.
Serge Ballesta
2018-11-30 17:06:59 UTC
view on stackexchange narkive permalink

Comment est-ce sûr?

Ce n'est pas le cas. Ou plus exactement, il est aussi sûr que l'implémentation du navigateur. Les navigateurs (y compris leur moteur JavaScript) sont des logiciels complexes, avec l'ajout régulier de nouvelles fonctionnalités - parce que les utilisateurs les veulent.

Cela signifie que, même si les plus connus ont certainement une procédure de qualité pour tester leur code contre les vulnérabilités connues, le risque d'une faille non détectée dans l'implémentation d'une fonctionnalité existe toujours.

Actuellement, la méthode acceptée est que dès qu'une brèche est détectée, une nouvelle version contenant un correctif est publiée. Mais entre la découverte de la brèche et l'installation du correctif, le navigateur est vulnérable, c'est la raison pour laquelle il est recommandé de garder son navigateur à jour, afin de n'être exposé qu'au zero-day vulnérabilités.

Eh bien… "rien n'est sûr à 100%".En tant que tel, vous pouvez répondre «Ce n'est pas le cas».à tout.Je pense que le PO veut vraiment une réponse compte tenu des aspects pratiques / réalistes.Vous faites par exemplepas même mentionner les bacs à sable et les autres fonctionnalités que le navigateur avait intégrées depuis longtemps.
Le sandboxing @rugk: est juste un outil pour essayer de protéger le système contre les codes malveillants, et il est efficace ... jusqu'à ce qu'un attaquant trouve une vulnérabilité!C'est la raison pour laquelle je préfère insister sur la mise à jour d'un navigateur plutôt que sur les différents outils utilisés pour le sécuriser.
Margaret Bloom
2018-12-02 19:13:14 UTC
view on stackexchange narkive permalink

Il est vrai qu'au niveau JavaScript les navigateurs sont conçus pour sandbox le code en cours d'exécution (principalement en n'exposant aucune API dangereuse), mais JavaScript est un langage très complexe à analyser et exécuter .

ECMAScript est la norme derrière JavaScript, en raison de l'énorme inflation marketing autour des langages de programmation conviviaux pour les débutants que nous connaissons aujourd'hui, ECMAScript se met à jour rapidement et introduit des fonctionnalités de plus en plus complexes à implémenter pour un runtime. Ceci, à son tour, élargit la surface d'attaque et permet aux bogues de s'infiltrer .

Un exemple merveilleux est le travail récent de Patrick Biernat , Markus Gaasedelen , Amy Burnett pour le pwn2own 2018.

http://blog.ret2.io/2018/06/05/pwn2own-2018-exploit-development/

Le blog décrit la découverte d'un 0day qui permet l'exécution de code arbitraire dans WebKit et comment il est utilisé pour exploiter un autre 0day dans le gestionnaire de fenêtres macOS pour échapper à la sanbox dans laquelle Safari s'exécute (c'est un sandbox macOS, pas un Safari) pour passer à "root" et posséder le système.
En bref, en visitant simplement un lien tout en activant JavaScript, un système macOS peut être totalement compromis sans un seul problème visible pour l'utilisateur. C'est à quel point JavaScript peut être sûr: aussi sûr qu'un logiciel complexe que peut être JSCore de WebKit.
C'est pourquoi les utilisateurs qui ont besoin d'une haute sécurité sont invités à désactiver JavaScript (c'est une exigence assez courante dans DarkWeb, par exemple ).

La vulnérabilité ility dans WebKit découvert par les auteurs ci-dessus est une condition de concurrence entre le ramasse-miettes nouvellement introduit et la fonction array.reverse : si le GC commence à marquer un tableau pendant qu'il est inversé, cela pourrait conduire à un UAF (Utiliser After Free) exploit. La marque est effectuée séquentiellement sur le tableau, supposons que le GC soit juste au milieu du tableau lorsque cela est inversé, puis la seconde moitié n'est jamais marquée et donc élue pour la collection, ce qui entraîne un UAF (l'objet du tableau lui-même n'est pas collecté, seulement son élément).

La façon dont un UAF est utilisé pour créer des primitives d'exploitation plus puissantes pouvant conduire à l'exécution de code arbitraire est plus ou moins une variation des mêmes techniques: d'abord un objet intéressant est alloué dans l'espace nouvellement libéré (par exemple, un array) puis une primitive RW est créée (par exemple en modifiant la limite du tableau) et enfin des opcodes arbitraires sont écrits en mémoire (par exemple dans une page JITted).
Les détails pour ce 0day particulier sont dans le blog lié.

La partie intéressante est la façon dont ce 0day a été trouvé: étant donné que WebKit est si grand, un examen approfondi du code est impossible sans énormément d'efforts et une gigue automatisée a été configurée. réfléchissons au fait que lorsque nous avons des centaines de milliers ou des millions de lignes de code, il est très difficile de faire en sorte que chacune se comporte bien les unes par rapport aux autres.

Typo: «* Use * After Free», pas «* User * After Free».
Les gars chez Apple [n'aiment vraiment pas] (https://stackoverflow.com/q/52390368/1207195) `Array.reverse ()` ...
JSON
2018-12-01 02:58:26 UTC
view on stackexchange narkive permalink

Comme indiqué dans d'autres réponses, chaque navigateur possède son propre moteur de script conçu pour sandbox l'exécution de JavaScript et chaque moteur tente de limiter les fonctionnalités JavaScript qui pourraient conduire à un comportement malveillant.

Mais en règle générale, JavaScript n'a jamais été sécurisé dans le navigateur. Les développeurs de codes malveillants trouvent constamment des moyens d'exploiter le fonctionnement de chaque moteur ainsi que ses fonctionnalités JavaScript disponibles pour atteindre des objectifs malveillants.

Au cours des premières années, JavaScript était plutôt dangereux dans le navigateur. Maintenant, c'est une course constante entre les développeurs de codes malveillants et les développeurs de navigateurs / moteurs et finalement les développeurs malveillants gagnent toujours, même si ce n'est que pour une courte période. Ainsi, JavaScript peut difficilement être qualifié de sûr. "Devrait être sûr pour le moment" est une façon plus précise de le dire.

Qwertie
2018-12-02 15:13:48 UTC
view on stackexchange narkive permalink

JavaScript est assez puissant

C'est pourquoi de nombreux utilisateurs le considèrent comme dangereux et le bloquent à l'aide d'extensions de navigateur. JavaScript permet aux sites Web de suivre les utilisateurs d'une manière impossible sans cela, y compris l'identification des utilisateurs après qu'ils ont supprimé leurs cookies en prenant les empreintes digitales du navigateur. De nombreuses API Web plus récentes telles que WebUSB autorisent des choses qui ne sont pas du tout sûres, mais les navigateurs demanderont l'autorisation de l'utilisateur lorsqu'ils accèdent à des API non sécurisées comme USB et appareil photo.

Exactement!C'est pourquoi j'utilise [NoScript] (https://noscript.net) pour Firefox.Depuis des années.
Je crois que * tous * les navigateurs demandent avant de laisser le site Web accéder au microphone, à la caméra, au GPS ...
@curiousguy Il existe encore un grand nombre d'API JS qui n'ont pas besoin d'autorisation et qui peuvent être utilisées en combinaison pour vous identifier, comme l'API de batterie
@Qwertie Oui, l'équipe de Mozilla FF ** prétend ** être consciente de la confidentialité.Ils ont laissé un moyen ** trivial ** évident de vérifier si un lien était «: visité», sans même JS, être utilisable pendant des années.Ils ne s'en soucient pas vraiment!
MattG
2018-12-04 03:34:16 UTC
view on stackexchange narkive permalink

Il n'y a rien de sûr en soi à propos de JavaScript, à bien des égards, il est moins sûr que d'autres langages:

  • instruction eval
  • typage dynamique

C'est le sandbox où le navigateur exécute le JavaScript qui assure la sécurité. Consultez la documentation sur le bac à sable Chrome ici, notez qu'il n'y a aucune référence au script JavaScript ou ECMA.

Aujourd'hui, la grande majorité du code s'exécutant dans le navigateur est écrit en JavaScript. Avec la montée en puissance de WebAssembly, nous verrons probablement la plate-forme de navigateur passer du verrouillage de langue principalement unique d'aujourd'hui (comme un mainframe du passé) à une plate-forme ouverte où n'importe quel langage compatible WebAssembly peut être utilisé. . Cela prouvera en quelque sorte que JavaScript n'est pas particulièrement sûr / spécial, car à ce stade, de nombreux langages seront exécutés dans le navigateur. Toutes ces langues utiliseront le sandbox fourni par le navigateur pour s'exécuter.

L'instruction eval ne rend pas vraiment les choses moins sûres dans ce cas.Eval constitue une menace lorsqu'un attaquant est capable de lui transmettre des chaînes non filtrées, lui permettant ainsi d'exécuter du code arbitraire sur le système cible.Dans ce cas, l'attaquant est celui qui a écrit le Javascript et le système cible est le navigateur sur lequel il s'exécute.L'attaquant exécute * déjà * du code arbitraire sur le système cible, et la question est de savoir dans quelle mesure le bac à sable est sécurisé.
rackandboneman
2018-12-02 03:25:22 UTC
view on stackexchange narkive permalink

Il est sûr par rapport au code exécutable au niveau de la machine, comme ActiveX utilise.

Un programme de code machine a un accès illimité à toute interface que le système d'exploitation et les bibliothèques fournissent à tout programme exécuté sous ce compte utilisateur, n'est VRAIMENT limité dans ce qu'il peut faire que par ce que le matériel et le système d'exploitation le restreignent to - essentiellement rendre un tel programme aussi puissant que l'utilisateur qui l'exécute. Il peut y avoir des outils qui essaient de le restreindre en interceptant certaines des interfaces fournies, mais il est difficile d'arrêter un programme conscient de ces mesures pour les contourner.

L'interpréteur javascript fait partie du navigateur, et écrit de manière à n'offrir au programme qu'il exécute que les interfaces et les pouvoirs qu'il souhaite leur offrir.

Mais JavaScript peut être compilé et exécuté en tant que code machine.En fait, c'est généralement le cas.
Avec un compilateur contrôlé par l'UTILISATEUR et non par le DÉVELOPPEUR.
Certes, le compilateur JIT limite le bytecode qu'il peut cracher.
phyrfox
2018-12-04 02:40:51 UTC
view on stackexchange narkive permalink

JavaScript est "relativement sûr", mais pas "absolument sûr". Tout code que vous exécutez sur votre système a le potentiel de nuire. Il n'y a pas de système parfaitement sûr, à l'exception de celui qui n'a jamais été utilisé. JavaScript est plus sûr que de mettre un périphérique USB inconnu dans votre ordinateur, et plus sûr qu'un binaire que vous téléchargez à partir d'un site Web douteux ou insérez une pièce jointe suspecte, et beaucoup plus sûr que certains des scripts que vous trouverez sur les sites Web qui vous indiquent de copiez-collez-les dans votre shell.

Il a des fonctionnalités de sécurité: un bac à sable pour aider à isoler le processus, une API relativement limitée qui a des contraintes de sécurité pour éviter d'exécuter des instructions informatiques arbitraires, et des contrôles de sécurité destinés à Limitez l'exposition des données sensibles telles que les empreintes digitales ou le partage de données entre domaines. Celles-ci s'ajoutent aux contrôles de votre système d'exploitation appliqués au binaire du navigateur pour limiter les mauvais comportements et aux applications antivirus qui peuvent aider à arrêter de telles attaques.

Cependant, ce n'est pas absolument sûr. Les bogues dans le moteur d'exécution du navigateur, le navigateur lui-même, l'antivirus ou même le processeur lui-même peuvent tous compromettre la sécurité de JavaScript. Le système est aussi sûr que sa sécurité la plus faible. La sécurité de JavaScript est principalement destinée à empêcher les exploits «occasionnels» (comme un enfant de 8 ans qui apprend JavaScript pour la première fois et écrit accidentellement un exploit), mais n'a aucune chance contre des attaquants dévoués. JavaScript est suffisamment compliqué pour qu'il y ait forcément des bogues, peut-être de manière étrange et inattendue.

Ceux qui sont expérimentés dans le piratage, les tests de stylet et la sécurité peuvent parcourir le code source, déboguer des exécutables et le font. faites tout ce qu'ils peuvent pour essayer de trouver des fissures dans l'armure. Les points faibles de l'implémentation JavaScript. Et JavaScript est suffisamment gros pour que de telles lacunes existent au départ, car il est pratiquement impossible d'automatiser tous les tests possibles qui permettraient de trouver ces bogues.

D'une manière générale, tout script typique que vous pourriez exécuter sur un site Web typique est probablement "sûr", en particulier ceux auxquels sont liés par les principaux moteurs de recherche. Cependant, une fois que vous commencez à sortir des sentiers battus, il est extrêmement probable que votre système soit compromis à un moment donné s'il y a ne serait-ce qu'un seul point faible. Il suffit d'un très bon exploit, ou parfois de deux ou trois en tandem, pour prendre complètement le contrôle d'un système.

En l'état, n'activez JavaScript que pour les sites de confiance (j'utilise personnellement NoScript à cette fin) , gardez toujours tous vos logiciels à jour et faites toujours attention aux avertissements du navigateur tels que les certificats invalides, etc. Même dans ce cas, vous ne serez pas en sécurité à 100%, mais vous participerez activement à votre propre stratégie d'atténuation.

guest271314
2018-12-03 00:25:26 UTC
view on stackexchange narkive permalink

Cette réponse abordera deux points soulevés à la question et une "fonctionnalité" du navigateur non soulevée dans la question.

JavaScript a certaines limitations telles que l'interdiction de lire et d'écrire sur le disque

cette limitation n'existe pas techniquement dans les navigateurs Chromium / Chrome où requestFileSystem est défini, qui écrit directement sur le disque; c'est-à-dire le dossier File System du répertoire de configuration Chromium / Chrome dans le système de fichiers des utilisateurs.

Voir Comment écrire dans un fichier (répertoire utilisateur) en utilisant JavaScript?

et ne pas autoriser l'accès à d'autres fenêtres ou domaines de navigateur.

Si une fenêtre est ouverte à partir d'une fenêtre déjà ouverte, la communication entre les fenêtres s est possible en utilisant, y compris , mais sans s'y limiter, postMessage , MessageChannel , SharedWorker , ou simplement interroger les paramètres de chaîne.

Voir Comment puis-je charger un collaborateur Web partagé avec un script utilisateur?


Un autre point non mentionné à l'OP qui doit être soulevé ici spécifique à Chromium / Chrome est le fait que l'implémentation SpeechRecognition de l'API Web Speech sur ces navigateurs enregistre la voix des utilisateurs (identifiant biométrique) et envoie cet enregistrement à un service distant, sans informer directement l'utilisateur de ce qui se passe. Il n'est pas immédiatement clair si le ou les enregistrements sont conservés (pour toujours) par le "service Web" non divulgué ou "supprimés" à un moment donné.

Voir Est-ce que webkitSpeechRecognition envoie l'audio enregistré à une télécommande service Web par défaut?

Cort Ammon
2018-12-01 12:31:31 UTC
view on stackexchange narkive permalink

Il est sûr car il a été conçu pour être sûr. Ou du moins, c'est sûr au point où un "JavaScript est assez puissant" moins que formel suggère qu'il est probablement suffisamment sûr pour vous rassurer. En pratique, aucun logiciel n'est parfaitement sûr, c'est donc une question de degré. Javascript est suffisamment sûr pour que la plupart des entreprises acceptent de permettre aux employés de visiter des sites Web à l'aide du matériel de l'entreprise.

JavaScript est conçu pour empêcher les attaquants d'accéder à vos fichiers ou à toute information privée. Par exemple, il a un support pour empêcher un script sur un site de regarder les données d'un autre site (connu sous le nom d'attaque intersite).

Bien sûr, ce n'est pas parfait. Il y a eu une récente frayeur avec Spectre et Meltdown, une paire d'exploits qui reposaient sur une faille dans certains processeurs pour se libérer des exécutions JavaScript du bac à sable. Cela devait être patché avec des hacks logiciels plutôt laids pour couvrir les processeurs défectueux.

Mais en général, il est "sûr" d'exécuter de tels scripts car de nombreux experts en sécurité ont passé beaucoup de temps à s'assurer que ce sentiment de la sécurité est justifiée. Mais tout dépend de votre modèle de menace. Si vous aviez des milliards de dollars en jeu, vous ne voudriez peut-être même pas faire confiance à la sécurité de JavaScript!

La vraie question est donc de savoir quelle est votre barre pour «sûr»? Considérez-vous que Windows est sûr? Qu'en est-il d ' Internet Explorer? Adobe Acrobat Reader? OpenJPEG? Le noyau Linux? OpenSSL? La sécurité et la convivialité sont toujours en désaccord. Vous devez utiliser quelque chose (ou peut-être que vous ne l'avez pas. Les Amish n'ont pas encore été frappés par un 0-day ... sauf si vous comptez une nouvelle souche de grippe) Pour vraiment comprendre si vous pouvez appeler quelque chose de "sûr" pas vous avez besoin d'un modèle de menace, définissant comment quelqu'un pourrait vous attaquer, et d'un modèle de convivialité définissant la convivialité que vous devez atteindre tout en atténuant le modèle de menace. Sans ceux-ci, nous devons lire vos mots et votre histoire pour deviner ce que signifie «sûr».

Faites des votes négatifs: une explication des raisons pour lesquelles vous pensez que cette bonne réponse devrait être rejetée serait appréciée.
J'ai voté contre parce que vous surestimez la sécurité de JavaScript de loin, en particulier lorsque chaque version d'un nouveau navigateur est nécessaire pour corriger de nombreuses vulnérabilités récemment découvertes dans le moteur JS.Le fait qu'un exploit JS puisse être acheté pour environ 30 000 dollars dans certains pays montre qu'il est bien trop optimiste pour supposer qu'il est si sûr qu'il faut un milliard de dollars d'actifs pour qu'il vaille la peine d'être brisé.Votre prémisse d'origine, à savoir que JavaScript est «sûr» parce qu'il a été conçu pour être sûr, est incorrecte.
J'ai voté contre parce que cela commence par la déclaration affirmative "C'est sûr" qui est faux.Ce n'est que relativement sûr, comme vous le faites remarquer.
@Ben Merci.Ça explique beaucoup.J'ai ajouté du texte pour expliquer pourquoi je l'ai appelé "sûr", ce qui concernait la barre qu'il semblait que l'OP dessinait.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...