{"id":110721,"date":"2023-10-10T15:10:19","date_gmt":"2023-10-10T13:10:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android"},"modified":"2023-10-10T15:10:19","modified_gmt":"2023-10-10T13:10:19","slug":"google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","title":{"rendered":"Google a rescris firmware-ul pvmfm, utilizat \u00een Android, \u00een limbajul Rust.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00cen cadrul eforturilor de \u00eent\u0103rire a securit\u0103\u021bii componentelor software critice ale platformei Android, compania Google a rescris firmware-ul pvmfm \u00een limbajul Rust, utilizat pentru gestionarea func\u021bion\u0103rii ma\u0219inilor virtuale lansate de hipervizorul pVM din cadrul Android Virtualization Framework. Anterior, firmware-ul era scris \u00een limbajul C \u0219i implementat deasupra bootloader-ului U-Boot, \u00een codul c\u0103ruia au fost identificate anterior vulnerabilit\u0103\u021bi cauzate de probleme legate de gestionarea memoriei.     <\/p>\n<p>Firmware-ul rescris \u00een Rust este inclus \u00een Android 14, iar bibliotecile universale create \u00een timpul dezvolt\u0103rii firmware-ului sunt organizate sub form\u0103 de pachete crate \u0219i transmise comunit\u0103\u021bii Rust. De exemplu, a fost publicat pachetul smccc pentru suportul interfe\u021belor ARM PSCI (Power State Coordination Interface) \u0219i apelurilor SMCCC (SMC Calling Convention), precum \u0219i pachetul aarch64-paging pentru manipularea tabelilor de pagini ale memoriei. De asemenea, a fost efectuat\u0103 o munc\u0103 de corectare a erorilor \u0219i extindere a func\u021bionalit\u0103\u021bilor pachetului existent virtio-drivers cu implementarea driverelor VirtIO. Pe l\u00e2ng\u0103 platforma Android, aceste pachete sunt utilizate \u00een proiectul Oak, care dezvolt\u0103 componente pentru transmiterea, stocarea \u0219i procesarea datelor \u00een medii securizate (TEE, Trusted Execution Environment).        <\/p>\n<p>Hipervizorul pVM preia controlul \u00eentr-o etap\u0103 timpurie a \u00eenc\u0103rc\u0103rii \u0219i asigur\u0103 o izolare complet\u0103 a memoriei <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/vps\/\"   title=\"ma\u0219ini virtuale\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2070\">ma\u0219ini virtuale<\/a> \u0219i a mediului gazd\u0103, f\u0103r\u0103 a permite sistemului gazd\u0103 s\u0103 acceseze ma\u0219inile virtuale protejate \u00een care se efectueaz\u0103 procesarea datelor confiden\u021biale. Firmware-ul pvmfm (Protected Virtual Machine Firmware) preia controlul imediat dup\u0103 lansarea ma\u0219inii virtuale, efectueaz\u0103 verificarea mediului format \u0219i ia decizia de a \u00eentrerupe \u00een mod de urgen\u021b\u0103 \u00eenc\u0103rcarea \u00een cazul detect\u0103rii unor probleme cu integritatea sau genereaz\u0103 un certificat de \u00eenc\u0103rcare pentru sistemul gazd\u0103 \u00een cazul confirm\u0103rii lan\u021bului de \u00eencredere.            <\/p>\n<p>Rescrierea \u00een limbajul Rust permite respectarea mai simpl\u0103 \u0219i mai sigur\u0103 a \u201eregulii celor dou\u0103\u201d, aplicat\u0103 de Google pentru men\u021binerea securit\u0103\u021bii componentelor sistemului Android. Conform acestei reguli, orice cod ad\u0103ugat trebuie s\u0103 corespund\u0103 nu mai mult de dou\u0103 condi\u021bii din trei: lucrul cu date de intrare nesecurizate, utilizarea unui limbaj de programare nesigur (C\/C++) \u0219i executarea cu privilegii ridicate. Din aceast\u0103 regul\u0103 reiese c\u0103 codul pentru prelucrarea datelor externe trebuie fie s\u0103 fie restric\u021bionat la privilegii minime (izolat), fie s\u0103 fie scris \u00eentr-un limbaj de programare sigur. Potrivit statisticilor Google, aproximativ 70% din toate vulnerabilit\u0103\u021bile periculoase identificate \u00een Android sunt cauzate de erori \u00een gestionarea memoriei.     <\/p>\n<p>Rust se concentreaz\u0103 pe gestionarea sigur\u0103 a memoriei \u0219i permite reducerea riscurilor de apari\u021bie a vulnerabilit\u0103\u021bilor cauzate de probleme precum accesarea unui spa\u021biu de memorie dup\u0103 eliberare \u0219i dep\u0103\u0219irea limitelor buffer-ului. Gestionarea sigur\u0103 a memoriei este asigurat\u0103 \u00een Rust \u00een timpul compil\u0103rii prin verificarea referin\u021belor, urm\u0103rirea de\u021binerii obiectelor \u0219i gestionarea duratei de via\u021b\u0103 a obiectelor (zona de vizibilitate), precum \u0219i prin evaluarea corectitudinii accesului la memorie \u00een timpul execu\u021biei codului. Rust ofer\u0103, de asemenea, mecanisme pentru protec\u021bia \u00eempotriva suprascrierilor de tip integer, necesit\u0103 ini\u021bializarea obligatorie a valorilor variabilelor \u00eenainte de utilizare, gestioneaz\u0103 mai bine erorile \u00een biblioteca standard, aplic\u0103 conceptul de referin\u021be \u0219i variabile nemodificabile (immutable) \u00een mod implicit \u0219i ofer\u0103 o tipizare static\u0103 puternic\u0103 pentru minimizarea erorilor logice.    <\/p>\n<p>Printre dificult\u0103\u021bile \u00eent\u00e2mpinate \u00een procesul de dezvoltare a componentelor de nivel sc\u0103zut \u00een limbajul Rust, cum ar fi driverele, se men\u021bioneaz\u0103 necesitatea lucrului cu pointere brute \u00een modul unsafe, deoarece Rust este conceput av\u00e2nd \u00een vedere utilizarea memoriei alocate \u00een program, iar \u00een codul care func\u021bioneaz\u0103 f\u0103r\u0103 straturi deasupra hardware-ului, trebuie s\u0103 se acceseze memoria partajat\u0103 \u0219i MMIO. \u00cen prezent, capacit\u0103\u021bile Rust de a gestiona pointere brute las\u0103 mult de dorit, dar situa\u021bia ar trebui s\u0103 se schimbe dup\u0103 stabilizarea suportului pentru macro-comenzile offset_of, slice_ptr_get \u0219i slice_ptr_len.       <\/p>\n<p>Printre dezavantaje se eviden\u021biaz\u0103 necesitatea unui sintax mai bun pentru accesul la c\u00e2mpurile structurilor \u0219i indexurile array-urilor prin pointeri nudi, f\u0103r\u0103 a crea referin\u021be, dar \u0219i limit\u0103rile \u00een crearea unor \u00eenv\u0103luiri sigure pentru opera\u021biuni unsafe, care pot provoca comportamente nedefinite \u0219i nu pot fi verificate de compilator. De exemplu, nu se pot crea astfel de \u00eenv\u0103luiri pentru opera\u021biunile cu tabele de pagini de memorie, deoarece mapping-ul paginilor \u00eentr-o parte a programului poate afecta alte p\u0103r\u021bi.     <\/p>\n<p>C\u00e2t despre dimensiunea codului rezultat, vechea variant\u0103 a firmware-ului pVM ocupa 220 kB, iar noua variant\u0103 \u2014 460 kB, dar \u00een acela\u0219i timp, varianta rescris\u0103 a fost extins\u0103 cu noi func\u021bionalit\u0103\u021bi, datorit\u0103 c\u0103rora s-au eliminat unele componente utilizate \u00een timpul \u00eenc\u0103rc\u0103rii. Ca rezultat, dimensiunea total\u0103 a tuturor componentelor de \u00eenc\u0103rcare vechi \u0219i noi s-a dovedit a fi comparabil\u0103. Se remarc\u0103 faptul c\u0103 atunci c\u00e2nd dimensiunea este mai important\u0103 dec\u00e2t performan\u021ba, rezultate comparabile cu cele ale limbajului C pot fi ob\u021binute activ\u00e2nd moduri suplimentare de optimizare a dimensiunii \u00een compilator, elimin\u00e2nd dependen\u021bele inutile \u0219i f\u0103r\u0103 a utiliza instrumente de formatare a \u0219irurilor.    <\/p>\n<p>Se men\u021bioneaz\u0103, de asemenea, continuarea muncii la implementarea capacit\u0103\u021bii de a rula aplica\u021bii de \u00eencredere scrise \u00een limbajul Rust (Trusted Application) \u00een sistemul de operare Trusty, care ofer\u0103 un mediu TEE (Trusted Execution Environment) pentru Android, rul\u00e2nd \u00een paralel cu Android pe acela\u0219i procesor \u00eentr-un mediu izolat. Trusty este utilizat \u00een dispozitivele Pixel \u0219i deja folose\u0219te Rust \u00een biblioteci \u0219i componentele de sistem (nucleul r\u0103m\u00e2ne \u00een C).<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59900\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u043e\u043c pVM \u0438\u0437 \u0441\u043e\u0441\u0442\u0430\u0432\u0430 Android Virtualization Framework. \u0420\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-Boot, \u0432 \u043a\u043e\u0434\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043f\u0440\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-110721","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=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.\" \/>\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\/ro\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\udd47Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 Android | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android\" \/>\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=\"2023-10-10T13:10:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-10-10T13:10:19+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\udd47Google a rescris firmware-ul pvmfm \u00een limbajul Rust, utilizat \u00een Android | ProHoster","description":"\u00cen cadrul eforturilor de \u00eent\u0103rire a securit\u0103\u021bii componentelor software critice ale platformei Android, compania Google a rescris firmware-ul pvmfm \u00een limbajul Rust, utilizat pentru organizarea func\u021bion\u0103rii ma\u0219inilor virtuale.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\udd47Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 Android | ProHoster","og:description":"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044e \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\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 pvmfm, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/google-perepisal-na-yazyke-rust-proshivku-pvmfm-ispolzuemuyu-v-android","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":"2023-10-10T13:10:19+00:00","article:modified_time":"2023-10-10T13:10:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"110721","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":"default","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-09 17:11:16","updated":"2026-02-09 17:11:16","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/110721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=110721"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/110721\/revisions"}],"predecessor-version":[{"id":159314,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/110721\/revisions\/159314"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=110721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=110721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=110721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}