CAN/CSA-ISO/IEC TS 17961:2018 Tecnología de la información. Lenguajes de programación, sus entornos e interfaces de software del sistema. Reglas de codificación segura C.
1 Alcance
Esta Especificación Técnica especifica
— reglas para el codificación segura en el lenguaje de programación C y
— ejemplos de código.
Esta Especificación Técnica no especifica
— el mecanismo mediante el cual se imponen estas reglas ni
— ningún estilo particular de codificación a ser impuesto. (Ha sido imposible desarrollar un consenso sobre
directrices de estilo adecuadas. Los programadores deben definir directrices de estilo y aplicar consistentemente estas directrices. La forma más fácil de aplicar consistentemente un estilo de codificación es mediante el uso de una herramienta de formateo de código. Muchos entornos de desarrollo interactivos proporcionan tales capacidades.)
Cada regla en esta Especificación Técnica está acompañada por ejemplos de código. Los ejemplos de código son
informativos solo y sirven para aclarar las exigencias delineadas en la parte normativa de la regla.
Ejemplos no imponen requisitos normativos.
Cada regla en esta Especificación Técnica que se basa en un comportamiento indefinido definido en el Estándar C
identifica el comportamiento indefinido mediante un código numérico. Los códigos numéricos para los comportamientos indefinidos pueden encontrarse en la Anexo B, Comportamiento Indefinido.
Se proporcionan dos tipos distintos de ejemplos:
— ejemplos no conformes que demuestran construcciones del lenguaje con debilidades potencialmente
explotables desde el punto de vista de la seguridad; tales ejemplos se espera que provoquen un diagnóstico de un analizador conforme para la construcción del lenguaje afectada; y
— ejemplos conformes se espera que no provoquen un diagnóstico.
Los ejemplos no están destinados a ser programas completos. Por brevedad, suelen omitir directivas #include
de encabezados estándar de C que de otra manera sería necesario para proporcionar declaraciones de los símbolos referenciados. Ejemplos de código también pueden declarar símbolos sin proporcionar sus definiciones si las
definiciones no son esenciales para demostrar una debilidad específica.
Algunas reglas en esta Especificación Técnica tienen excepciones. Las excepciones forman parte de la especificación
de estas reglas y son normativas.
CAN/CSA-ISO/IEC TS 17961:2018 Historia
2018CAN/CSA-ISO/IEC TS 17961:2018 Tecnología de la información. Lenguajes de programación, sus entornos e interfaces de software del sistema. Reglas de codificación segura C.