Il #problemino (tra i tanti!) delle #webapp è che saranno anche facili da #archiviare o #clonare spesso, ma non per questo anche semplici… (o per caso non sono neppure facili e la mia #esperienza mi fa sottovalutare la cosa?) 😫

  • 🅰️ Per quelle meno complesse, il metodo migliore è senza dubbio un bel wget -kp $URL, cioè scaricare la pagina #HTML con tutte le sue risorse collegate, e convertire i link da assoluti a relativi.
  • 🅱️ Quel #metodo però non è a conoscenza di tutte le risorse caricate dinamicamente, cioè dichiarate in posti diversi dall’HTML. Per prendere anche quelle (ed è spesso necessario, tutte le app moderne caricano roba così), bisogna aprire la app nel #browser, e guardare le richieste di #rete che macina con il normale uso.
    • 1️⃣ A questo punto, si può usare la funzione del browser per esportare le richieste in formato HAR, e poi tool come har-extractor o Har Extractor Online per ricavare i file effettivi da quel blob.
      • Ho notato però che Firefox in alcune situazioni genera #HAR corrotti (2 giochi fatti in Phaser avevo provato a scaricare, ed una volta estratti gli script tiravano errori; ho riprovato con Chromium, ed è andato tutto liscio), quindi a prescindere io userei l’altro #navigatore per questa cosa. 🥴
      • Poi, non ho ben capito se per via di come il file HAR in sé è generato, se come quegli #strumenti lo interpretano, o un misto delle cose, ma le risorse cross-domain (e credo anche caricate da iframe?) tendono a non venir estratte, quindi si deve andare poi a pescarle prelevando l’URL di ognuna a manina dai DevTools già aperti… 🤧
  • 🆎 Si potrebbero usare primo e secondo metodo insieme in linea di principio (copiando i file del primo passaggio su quelli del secondo, sovrascrivendo gli esistenti), ma nella pratica è inutile… se c’erano link assoluti da convertire in relativi nell’HTML, con spaventosa probabilità questi sono presenti anche nel #JavaScript o chissà dove, per cui, dato che bisognerà comunque andare a mano a modificarli da qualche parte, 1 o 2 file in più non cambiano (spesso) nulla.
  • 2️⃣ Se si è usato il secondo metodo, bisogna a questo punto effettivamente verificare che i link siano tutti corretti, le #risorse effettivamente scaricate, e la app funzionante indipendentemente dal dominio originale… il modo più efficiente che ho trovato è aprire già da subito un webserver locale sui file, navigarci nel browser, e controllare sia che tutto funzioni nel pratico, sia che tutte le #richieste di rete per risorse effettive (ossia, non contano chiamate di telemetria o simili) vadano al mio #server, anziché al dominio originale (attivando la colonna omonima della tabella nei #DevTools lo si vede a colpo d’occhio).
    • Quando ci sono richieste che falliscono o che vanno su altri server, bisogna capire da dove nel codice queste partono, e fare le opportune #modifiche per usare URL relativi. Quelle che partono dall’HTML o dal CSS (turns out, non molte, altrimenti avremmo usato direttamente wget) sono appunto una scemenza da sistemare… ma quando partono da #script, c’è poco da fare, con l’aiuto del debugger del browser (di nuovo, meglio Chromium, perché de-mininifica il JavaScript aggiungendo whitespace in automatico) si va a capire da che punto partono, e in base alla situazione si valuta che modifiche fare al #codice. Poi, si testa ancora, e ancora si applicano #fix, finché tutto non funziona. ♻️
    • In genere questo non è un problema, e anche per app più ostiche (come quella che ho ricaricato sulla #SalaMuseoGames ieri, Little Alchemy 2) si fa tutto in un quarto d’ora ben ristretto. Tuttavia, bisogna fare attenzione a quei programmi che caricano le risorse man mano che ne hanno bisogno e non tutto subito (in genere, maggior parte dei giochi, oppure parecchie #app React)… lì si può potenzialmente perdere un bel po’ di tempo, perché bisogna mettersi ad usare il #software raggiungendo idealmente il 100% del codice; cioè, cliccare tutti i bottoni, usare qualunque azione, giocare tutti i livelli… fino ad ora non ho mai incontrato #ostacoli, ma se succede, l’unica è navigare tra il codice già scaricato per vedere cos’è che manca (da qualche parte ci sono scritti i nomi delle risorse ancora da scaricare, per ovvi motivi). 🗡️
  • 🔚 Aggiustamenti finali: in base alla situazione, vanno fatte altre modifiche al source per ovviare a #problemi banali ma frequenti. La maggior parte riguardano i domini, che in certi casi sono hardcodati, e quindi o ci sono iframe che comunicano con la Messaging API e gli va cambiato il dominio (come per il gioco di ieri), o c’è del DRM che ostacola il #rehosting (come il giochino dell’altro ieri) ecc… con #pazienza si risolve tutto.
    • E alla fine di tutto, una cosa che mi piace fare ma che non sarebbe obbligatoria, è disattivare tutte le componenti potenzialmente dannose dell’ #applicazione, ossia commentare via eventuali inclusioni e chiamate a sistemi di analitiche o pubblicità. 🚯

https://octospacc.altervista.org/2024/04/03/webaps-heist/

#app #applicazione #archiviare #browser #clonare #codice #DevTools #esperienza #fix #HAR #HTML #JavaScript #metodo #modifiche #navigatore #ostacoli #pazienza #problemi #problemino #rehosting #rete #richieste #risorse #SalaMuseoGames #script #server #software #strumenti #webapp

Little Alchemy 2 | Sala Museo Games

Little Alchemy 2 invites players to embark on a journey of elemental exploration and experimentation. Combining different elements to create new ones, this a...

Sala Museo Games | Where art is your new play

L’ #informatica sta completamente esplodendo nell’ultima settimana… ciò è molto buffo, ma anche #preoccupante. E siamo appena a sabato mattina… c’è tutto il tempo per far andare storto anche qualcos’altro! Siamo messi veramente di cacca. 😬️

  • Prima è uscito fuori un #bug che colpisce tutte le CPU Apple Silicon, simile a cosa fu Spectre anni fa, quindi ovviamente #hardware, e chissà se sarà o meno patchabile via software in realtà in futuro (ma in tal caso, il vostro bel #computer con la mela girerà 3 volte peggio, soldi buttati). Fanno proprio schifo ‘sti #processori #moderni, tutti indistintamente, finiscono sempre per avere una caterva di #falle strane perché implementano #hack bruttissime a livello di progettazione per girare più veloci… dovremmo tornare onestamente al 6502. Il sito ufficiale è https://gofetch.fail, e #LowLevelLearning ha ovviamente parlato della cosa: https://youtube.com/watch?v=-D1gf3omRnw 🍎️
  • E infine, #notizia di ieri, cosa estremamente grave perché è stata fatta apposta, è stata inserita una #backdoor nella libreria di compressione #XZ. Lo ha scoperto un certo #AndresFreund, che non è un ricercatore di #sicurezza, ma era semplicemente diventato estremamente salty dopo aver visto che i suoi login ad SSH facevano schizzare alle stelle l’uso di risorse del sistema, oltre ad essere stranamente più lenti. Quindi ha scavato un po’, pensando ci fosse qualche #problema benigno, ma in realtà ha scoperto che qualche stronzo ha inserito #malware nel processo di build della libreria, nascondendolo tra le cose relative al testing. Mi sarebbe piaciuto navigare tra #issue e pull request per vedere l’utente che ha mandato ‘sta merda al progetto, ma GitHub come al solito si dimostra la piattaforma di condivisione di codice più stupida al mondo, e ha sospeso tutte le repo per “violazione dei Termini di Servizio”… razza di scimmie imbananate che non siete altro, ma credete davvero che i mantenitori di #Tukaani abbiano fatto entrare codice malevolo nelle loro repo consapevolmente? È ovvio che nessuno se n’è accorto, che bisogno c’è di punire chi non ha colpa allora? (Tra l’altro, il loro sito era ospitato lì, quindi ora manco quello è più online… almeno hanno un mirror Git, ma è solo source lì). Mi piacerebbe proprio tanto fare una chiacchierata con il vero colpevole, e di persona, sia ben chiaro, non dietro una tastiera dove questo si crederebbe ovviamente Dio… “eh ma io so fare gli exploit io so programmare meglio di te io io” sei un coglione, questo sei se fai queste cose, scommetto che non riusciresti nemmeno a parlare faccia a faccia. Persino io con le mie manie di protagonismo non mi sognerei mai di fare qualcosa per garantirmi una backdoor nei server #SSH di tutto il mondo, e che cazzo… 💀️
Comunque, mailing list della scoperta su https://www.openwall.com/lists/oss-security/2024/03/29/4, e ancora un altro filmino: https://www.youtube.com/watch?v=jqjtNDtbDNI. (#Meme rubato da https://t.me/ignuranza/2002.) Io non ho controllato, ma personalmente direi che non sono vulnerabile sul mio server, perché uso Debian Stable (mi sembra di aver capito che lì non ci sono #rogne), e perché #OpenSSH lo tengo dietro firewall, è accessibile solo dalla mia LAN, col cazzo che arriva un bimbonutella che pensa di entrarci dentro sparando la sua chiave pubblica…

https://octospacc.altervista.org/2024/03/30/3804/

#AndresFreund #backdoor #bug #computer #falla #falle #glitch #hack #hardware #informatica #issue #Linux #LowLevelLearning #malware #moderni #notizia #OpenSSH #preoccupante #problema #problemino #processori #ProofOfConcept #rogne #root #sicurezza #SSH #Tukaani #video #writeup #XZ

GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers

A new microarchitectural side-channel attack exploiting data memory-dependent prefetchers in Apple silicons.

Ben 2 mesi fa (pensavo meno…) avevo detto qualche dettaglio sul #backup del #MicroBlog… la metà delle cose rimane ancora valida, ma è uscita fuori qualche #rogna nel tempo. 🕤️

  • Avevo notato che #Altervista tende ad invalidare le sessioni un po’ a caso, quindi puntualmente lo #script falliva ad esportare il file #XRSS con cURL. Per un po’ di #tempo non ho tentato di risolvere il problema, immaginando che ci dovesse essere un modo migliore dello scraping di farlo, ma allo stesso tempo non riuscendo a pensare a nulla, e ho fatto giusto qualche #esportazione a mano di routine. ✍️
  • Non mi preoccupavo troppo perché (e ricordavo di averlo detto, ma temo di non averlo mai fatto, non trovo il post) avevo installato il plugin “Writing on GitHub“, che in automatico esporta i nuovi #post in Markdown nel posto lì dove dice il nome… sembrava perfetto, ma appena 2 settimane (meglio tardi che troppo tardi) fa ho scoperto che non fa il commit di eventuali modifiche apportate ad un post dopo la creazione (nemmeno con il tasto per forzare), che è quantomeno un #problemino. 🧨️

Troppo troppo pallose ‘ste cosine qui, ma menomale che proprio oggi mi è venuto lo schiribizzo di tentare di sistemarle, un po’ anche grazie alla minima ulteriore conoscenza tecnica di #WordPress accumulata in queste lunghe settimane, e quindi ecco i miei aggiustamenti: ⛏️

  • Ho fatto un #plugin mio per esporre un endpoint #REST custom che mi da il documento #XML di esportazione, quindi posso usare sempre il curlo o quello che è, ma senza impazzire. Ho pagato ciò con la pazzia ora, però, in quanto nonostante avessi capito subito di dover usare una certa funzione export_wp(), non mi è stato subito chiaro che io dovessi includere un certo file di libreria per poterla effettivamente chiamare; la documentazione ufficiale a riguardo è scarsa, e di quella terza non ne parliamo proprio. Anche ChatGPT a ‘sto giro è stato fregato dalla realtà del mondo. 😱️
  • Ho invano perso po’ di tempo a ravanare nel #codice di WOGH per capire come mai non prendesse in conto le #modifiche. Temevo non fosse programmato per farlo, ma in effetti lo è (e, a pensarci un attimo, sarebbe strano altrimenti), quindi è un #bug. Vabbè, dopo troppo #debugging sono arrivata alla conclusione che per qualche motivo non salva l’hash dei commit che fa, necessario per crearne di nuovi che modificano file esistenti, ma cercare di sistemarlo per bene è una grossa rogna che non voglio nemmeno iniziare a crearmi. Quindi, dato che la #sincronizzazione perfettamente istantanea non mi serve, ho banalmente aggiunto la scrittura su file in una cartella dall’URL segreto in wp-content, quindi poi prelevo tutto via FTP. Ahimé duplico lo spazio occupato sul #server, ma tanto in primis non ho limiti fissi, e comunque è tutto testo quindi poca roba. 👁️‍🗨️️

https://octospacc.altervista.org/2024/02/14/finalmente-backup-veri/

#AlterVista #backup #bug #codice #debugging #esportazione #MicroBlog #modifiche #plugin #post #problemino #REST #rogna #script #server #sincronizzazione #tempo #WordPress #XML #XRSS

- fritto misto di octospacc

Aggiungendo qualche riga al mio #megascript di #backup (https://gitlab.com/octospacc/Configs/-/blob/1389c5bdbc76d5764bffd52e8bae9b0c4617fe1d/Server/Root/Main/Server/Scripts/BackupAll.zx.mjs#L82), ora dovrei poter tenere il #sito del #FrittoMisto al sicuro. 🍳 Ogni notte o quando è, il mio #server si collegherà via #FTP ad #AlterVista e sincronizzerà in locale la cartella wp-contents grazie ad #rclone. Allo stesso tempo, con un comando #cURL copiato dal browser, si […]

fritto misto di octospacc