{"id":105257,"date":"2022-10-06T15:36:38","date_gmt":"2022-10-06T13:36:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c"},"modified":"2022-10-06T15:36:38","modified_gmt":"2022-10-06T13:36:38","slug":"proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c","title":{"rendered":"Le projet LLVM d\u00e9veloppe des outils pour travailler en toute s\u00e9curit\u00e9 avec les buffers en C++.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Les d\u00e9veloppeurs du projet LLVM ont propos\u00e9 une s\u00e9rie de modifications visant \u00e0 renforcer la s\u00e9curit\u00e9 des projets critiques en C++ et \u00e0 fournir des moyens d'exclure les erreurs caus\u00e9es par les d\u00e9bordements de m\u00e9moire. Le travail est concentr\u00e9 sur deux axes : la fourniture d'un mod\u00e8le de d\u00e9veloppement permettant de travailler en toute s\u00e9curit\u00e9 avec des buffers, et l'am\u00e9lioration de la protection de la biblioth\u00e8que standard des fonctions libc++.    <\/p>\n<p>Le mod\u00e8le de programmation s\u00e9curis\u00e9e propos\u00e9 pour le C++ implique l'utilisation des classes fournies par la biblioth\u00e8que standard lors de la manipulation des buffers plut\u00f4t que de travailler avec des pointeurs nus. Par exemple, il est sugg\u00e9r\u00e9 d'utiliser les classes std::array, std::vector et std::span, qui seront enrichies d'une v\u00e9rification des d\u00e9bordements de m\u00e9moire r\u00e9alis\u00e9e au moment de l'ex\u00e9cution.     <\/p>\n<p>Pour lutter contre les techniques de programmation dangereuses dans clang, il est propos\u00e9 d'afficher des avertissements du compilateur pour toutes les op\u00e9rations arithm\u00e9tiques sur les pointeurs, similaires aux avertissements du linter clang-tidy, affich\u00e9s lors de l'utilisation de l'option \u00ab cppcoreguidelines-pro-bounds-pointer-arithmetic \u00bb, dont le support sera ajout\u00e9 dans la version LLVM 16. Pour activer de tels avertissements dans clang, un nouvel indicateur sera ajout\u00e9, qui ne sera pas activ\u00e9 par d\u00e9faut.    <\/p>\n<p>Dans libc++, un mode optionnel de protection renforc\u00e9e est pr\u00e9vu, qui, une fois activ\u00e9, interceptera certaines situations menant \u00e0 un comportement ind\u00e9fini lors de l'ex\u00e9cution. Par exemple, dans les classes std::span et std::vector, l'acc\u00e8s en dehors de la zone de m\u00e9moire allou\u00e9e sera surveill\u00e9, et en cas de d\u00e9tection, le programme se terminera de mani\u00e8re inattendue. Les d\u00e9veloppeurs estiment que l'ajout de telles modifications pr\u00e9servera la conformit\u00e9 de libc++ aux normes C++, car le choix de la m\u00e9thode de gestion des cas de comportement ind\u00e9fini revient aux d\u00e9veloppeurs de la biblioth\u00e8que, qui peuvent \u00e9galement consid\u00e9rer le comportement ind\u00e9fini comme une d\u00e9faillance n\u00e9cessitant l'arr\u00eat du programme.     <\/p>\n<p>Les v\u00e9rifications effectu\u00e9es lors de l'ex\u00e9cution dans libc++ sont pr\u00e9vues pour \u00eatre class\u00e9es en cat\u00e9gories pouvant \u00eatre activ\u00e9es individuellement. Certaines des v\u00e9rifications propos\u00e9es, qui ne compliquent pas les op\u00e9rations ou ne modifient pas l'ABI, ont d\u00e9j\u00e0 \u00e9t\u00e9 mises en \u0153uvre dans le cadre du mode s\u00e9curis\u00e9 de libc++ (safe mode).    <\/p>\n<p>De plus, il est pr\u00e9vu de pr\u00e9parer un outil de correction de code permettant de remplacer les variables dot\u00e9es de pointeurs nus par des conteneurs et d'appliquer des gestionnaires alternatifs dans des situations o\u00f9 un conteneur ne peut pas remplacer directement un pointeur (par exemple, la construction \u00ab if(array_pointer) \u00bb peut \u00eatre transform\u00e9e en \u00ab if(span.data()) \u00bb). Les modifications peuvent \u00eatre appliqu\u00e9es non seulement aux variables locales, mais \u00e9galement aux param\u00e8tres de type faisant r\u00e9f\u00e9rence \u00e0 des pointeurs.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57876\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u044f\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C++ \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0437\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d\u0430 \u0432 \u0434\u0432\u0443\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445: \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438, \u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \u0437\u0430\u0449\u0438\u0442\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 libc++. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105257","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u044f\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C++ \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0437\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438 \u0432 C++ | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u044f\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C++ \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0437\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-10-06T13:36:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-10-06T13:36:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Le projet LLVM d\u00e9veloppe des outils pour une gestion s\u00e9curis\u00e9e des tampons en C++ | ProHoster","description":"Les d\u00e9veloppeurs du projet LLVM ont propos\u00e9 une s\u00e9rie de modifications visant \u00e0 renforcer la s\u00e9curit\u00e9 des projets critiques en C++ et \u00e0 fournir des moyens pour \u00e9viter les erreurs caus\u00e9es par un d\u00e9passement des limites.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442 LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438 \u0432 C++ | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u044f\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C++ \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u0437\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/proekt-llvm-razvivaet-sredstva-dlya-bezopasnoj-raboty-s-buferami-v-c","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-10-06T13:36:38+00:00","article:modified_time":"2022-10-06T13:36:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/105257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=105257"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/105257\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=105257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=105257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=105257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}