GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Langage C : Bonnes pratiques (ANSSI)

+8
Ryo Saeba
drfloyd
chacs
tophe38
xinyingho
elsaeba
tapomag
iwillbeback
12 participants

Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Langage C : Bonnes pratiques (ANSSI)

Message par iwillbeback Ven 23 Déc 2022 - 9:28

Les bonnes pratiques du langage C validés par l'ANSSI (v1.4) :

https://www.ssi.gouv.fr/uploads/2020/07/anssi-guide-regles_de_programmation_pour_le_developpement_securise_de_logiciels_en_langage_c-v1.4.pdf

Langage C  : Bonnes pratiques (ANSSI) Pbxj

SOURCE ANSSI

Indispensable !!
avatar
iwillbeback
Interne
Interne

Masculin Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par tapomag Ven 23 Déc 2022 - 10:07

un bon rappel quand on est un peu rouillé en C, merci.
tapomag
tapomag
Patient incurable

Masculin Nombre de messages : 1311
Age : 51
Localisation : Ici
Date d'inscription : 01/10/2022

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par elsaeba Ven 23 Déc 2022 - 10:17

intéressant !

Cependant cela fait au moins 10 ans que je ne code plus en C++ au boulot, au profit du Java.
elsaeba
elsaeba
Patient en incubation

Masculin Nombre de messages : 14
Age : 44
Localisation : Marseille
Date d'inscription : 08/11/2022

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par xinyingho Ven 23 Déc 2022 - 10:21

Ah ouais 180 pages... C'est indigeste. Ils ont pas une version condensée en 5-10 pages ?
xinyingho
xinyingho
Interne
Interne

Masculin Nombre de messages : 5038
Age : 44
Localisation : Noisy-le-Grand
Date d'inscription : 23/07/2018

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par iwillbeback Ven 23 Déc 2022 - 10:35

Ce qui est réellement intéressant, ce sont les règles et les recommandations:

Exemples:
Ne pas utiliser la fonction rand() de la bibliothèque standard
ne pas utiliser les préfixes ++ et --
etc..

Langage C  : Bonnes pratiques (ANSSI) 6i1c
Langage C  : Bonnes pratiques (ANSSI) T8a8
Langage C  : Bonnes pratiques (ANSSI) Nffx
avatar
iwillbeback
Interne
Interne

Masculin Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par tophe38 Ven 23 Déc 2022 - 10:39

Ils sont sérieux là ? En clair, on fait du C, mais sans utiliser une seule bibliothèque ? MDR
Et ils vont faire pareil avec JAVA ? Ça va être drôle.

Clairement, le soucis, ce n'est pas de mettre des règles, c'est juste de trouver de bons développeurs.
Mais ça, en France, ce n'est plus possible, on est juste un pays de managers (avec du coaching)

Edit : Je viens de parcourir certains points du document, et il y a de bons rappels quand même.
Des choses évidentes pour les personnes expérimentés, mais au moins, c'est écrit.
Mais préciser que la fin de ligne est au format Unix, c'est quand même pousser le bouchon un peu loin.

Attention, ce n'est pas un manuel du C, ou un memento, c'est juste un rappel de bonnes pratiques (même si certaines restent quand même Mad )
tophe38
tophe38
Interne
Interne

Masculin Nombre de messages : 6383
Age : 51
Localisation : Vallée du Grésivaudan
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par tapomag Ven 23 Déc 2022 - 11:43

Pour le C, le K&R est limite moins épais. Par contre, il ne va pas dans les bonnes pratiques, c'est simplement une présentation du langage.
Il y a le Harbison & Steele (« C, a reference manual ») également pour une revue de la bib standard étendue. Un peu vieux, tout comme le K&R.

Sinon pour les évos récentes (C11, C17, je suppose que tout le monde s'est quand même mis au C99 y compris le compilo lamentable de microsoft), autant récupérer les drafts de la norme.
tapomag
tapomag
Patient incurable

Masculin Nombre de messages : 1311
Age : 51
Localisation : Ici
Date d'inscription : 01/10/2022

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par chacs Ven 23 Déc 2022 - 11:47

depuis le C++11, j'utilise exclusivement les smart_ptr.
fini les malloc et les memory leaks etc ...
chacs
chacs
Interne
Interne

Masculin Nombre de messages : 6229
Age : 49
Localisation : Toulouse
Date d'inscription : 27/07/2012

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par tapomag Ven 23 Déc 2022 - 12:14

On parle de C, pas de C++.

La norme C23 est en préparation, vu ici:
https://linuxfr.org/redaction/news/nouveautes-du-langage-c-dans-sa-prochaine-version-c23
tapomag
tapomag
Patient incurable

Masculin Nombre de messages : 1311
Age : 51
Localisation : Ici
Date d'inscription : 01/10/2022

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par chacs Ven 23 Déc 2022 - 12:25

Ah oui pardon, j’avais pas fait gaffe.
J’avoue que j’ignorais que le C avait encore des évolutions.
J’ai lu C11, j’ai cru que ça parlait des C++11, 14,17,20 ..,
chacs
chacs
Interne
Interne

Masculin Nombre de messages : 6229
Age : 49
Localisation : Toulouse
Date d'inscription : 27/07/2012

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par drfloyd Ven 23 Déc 2022 - 13:12

tophe38 a écrit:Ils sont sérieux là ? En clair, on fait du C, mais sans utiliser une seule bibliothèque ? MDR
Et ils vont faire pareil avec JAVA ? Ça va être drôle.

Clairement, le soucis, ce n'est pas de mettre des règles, c'est juste de trouver de bons développeurs.
Mais ça, en France, ce n'est plus possible, on est juste un pays de managers (avec du coaching)



tellement vrai

et souvent incompétent totalement pour diriger des équipes :
- car aucune compétence technique, prenant des décisions absurdes,
- et plus grave encore : incappable de gérer l'aspect humain, car trop centrés sur leur propre évolution, ou sur leur peur d'être viré. 

je connais plein d'informaticiens managers qui n'ont jamais créé le moindre programme de leur vie... mais ils sont "chefs de projet"  Mr. Green

_______________________________________________________
Langage C  : Bonnes pratiques (ANSSI) Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 184632
Age : 55
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par xinyingho Ven 23 Déc 2022 - 13:22

drfloyd a écrit:et souvent incompétent totalement pour diriger des équipes :
- car aucune compétence technique, prenant des décisions absurdes,
- et plus grave encore : incappable de gérer l'aspect humain, car trop centrés sur leur propre évolution, ou sur leur peur d'être viré. 

je connais plein d'informaticiens managers qui n'ont jamais créé le moindre programme de leur vie... mais ils sont "chefs de projet"  Mr. Green
C'est ce que j'appelle des mauvais managers.

Les bons managers doivent comprendre la technique ou ils doivent savoir se faire assister par un lead tech qui sait lui expliquer correctement la technique pour l'aider dans les décisions et se former lui-même suffisamment pour devenir à l'aise in fine sans trop devoir toujours faire appel à son lead technique.

C'est comme tous les types de travail, il y a les bons et les mauvais.
xinyingho
xinyingho
Interne
Interne

Masculin Nombre de messages : 5038
Age : 44
Localisation : Noisy-le-Grand
Date d'inscription : 23/07/2018

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par tophe38 Ven 23 Déc 2022 - 13:28

C'est ça, le mec, il a besoin qu'on lui explique, pour prendre des décisions MDR
En gros, le mec a une position, sans en avoir les compétences !!
(C'est vendredi....)

Pour revenir au document, plus je le lis, plus je le trouve bien, et franchement, ça me fait plaisir.
tophe38
tophe38
Interne
Interne

Masculin Nombre de messages : 6383
Age : 51
Localisation : Vallée du Grésivaudan
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par Ryo Saeba Ven 23 Déc 2022 - 13:33

Hello,

Le gouvernement veut m'expliquer comment coder ...

fofo.rider a écrit:
ne pas utiliser les préfixes ++ et --
Effectivement, c'est relou de lire tab[i++], mais comme le dit
tophe38 a écrit:Clairement, le soucis, ce n'est pas de mettre des règles, c'est juste de trouver de bons développeurs.
Mais ça, en France, ce n'est plus possible, on est juste un pays de managers (avec du coaching)
thumleft
Ryo Saeba
Ryo Saeba
Guéri miraculeux

Masculin Nombre de messages : 2496
Age : 44
Localisation : Paname
Date d'inscription : 15/10/2022

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par xinyingho Ven 23 Déc 2022 - 13:43

tophe38 a écrit:C'est ça, le mec, il a besoin qu'on lui explique, pour prendre des décisions MDR
En gros, le mec a une position, sans  en avoir les compétences !!
(C'est vendredi....)
Ben oui, en tant que manager, t'as le droit d'être relativement junior sur la technique au début, c'est juste qu'il faut qu'il se forme au fur et à mesure. Mais les mauvais managers sont ceux qui ne vont jamais dans les détails techniques. Et j'en connais malheureusement un. Il reste sur ses acquis et, pour le reste, il se débrouille en faisant de la politique et n'hésite pas à mettre les autres sous le bus pour se protéger...
xinyingho
xinyingho
Interne
Interne

Masculin Nombre de messages : 5038
Age : 44
Localisation : Noisy-le-Grand
Date d'inscription : 23/07/2018

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par iwillbeback Ven 23 Déc 2022 - 15:31

drfloyd a écrit:je connais plein d'informaticiens managers qui n'ont jamais créé le moindre programme de leur vie... mais ils sont "chefs de projet"  Mr. Green

Idem !
avatar
iwillbeback
Interne
Interne

Masculin Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par chacs Ven 23 Déc 2022 - 15:37

Chef de Roger
chacs
chacs
Interne
Interne

Masculin Nombre de messages : 6229
Age : 49
Localisation : Toulouse
Date d'inscription : 27/07/2012

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par Kristof Sam 24 Déc 2022 - 19:05

merci pour le pdf, ca fait toujours du bien de revisier et d'apprendre de nouveaux trucs.
Kristof
Kristof
Guéri miraculeux

Masculin Nombre de messages : 2086
Age : 51
Localisation : Narbonne
Date d'inscription : 16/04/2013

http://www.dk-games.com/CK/Collection/Welcome.php

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par ldindon Lun 26 Déc 2022 - 8:05

elsaeba a écrit:Cependant cela fait au moins 10 ans que je ne code plus en C++ au boulot, au profit du Java.

Sad
ldindon
ldindon
Patient contaminé

Masculin Nombre de messages : 277
Age : 49
Localisation : Metz
Date d'inscription : 19/05/2013

Daft31 offre 1 suppo à ce post!

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par chacs Lun 26 Déc 2022 - 8:35

Dans ma boîte c’est le python qui a fini par s’imposer, mais le C++ est encore utilisé sur les parties qui réclament des performances.
Java Spring Boot est aussi très utilisé comme framework dès qu’on fait des systèmes distribués.
chacs
chacs
Interne
Interne

Masculin Nombre de messages : 6229
Age : 49
Localisation : Toulouse
Date d'inscription : 27/07/2012

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par Monos Ven 13 Jan 2023 - 21:21

J'ai parcourue un peu ce document.
Si j'ai bien compris, à la base c'est les bonne pratique pour créer des logiciel "critiques".
pour ça que le rnd est bannis car on a pas la main mise dessus en principe et que des fonctions de certaine bibliothèque aussi. 

Mais pour celui qui veux faire des jeux osef.
Monos
Monos
Patient contaminé

Masculin Nombre de messages : 325
Age : 40
Localisation : Chatillon sur Marne
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par iwillbeback Sam 14 Jan 2023 - 7:56

Monos a écrit:Mais pour celui qui veux faire des jeux osef.

Tout dépend de ce que tu veux faire.
Je connais peux de dev' qui bâclent leur code.. surtout lorsque celui-ci est susceptible d'être partagé Wink.

L'introduction résume tout :

Les restrictions définies dans ce guide ont pour but de favoriser la production de logiciels plus sécurisés, plus sûrs, d’une plus grande robustesse et également de favoriser leur portabilité d’un système à un autre, qu’il soit de type PC ou embarqué
..
Dans ce présent document, nous nous limitons, à ce jour, aux 2 standards C90 2 et C99 qui restent les plus utilisés
avatar
iwillbeback
Interne
Interne

Masculin Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par lincruste Sam 14 Jan 2023 - 8:54

haha ça me rappelle notre projet de fin de piscine à l'EPITA on a mis des typedef à la place des sizeof(*) pour une implémentation de kernel RT mode RMS parce qu'on avait pas le droit aux consonnes fricatives alvéolaires sourdes ni à la barre d'espace mdrrrrr mais comme Jason-Enguerrand il a oublié les tabulations ça suivait pas le coding style on a pris -5000 points mais on a eu le diplôme parce qu'on a une fille dans notre groupe ptdrrrrrrr
lincruste
lincruste
Interne
Interne

Masculin Nombre de messages : 5619
Age : 45
Localisation : RP
Date d'inscription : 07/06/2014

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par Monos Sam 14 Jan 2023 - 9:31

Tout dépend de ce que tu veux faire.
Je connais peux de dev' qui bâclent leur code.. surtout lorsque celui-ci est susceptible d'être partagé
Je me suis mal exprimé je veux dire des "limitation trop drastique".
On parle de la non utilisation du random. Dans un jeu ne pas utiliser random... Voila quoi.

Cette documentation est super sur le peux que j'ai lu. Mais il y a vachement de "limitation" qui à je pense pour but de limiter les faille de sécurité pour les logiciels critiques. C'est ce que j'ai ressentie.

Plus haut certain rigolé de l'interdiction du rnd();
C'était dans ce sens pour mon message. PAs du osef du bon code.
Monos
Monos
Patient contaminé

Masculin Nombre de messages : 325
Age : 40
Localisation : Chatillon sur Marne
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Langage C  : Bonnes pratiques (ANSSI) Empty Re: Langage C : Bonnes pratiques (ANSSI)

Message par iwillbeback Sam 14 Jan 2023 - 14:24

Il y a maintenant plein d'outils pour effectuer de la revue de code (analyses et corrections). Le tout est de savoir si on veut bien faire ou pas le boulot Wink
Au passage, un petit résumé sur ce qui est actuellement faisable ou non avec la décompilation logiciel !
avatar
iwillbeback
Interne
Interne

Masculin Nombre de messages : 10350
Age : 98
Localisation : ||lll|||llll|llll||||
Date d'inscription : 19/11/2006

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum