{"id":105136,"date":"2022-09-19T21:36:45","date_gmt":"2022-09-19T19:36:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript"},"modified":"2022-09-19T21:36:45","modified_gmt":"2022-09-19T19:36:45","slug":"facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript","title":{"rendered":"Facebook otev\u0159el k\u00f3d r\u00e1mce pro detekci \u00fanik\u016f pam\u011bti v JavaScriptu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Spole\u010dnost Facebook (zak\u00e1zan\u00e1 v RF) zve\u0159ejnila zdrojov\u00e9 k\u00f3dy n\u00e1stroje memlab, kter\u00fd je ur\u010den pro anal\u00fdzu sn\u00edmk\u016f stavu dynamicky p\u0159id\u011blovan\u00e9 pam\u011bti (haldy), ur\u010dov\u00e1n\u00ed optimaliza\u010dn\u00edch strategi\u00ed pro pr\u00e1ci s pam\u011bt\u00ed a detekci \u00fanik\u016f pam\u011bti, kter\u00e9 vznikaj\u00ed p\u0159i vykon\u00e1v\u00e1n\u00ed k\u00f3du napsan\u00e9ho v jazyce JavaScript. K\u00f3d je zve\u0159ejn\u011bn pod licenc\u00ed MIT.    <\/p>\n<p>R\u00e1mec byl vytvo\u0159en pro anal\u00fdzu p\u0159\u00ed\u010din vysok\u00e9 spot\u0159eby pam\u011bti p\u0159i pr\u00e1ci s webov\u00fdmi str\u00e1nkami a webov\u00fdmi aplikacemi. Nap\u0159\u00edklad pomoc\u00ed memlab byla provedena anal\u00fdza spot\u0159eby pam\u011bti p\u0159i pou\u017e\u00edv\u00e1n\u00ed nov\u00e9 verze str\u00e1nky Facebook.com, kter\u00e1 odhalila \u00faniky vedouc\u00ed k hav\u00e1ri\u00edm prohl\u00ed\u017ee\u010de na stran\u011b klienta kv\u016fli vy\u010derp\u00e1n\u00ed voln\u00e9 pam\u011bti.     <\/p>\n<p>P\u0159\u00ed\u010dinami \u00fanik\u016f pam\u011bti p\u0159i prov\u00e1d\u011bn\u00ed JavaScriptov\u00e9ho k\u00f3du mohou b\u00fdt skryt\u00e9 odkazy na objekty, kter\u00e9 br\u00e1n\u00ed sb\u011bra\u010di odpadu ve uvoln\u011bn\u00ed pam\u011bti obsazen\u00e9 objektem, nevhodn\u00e9 uchov\u00e1v\u00e1n\u00ed hodnot nebo implementace nekone\u010dn\u00e9ho rolov\u00e1n\u00ed bez nahrazov\u00e1n\u00ed star\u00fdch prvk\u016f seznamu. Nap\u0159\u00edklad v n\u00ed\u017ee uveden\u00e9m k\u00f3du v prohl\u00ed\u017ee\u010di Chrome doch\u00e1z\u00ed k \u00faniku pam\u011bti kv\u016fli objektu &#171;obj&#187;, i kdy\u017e je mu p\u0159i\u0159azena hodnota null, proto\u017ee Chrome uchov\u00e1v\u00e1 intern\u00ed odkazy na zobrazen\u00e9 objekty, aby bylo mo\u017en\u00e9 pozd\u011bj\u0161\u00ed inspekci v webov\u00e9 konzoli.        var obj = {};    console.log(obj);    obj = null;        <\/p>\n<p>Hlavn\u00ed mo\u017enosti memlab:  <\/p>\n<ul>\n<li class=\"l\"> Odhalov\u00e1n\u00ed \u00fanik\u016f pam\u011bti v prohl\u00ed\u017ee\u010di. Memlab umo\u017e\u0148uje automaticky porovn\u00e1vat sn\u00edmky stavu dynamick\u00e9 pam\u011bti, odhalovat \u00faniky pam\u011bti a agregovat v\u00fdsledky.\n<li class=\"l\"> Objektov\u011b orientovan\u00e9 API pro iteraci haldy, kter\u00e9 umo\u017e\u0148uje vytv\u00e1\u0159et vlastn\u00ed algoritmy pro odhalov\u00e1n\u00ed \u00fanik\u016f a implementovat syst\u00e9my pro anal\u00fdzu sn\u00edmk\u016f stavu haldy. Anal\u00fdza haldy je podporov\u00e1na pro prohl\u00ed\u017ee\u010de zalo\u017een\u00e9 na enginu Chromium, stejn\u011b jako pro platformy Node.js, Electron a Hermes.\n<li class=\"l\"> P\u0159\u00edkazov\u00fd \u0159\u00e1dek a API pro hled\u00e1n\u00ed mo\u017enost\u00ed optimalizace vyu\u017eit\u00ed pam\u011bti.\n<li class=\"l\"> Syst\u00e9m assert\u016f pro Node.js, kter\u00fd umo\u017e\u0148uje vytv\u00e1\u0159et unit testy a spou\u0161t\u011bt programy zalo\u017een\u00e9 na Node.js pro vytv\u00e1\u0159en\u00ed sn\u00edmk\u016f vlastn\u00edho stavu, kontrolu vlastn\u00ed pam\u011bti nebo psan\u00ed roz\u0161\u00ed\u0159en\u00fdch assert kontrol.  <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57802\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Facebook (\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0432 \u0420\u0424) \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f memlab, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0440\u0435\u0437\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043a\u0443\u0447\u0438), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. \u041a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043f\u0440\u0438\u0447\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 web-\u0441\u0430\u0439\u0442\u0430\u043c\u0438 \u0438 [&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-105136","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Facebook (\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0432 \u0420\u0424) \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f memlab, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0440\u0435\u0437\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043a\u0443\u0447\u0438), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\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\/cs\/blog\/news\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\udd47Facebook \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Facebook (\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0432 \u0420\u0424) \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f memlab, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0440\u0435\u0437\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043a\u0443\u0447\u0438), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript\" \/>\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-09-19T19:36:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-09-19T19:36:45+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\udd47Facebook otev\u0159el k\u00f3d frameworku pro odhalov\u00e1n\u00ed \u00fanik\u016f pam\u011bti v JavaScriptu | ProHoster","description":"Spole\u010dnost Facebook (zak\u00e1z\u00e1na v RF) zve\u0159ejnila zdrojov\u00e9 k\u00f3dy n\u00e1stroje memlab, ur\u010den\u00e9ho k anal\u00fdze stav\u016f dynamicky p\u0159id\u011blen\u00e9 pam\u011bti (haldy) a k ur\u010den\u00ed strategi\u00ed optimalizace jej\u00edho vyu\u017eit\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\udd47Facebook \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 JavaScript | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Facebook (\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0432 \u0420\u0424) \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f memlab, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0440\u0435\u0437\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043a\u0443\u0447\u0438), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/facebook-otkryl-kod-frejmvorka-dlya-vyyavleniya-utechek-pamyati-v-javascript","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-09-19T19:36:45+00:00","article:modified_time":"2022-09-19T19:36:45+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\/cs\/wp-json\/wp\/v2\/posts\/105136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=105136"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/105136\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=105136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=105136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=105136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}