{"id":31080,"date":"2019-10-31T21:39:19","date_gmt":"2019-10-31T18:39:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steganografiya-v-fajlovoj-sisteme\/"},"modified":"2019-10-31T21:39:19","modified_gmt":"2019-10-31T18:39:19","slug":"steganografiya-v-fajlovoj-sisteme","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","title":{"rendered":"Steganografia nel filesystem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ciao, Habr. <\/p>\n<p><\/p>\n<p>Vorrei presentarvi un piccolo progetto di <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F\">steganografia<\/a><\/noindex>, realizzato nel mio tempo libero dallo studio. <\/p>\n<p><\/p>\n<p>Ho creato un progetto per il nascondere informazioni all'interno del file system (di seguito <strong>FS<\/strong>).<br \/>\n). Questo pu\u00f2 essere applicato per il furto di informazioni riservate a scopi educativi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/d6639b37e1b1fe57b80288e671176fe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Come campione ho scelto un file system Linux piuttosto datato <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext2\">ext2<\/a><\/noindex>. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"realizaciya\">Implementazione<\/h3>\n<p><\/p>\n<h4 id=\"soobrazheniya-o-realizacii\">Considerazioni sulla realizzazione<\/h4>\n<p><\/p>\n<p>Se si esplora bene lo standard ext2, si pu\u00f2 affermare che nel file system esiste una cosiddetta <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#SUPERBLOCK\"><strong>Superblock<\/strong><\/a><\/noindex>, dove sono fornite le informazioni principali sul sistema. Ho trovato <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#BLOCK-BITMAP\"><strong>Bitmap dei blocchi<\/strong><\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#INODE-TABLE\"><strong>Tabella degli inode<\/strong><\/a><\/noindex>. All'improvviso \u00e8 nata l'idea di registrare informazioni nei blocchi attualmente vuoti del file system. Ora bisognava pensare a una protezione contro un programmatore armato di <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Hex-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80\">editor esadecimale<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Se si memorizzano informazioni nascoste senza crittografia, anche se sfumate nel file system, risulteranno comunque troppo evidenti, soprattutto se il programmatore sa cosa cercare. Pertanto, \u00e8 stata presa la decisione di crittografare tutti i blocchi del file originale. Ho scelto la crittografia a blocchi <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a><\/noindex>, ma come potete capire, questo non \u00e8 fondamentale.<\/p>\n<p><\/p>\n<p>Per separare i blocchi necessari da tutti gli altri durante la lettura, \u00e8 stato deciso di aggiungere un marker speciale all'inizio di ciascun blocco. Questo marker veniva crittografato a seconda del numero del blocco nel file originale. Questo trucco ha subito permesso non solo di trovare i blocchi desiderati, ma anche di determinare il loro ordine corretto.<\/p>\n<p><\/p>\n<p>Il principio generale di funzionamento del sistema.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/cb6e712aeffafe87b1ad10e4ed5b0a39.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-zapisi\">Algoritmo di scrittura<\/h4>\n<p><\/p>\n<p>In sintesi:<\/p>\n<p><\/p>\n<ul>\n<li>Prima di tutto, scrivere qualche informazione nel file system originale;<\/li>\n<li>Eliminare queste informazioni (non necessariamente tutte); <\/li>\n<li>Dividere il file da nascondere in blocchi di lunghezza uniforme, aggiungendo un marker;<\/li>\n<li>Crittografare questi blocchi;<\/li>\n<li>Posizionare i blocchi crittografati in blocchi vuoti del FS.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Per gli amanti dei diagrammi di flusso<\/b><\/p>\n<p>Di seguito \u00e8 presentato un diagramma di flusso dell'algoritmo di scrittura. In ingresso, l'algoritmo riceve quattro file:<br \/>\n-Immagine del file system modificabile;<br \/>\n-File soggetto a steganografia;<br \/>\n-File con chiave di crittografia per AES;<br \/>\n-File con il marker.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/3089bf0d55cbdca1a98e4ee992089665.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c8 importante notare che questo algoritmo ha un difetto: dopo la scrittura del file nel FS, <strong>non pu\u00f2<\/strong> registrare qualcosa di nuovo nel file system, poich\u00e9 qualsiasi nuova informazione potrebbe andare nei blocchi che abbiamo dedicato al nostro file steganografico; in effetti, questo apre la possibilit\u00e0 di \"ripulire rapidamente le tracce\". <\/p>\n<p><\/p>\n<p>Ma \u00e8 abbastanza ovvio come si possa risolvere: \u00e8 necessario riscrivere l'algoritmo di registrazione dei blocchi nel file system. \u00c8 un compito comprensibile, ma incredibilmente laborioso.<br \/>\nPer il Proof Of Concept non l'ho implementato.<\/p>\n<p><\/p>\n<p>Di conseguenza, si otterranno le seguenti modifiche nel file system; cos\u00ec appare il file system prima della steganografia (un file audio \u00e8 stato registrato in precedenza).<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/a779de50121de2bafacab9d891b5f5df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nE cos\u00ec appare il file system con le informazioni gi\u00e0 steganografate.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/5722200a90d720f96c0aad5b4a5a11ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-chteniya\">Algoritmo di lettura<\/h4>\n<p><\/p>\n<p>In sintesi:<\/p>\n<p><\/p>\n<ul>\n<li>Con la conoscenza della chiave e del modo di costruire i marcatori, comporre i primi N marcatori, garantendo che N moltiplicato per la lunghezza del blocco del file system sia maggiore della lunghezza del file steganografato;<\/li>\n<li>Eseguire la ricerca dei blocchi nel file system che iniziano con i marcatori; <\/li>\n<li>Decifrare i blocchi ottenuti e separare i marcatori;<\/li>\n<li>Ricomporre i blocchi ottenuti nell'ordine corretto per ottenere il file originale.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Per gli amanti dei diagrammi di flusso<\/b><\/p>\n<p>Di seguito \u00e8 riportato un diagramma di flusso dell'algoritmo di registrazione. L'algoritmo riceve in input tre file:<br \/>\n-Immagine del file system;<br \/>\n-File con chiave di crittografia per AES;<br \/>\n-File con il marker.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel filesystem\" src=\"\/wp-content\/uploads\/2019\/04\/9dcfe680121a30c1b17b5a4cdbd76dc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dopo l'esecuzione del programma, appare il file Read, che sar\u00e0 il file estratto dal file system steganografico; se la chiave o il marcatore sono stati specificati in modo errato, il file Read sar\u00e0 vuoto.<br \/>\n(per gli amanti delle belle cose, \u00e8 possibile inserire non solo il file, ma anche un 'header' contenente metainformazioni: nome del file, permessi, data dell'ultima modifica, ecc.)<\/p>\n<p><\/p>\n<h4 id=\"avtomatizaciya-zapuska\">Automazione dell'avvio<\/h4>\n<p><\/p>\n<p>Per comodit\u00e0, sono stati scritti script bash che automatizzano l'avvio su Linux (testato su Ubuntu 16.04.3 LTS).<br \/>\nAnalizziamo l'avvio passo dopo passo.<br \/>\nScrittura:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 otteniamo l'immagine del file system da DEVICE (flash);<\/li>\n<li>.\/Write.sh \u201cFILE\u201d \u201cKEY\u201d \u201cMARKER\u201d \u2013 creiamo un ambiente virtuale, scarichiamo le librerie necessarie e avviamo lo script di scrittura;<\/li>\n<li>sudo .\/Write_Flash.sh \u201cDEVICE\u201d \u2013 scriviamo il file system modificato di nuovo su DEVICE.<\/li>\n<\/ol>\n<p><\/p>\n<p>Lettura:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 otteniamo l'immagine del file system da DEVICE (flash);<\/li>\n<li>.\/Read.sh \u201cKEY\u201d \u2018MARKER\u201d \u2014 creiamo un ambiente virtuale, scarichiamo le librerie necessarie e avviamo lo script di lettura;<\/li>\n<li>Nella cartella corrente apriamo il file Read \u2013 questa \u00e8 l'informazione steganografica.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Conclusione<\/h3>\n<p><\/p>\n<p>Questo metodo di steganografia necessita probabilmente di perfezionamenti, ulteriori test e di essere esteso a file system pi\u00f9 popolari come <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/FAT32\">Fat32<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/NTFS\">NTFS<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext4\">ext4<\/a><\/noindex>.<br \/>\nMa l'obiettivo di questo lavoro era mostrare il principio con cui \u00e8 possibile effettuare una memorizzazione nascosta delle informazioni nel file system.<br \/>\nCon algoritmi di questo tipo \u00e8 possibile memorizzare le informazioni senza timore, e sebbene possa essere possibile violare un tale sistema conoscendo la chiave (ma con un algoritmo piuttosto lungo), senza conoscere la chiave questa soluzione mi sembra assolutamente robusta, tuttavia potrebbe essere un motivo per un articolo separato.<\/p>\n<p><\/p>\n<p>Tutto il codice \u00e8 implementato in Python versione 3.5.2. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/FEAE3_xDKkA\">Esempio di funzionamento<\/a><\/noindex> presentato sul mio canale YouTube. Il codice completo del progetto \u00e8 disponibile su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/MalahovMV\/Ext2Stego\">github<\/a><\/noindex>.<br \/>\n(S\u00ec, lo so, che per la versione di produzione bisogna scrivere in qualcosa di 'veloce', come il C \ud83d\ude09 )<br \/>\nNella presente implementazione, la dimensione del file di input per la steganografia non deve superare i 1000 kB.<\/p>\n<p><\/p>\n<p>Vorrei esprimere la mia gratitudine all'utente <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/users\/pavelmstu\/\" class=\"user_link\">PavelMSTU<\/a><\/noindex> per i preziosi suggerimenti nella pianificazione della ricerca e le raccomandazioni per la stesura dell'articolo.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/347604\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043e\u0442 \u0443\u0447\u0435\u0431\u044b \u0432\u0440\u0435\u043c\u044f. \u042f \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (\u0434\u0430\u043b\u0435\u0435 \u0424\u0421). \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u0440\u0430\u0436\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u0412 \u0432\u0438\u0434\u0435 \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u0430\u044f \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u0430\u044f \u0424\u0421 ext2. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0421\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0415\u0441\u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e &#171;\u0440\u0430\u0437\u0434\u0440\u0430\u043a\u043e\u043d\u0438\u0442\u044c&#187; [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\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\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\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-10-31T18:39:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39: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\udd47Steganografia nel filesystem | ProHoster","description":"Ciao, Habr.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","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-10-31T18:39:19+00:00","article:modified_time":"2019-10-31T18:39:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31080","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-21 04:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}