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

 C Discussion :

'gets' est-il dangereux ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 487
    Par défaut 'gets' est-il dangereux ?
    Bonjour,


    lors d'un Tp en programmation, je suis amené à utiliser la fonction 'gets()'.
    étant sous Linux, j'utilise le compilateur gcc (gcc -Wall -o prog prog.c).
    Lors de la compilation, j'obtiens l'avertissement suivant:
    maj.c.text+0x25): warning: the `gets' function is dangerous and should not be used.
    MOn prof n'arrive pas à dire pourquoi cela est dangereux....

    Si quelqu'un le sait ?

    Merci d'avance
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

  2. #2
    Membre chevronné Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Par défaut
    Parce que gets() travaille avec un buffer interne pour lire le clavier. Comme la taille de ce buffer n'est pas connue ni contrôlée, il est possible de le faire déborder (en lui soumettant une très très longue chaine) et de créer une attaque par débordement de buffer.

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761

  4. #4
    Rédacteur
    Avatar de pi-2r
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2006
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 487
    Par défaut
    merci pour vos réponse

    Lors de la discution avec mon prof j'avais soulevé l'idée des attaques par "buffer overflow",mais il me soutenait que cela n'était pas possible et que c'était mon compilateur qui ne marché pas bien.......
    Les pièges de l'Internet
    Helix, réponse à une intrusion


    "La plus grande gloire n'est pas de ne jamais tomber, mais de se relever à chaque chute." Confucius
    "Si j'ai vu plus loin, c'est en me tenant sur les épaules de géants." Isaac Newton

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    ...

    Encore un prof qui ne maitrise pas son sujet, mais qui par un orgeuil mal placé ou démesuré n'admetra pas que l'etudiant puisse lui apprendre quelque chose.

    Un bon conseil, ne prend surtout pas pour argent comptant ce qui sort de sa bouche si tu souhaite continuer a coder et de surcroit si tu souhaite coder proprement.

    Bon courage pour la suite, je sais ce que c'est d'avoir ce genre de prof.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 122
    Billets dans le blog
    148
    Par défaut
    Surtout que c'est un truc que le compilo dit (genre il ne faut pas croire gcc, ou même celui de Visual), et que en plus, c'est marqué dans la page de man de la fonction. (La section que je préfère qui s'appelle BUGS).
    D'ailleurs, c'est grace au man que j'ai appris que l'on ne devait pas l'utilisé . Comme quoi, toujours lire une doc, entièrement .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    genre il ne faut pas croire gcc, ou même celui de Visual
    Sur ce point là quand même, c'est vrai qu'il ne faut pas croire tout ce que Visual dit .

    c'est marqué dans la page de man de la fonction
    Et aussi dans la norme. Personnellement, je préfère toujours lire la norme plutôt que les man pages ou MSDN Library quand il s'agit de fonctions/fonctionnalités standard. Mais c'est vrai que les man pages et MSDN Library ça s'ouvre en un clin d'oeil alors que pour consulter la norme il faut un peu faire une descente dans son disque dur, à moins d'avoir déjà défini des raccourcis claviers comme moi je l'ai fait (Ctrl + Alt + Shift + C => Std C ).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Upload d'avatars est ce dangereux?
    Par zintelix3d dans le forum Sécurité
    Réponses: 9
    Dernier message: 12/08/2008, 17h14
  2. Réponses: 10
    Dernier message: 13/10/2007, 13h17
  3. Réponses: 2
    Dernier message: 10/10/2007, 18h03
  4. [Sécurité] Le client/serveur est il dangereux ?
    Par kisitomomotene dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 18/09/2007, 00h22
  5. Réponses: 7
    Dernier message: 18/03/2007, 02h13

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