{"id":53599,"date":"2019-12-05T00:00:00","date_gmt":"2019-12-04T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj"},"modified":"2020-02-18T14:01:31","modified_gmt":"2020-02-18T11:01:31","slug":"samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj","title":{"rendered":"L'exemple de code Java le plus populaire sur StackOverflow contenait une erreur","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Le plus populaire <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/questions\/3758606\/how-to-convert-byte-size-into-human-readable-format-in-java\/3758880#3758880\">exemple de code Java<\/a><\/noindex>, publi\u00e9 sur StackOverflow, <noindex><a rel=\"nofollow\" href=\"https:\/\/programming.guide\/worlds-most-copied-so-snippet.html\">s\u2019est retrouv\u00e9<\/a><\/noindex> avec une erreur entra\u00eenant une sortie incorrecte sous certaines conditions. Le code en question a \u00e9t\u00e9 publi\u00e9 en 2010 et a accumul\u00e9 plus d'un millier de recommandations, et a \u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/pdf\/1802.02938.pdf\">copi\u00e9<\/a><\/noindex> dans de nombreux projets, apparaissant dans les d\u00e9p\u00f4ts sur GitHub environ 7 000 fois. Il est int\u00e9ressant de noter que l'erreur n'a pas \u00e9t\u00e9 trouv\u00e9e par les utilisateurs copiant ce code dans leurs projets, mais par l'auteur initial du conseil.<\/p>\n<p>Le code examin\u00e9 accomplissait la conversion de la taille en octets en une forme lisible, par exemple, convertissait 110592 en \u00ab 110.6 kB \u00bb ou \u00ab 108.0 KiB \u00bb. Le code a \u00e9t\u00e9 propos\u00e9 comme optimis\u00e9 gr\u00e2ce \u00e0 des logarithmes, variante d'un conseil pr\u00e9c\u00e9demment sugg\u00e9r\u00e9, dans lequel la valeur \u00e9tait d\u00e9termin\u00e9e sur la base d'une division s\u00e9quentielle de la valeur d'origine en boucle par 1018, 1015, 1012, 1019,<br \/>\n106, 103 et 100, jusqu'\u00e0 ce que le diviseur soit sup\u00e9rieur \u00e0 la valeur d'origine en octets. \u00c0 cause de calculs impr\u00e9cis dans la version optimis\u00e9e (d\u00e9passement de valeur long), le r\u00e9sultat du traitement de tr\u00e8s grands nombres (exaoctet) n'\u00e9tait pas correct. <\/p>\n<p>L'auteur du conseil a \u00e9galement tent\u00e9 d'attirer l'attention sur le probl\u00e8me de la copie d'exemples sans mentionner la source et sans pr\u00e9ciser la licence. Selon une recherche ant\u00e9rieure <noindex><a rel=\"nofollow\" href=\"https:\/\/empirical-software.engineering\/assets\/pdf\/icse19-snippets-slides.pdf\">r\u00e9alis\u00e9e,<\/a><\/noindex> 46 % des d\u00e9veloppeurs ont copi\u00e9 le code de StackOverflow sans mentionner l'auteur, 75 % ne savaient pas que le code \u00e9tait distribu\u00e9 sous la licence CC BY-SA, et 67 % ne savaient pas que cela impliquait la n\u00e9cessit\u00e9 de mentionner l'auteur.<\/p>\n<p>Selon <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/pdf\/1910.01321.pdf\">les donn\u00e9es<\/a><\/noindex> D'une autre \u00e9tude, la copie d'exemples de code est associ\u00e9e non seulement au risque d'erreurs dans le code, mais aussi \u00e0 des vuln\u00e9rabilit\u00e9s. Par exemple, en analysant 72 483 exemples de code C++ sur StackOverflow, les chercheurs ont identifi\u00e9 des vuln\u00e9rabilit\u00e9s graves dans 69 exemples (ce qui repr\u00e9sente 0,09 %), figurant dans la liste des recommandations les plus populaires. En analysant ensuite la pr\u00e9sence de ce code sur GitHub, il a \u00e9t\u00e9 r\u00e9v\u00e9l\u00e9 que le code vuln\u00e9rable copi\u00e9 de StackOverflow est pr\u00e9sent dans 2 859 projets.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51982\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 StackOverflow, \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439, \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0449\u0435\u0439 \u043a \u0432\u044b\u0432\u043e\u0434\u0443 \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d \u0432 2010 \u0433\u043e\u0434\u0443 \u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b \u0431\u043e\u043b\u0435\u0435 \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u043b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445 \u043d\u0430 GitHub \u043e\u043a\u043e\u043b\u043e 7 \u0442\u044b\u0441\u044f\u0447 \u0440\u0430\u0437. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0443 \u043d\u0430\u0448\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 [&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-53599","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=\"\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430.\" \/>\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\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj\" \/>\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\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430 \u043d\u0430 StackOverflow \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj\" \/>\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=\"2019-12-04T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:31+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\udd47 Le plus populaire exemple de code Java sur StackOverflow s'est av\u00e9r\u00e9 avoir une erreur | ProHoster","description":"Le plus populaire exemple de code Java.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj","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\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430 \u043d\u0430 StackOverflow \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 | ProHoster","og:description":"\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 Java-\u043a\u043e\u0434\u0430.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/samyj-populyarnyj-primer-java-koda-na-stackoverflow-okazalsya-s-oshibkoj","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":"2019-12-04T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53599","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 08:02:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:26:01","updated":"2026-01-24 08:02:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/53599","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=53599"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/53599\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=53599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=53599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=53599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}