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

Débats sur le développement - Le Best Of Discussion :

Copier du code et l'utiliser pour ses propres projets peut les rendre vulnérables


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités

    Copier du code et l'utiliser pour ses propres projets peut les rendre vulnérables
    Ce message n'a pas pu être affiché car il comporte des erreurs.
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre habitué
    Eh ui StackOverflow c'est fait pour expliquer pourquoi ceci ou cela ne marche pas et comment y remédier avec un exemple d'extrait de code (ou autre) à adapter selon le contexte réel du problème, pas un recueil pour codemonkey. On ne cherche pas à y produire du code sécurisé mais à aider quelqu'un avec un truc aussi simple que possible, et c'est sûrement expliqué quelque part sur le site !! Pas besoin d'une étude pour ça.
    Pour Github en revanche, même si le code d'origine est sécurisé, quelqu'un qui copie/colle du code à la truelle laissera des vulnérabilités partout. Peut-être qu'il va omettre un mutex trois lignes plus haut parce qu'il n'a pas besoin des deux lignes entre les deux. Peut-être que les user inputs sont vérifiés en amont. Peut-être que yadda yadda.

  3. #3
    Membre expert
    Quand je cherche des exemple de codes je ne copie pas bêtement le code proposé. J'essaye d'abord de comprendre ce que le code fait puis de l'adapter à mon cas particulier c'est comme ça que l'on peut apprendre. Les codes proposés en exemple sur Stackoverflow et d'autres sites ne le sont qu'a titre d'exemple et ils ne sont pas exempts de bugs ni de vulnérabilités. Ils sont souvent de plus soit hors contexte dans le cas d'un exemple générique ou dans un contexte bien particulier qui n'est pas forcement celui dans lequel on travaille. Il faut comprendre avant d'intégrer tout ou partie du code proposé.

    Perso j'aime bien avoir deux trois exemples avant de choisir la façon dont j'intégrerai ça dans mon propre code.

    J'ai connu des collègues (qui ne sont plus là) qui au contraire faisaient du copier/collé systématique sans chercher à comprendre (sans même renommer les variables ou refactoriser le code) et ça donnait pas toujours de bons résultats. Il faut toujours un effort de compréhension, en plus c'est bon pour sa propre culture.

  4. #4
    Expert éminent sénior
    Citation Envoyé par sergio_is_back Voir le message
    (.../...)J'ai connu des collègues (qui ne sont plus là) qui au contraire faisaient du copier/collé systématique sans chercher à comprendre (sans même renommer les variables ou refactoriser le code) et ça donnait pas toujours de bons résultats. Il faut toujours un effort de compréhension, en plus c'est bon pour sa propre culture.
    Je présume que la partie que j'ai mis en gras est un euphémisme?
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  5. #5
    Membre expert
    Citation Envoyé par el_slapper Voir le message
    Je présume que la partie que j'ai mis en gras est un euphémisme?
    Oui... De façon plus explicite on peut dire que ça donnait de la merde mais c'était pour rester poli en début de semaine...

  6. #6
    Membre expérimenté
    J'ai un peu de mal avec cette étude

    Parmi les 72 483 extraits de code examinés utilisés dans au moins un projet hébergé sur GitHub, nous avons trouvé un total de 69 extraits de code vulnérables classés dans 29 types
    En vrai c'est pas si mal, ça voudrait dire que ~99.9% des codes partagé sur SO sont surs, pas la peine d'être si catastrophistes!

    Des fois, si on met tous les codes de vérification, on se retrouve avec un code long et pas forcément très lisible. Autant ne mettre que les briques essentielles. Le programmeur pourra gérer lui-même la sécurité comme il l'entend. Et si l'utilisateur ne se rend même pas compte qu'il copie un code vulnérable, la vulnérabilité copiée ne sera probablement pas la seule ni la pire de son code...

    En plus sur StackOverflow il peut y avoir des question sur la sécurité, donc si je vois une question du style "Qu'est-ce qu'un Buffer Overflow", ça ne me paraît pas alarmant que la réponse contienne une vulnérabilité, notamment si c'est un Buffer Overflow

  7. #7
    Inactif  
    Ça s'appelle BSD.

  8. #8
    Membre expert
    Citation Envoyé par sergio_is_back Voir le message
    Quand je cherche des exemple de codes je ne copie pas bêtement le code proposé. J'essaye d'abord de comprendre ce que le code fait puis de l'adapter à mon cas particulier c'est comme ça que l'on peut apprendre.
    Pareil. Perso je rajoute même un commentaire avec la source, du genre // Adapted from <URL de la source>.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  9. #9
    Membre extrêmement actif
    Citation Envoyé par matthius Voir le message
    Ça s'appelle BSD.
    +1 Pour le linuxien que je suis

  10. #10
    Membre expérimenté
    Citation Envoyé par air-dex Voir le message
    Pareil. Perso je rajoute même un commentaire avec la source, du genre // Adapted from <URL de la source>.
    Ça rend le code source illisible très rapidement. Je maintiens une base de code où 2-3 devs successifs sont passés et ils ont fait ça a plein d'endroit. Après dans mon cas ils ont vraiment fait le forcing, quand ils changeaient un truc dans un script le dernier dev en date faisait du "Made by blababla on the xx/xx/xxxx, code inspired from [lien SO]" souvent sur plusieurs lignes. Infâme.

    Perso quand je ne commente le code que lorsque ce n'est pas évident à la lecture, par exemple des règles spécifiques au secteur d'activité ou l'utilisation d'un pattern pas forcément évident au premier coup d’œil. Sinon j'utilise des noms de variables explicites et des constantes.

  11. #11
    Expert éminent sénior
    j'ai rajouté l'URL exactement une seule fois en commentaire, pour une manip système tout sauf évidente, que j'avais trouvé sur le site officiel d'IBM. Sinon, je fais comme MrSKY : je ne laisse que l'utile en commentaire.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  12. #12
    Membre expert
    Copie un code pour l'utiliser dans son propre projet peut le rendre vulnérable, si c'est un copier-coller compulsif, sans chercher à comprendre totalement ce que fait ce code.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

###raw>template_hook.ano_emploi###