IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

[Choix]Développement sécurisé, Quel est le meilleur langage?


Sujet :

Langages de programmation

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 2
    Points
    2
    Par défaut [Choix]Développement sécurisé, Quel est le meilleur langage?
    Et j'aurais presque envie de rajouter, "et quel est le pire ?"

    Voila je m'intéroge à ce sujet et je voulais sondez un peu vos avis. J'aimerais savoir quelle est la meilleure solution (et pourquoi ?) pour produire du code sécurisé, et notament régler les problèmes de buffer overflow, saisie de données, fichiers temporaire, race course, ...

    Merci de votre collaboration

    Edit : si vous avez des sources d'information, je prend volontier

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    C++ (à condition de l'utiliser comme du C++ et pas comme du C)
    Ada peut-etre aussi. Eiffel. Peut-être D aussi.

    Ils permettent d'ignorer les problèmes de buffer overflow (cf ma parenthèse précédente) vu qu'ils disposent de types chaines et vecteurs qui sont autres choses que des buffers à taille limité lors de l'exécution ; ils permettent de programmer par contrat là où c'est nécessaire et que cela a un sens, sans passer par des outils externes comme en Java.

    J'ai l'impression que tout le problème (dans les cas de buffer overflow) est surtout de connaitre le sous-ensemble de ces langages qui permet d'éviter ces problèmes. Malheureusement, ce sous-ensemble n'est pas toujours enseigné/connu (juste pour garder un code simple (C), ou par méconnaissance (C++)).

  3. #3
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Pour éviter les buffer overflows, à peu près n'importe quel langage avec un bon garbage collector fait l'affaire. Comme la plupart des languages en ont un (Python, Ruby, C#, Java, Perl, Lisp, Scheme, ML, Haskell, etc.), le choix du langage est large.

    Pour la saisie de données, un langage avec des exceptions rend la tâches très facile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try:
        n = int(raw_input('Entrez un entier: '))
    except ValueError:   # Si la fonction int() échoue, elle renvoie une exception
        print "Vous n'avez pas entrez un entier"
    Pour les fichiers temporaires et les race conditions, je ne suis pas sûr s'il y a des features dans un langage qui permettent de les éviter

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Pas besoin de ramasse miettes pour éviter simplement les buffer overflow. J'ai même envie dedire qu'il n'y a pas trop de rapport. C'est plus une question de savoir si le langage dispose d'abstractions qui sont sûres à ce regard et que les programmeurs ajoutent des données dans ces abstractions de buffers (ou autres -> chaines) en utilisant les méthodes dédiées à cela au lieu de faire des accès directs non contrôlés.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Plus que le langage la programmation "securisé" est surtout un problème d'ecriture de code correcte et contrôlé. c'est beaucoup plus long, donc plus couteux, c'est plus astraignant, nécéssite une meilleur connaissance du langage utilisé, mais aussi de l'OS et du contexte, bref beaucoup de "bonne" raison à un manque certain de "securité" dans les programmes quelqu'ils soient.
    Mettre un porte blindé (même exellente) sur un mur en torchie n'as qu'une utilité toute relative

Discussions similaires

  1. Réponses: 40
    Dernier message: 04/05/2014, 22h42
  2. Développement mobile : quel est le meilleur choix pour concevoir ses applications
    Par Stéphane le calme dans le forum Débats sur le développement - Le Best Of
    Réponses: 15
    Dernier message: 25/11/2013, 11h43
  3. Quel est le meilleur langage pour la portabilité : Windows & Linux (voire Mac) ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 57
    Dernier message: 27/11/2007, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo