Articolo in evidenzaArticolo in evidenzaArticolo in evidenzaArticolo in evidenzaArticolo in evidenza

Mag

25

2019

Tra le sue molteplici possibilità, Raspberry Pi ha anche quella di funzionare da ad-blocker.

Ogni moderno sito web contiene pubblicità, in forma più o meno invasiva. Esistono tantissime estensioni per i browser più popolari che consentono di bloccare pubblicità e sistemi di tracking in generale, ma ormai sono stati sviluppati script capaci di rilevare tali estensioni e bloccare la visibilità dei contenuti finché l’utente non disabilita l’ad-blocker.

Pi-Hole (sito ufficiale) è un software che opera a livello DNS, il che significa che agisce prima che qualsiasi contenuto venga caricato, e soprattutto, basta un’unica installazione per bloccare tutta la pubblicità sulla rete di casa.

Continua a leggere…
Share

Feb

26

2019

Oggi vediamo come trasformare il Raspberry Pi in un server VPN con PiVPN.

Prima di tutto, cerchiamo di capire (molto sinteticamente) cos’è una VPN e perché potrebbe tornare utile.

Oggi in casa abbiamo tutti un router, l’apparato che viene fornito dal nostro provider e tramite il quale ci connettiamo ad Internet; al router sono collegati tutti i nostri dispositivi (pc, smartphone, tablet, IoT), sia via cavo che wireless.

L’insieme di tutti questi dispositivi costituisce una rete locale; tale rete non è accessibile dall’esterno (ovvero da Internet), in quanto l’unico dispositivo abilitato alla comunicazione con l’esterno è proprio il router. Tutti gli altri dispositivi si collegano al router che gestisce il traffico da e verso Internet.

Continua a leggere…
Share

Feb

9

2019

Utilizzare Timeshift, per creare snapshot (istantanee) del sistema (ripristinabili all’occorrenza, un po’ come avviene con i punti di ripristino del sistema di Windows) è estremamente semplice. Su un sistema Debian like, basta il seguente comando per installare:

sudo apt install timeshift

Dopo l’installazione, basterà avviare Timeshift e cliccare su Configurazione guidata; in realtà è tutto estremamente semplice, totalmente basato su una comoda ed intuitiva interfaccia grafica, e se non ci sono particolari esigenze si può scegliere tranquillamente di creare le snapshot con rsync (l’altra opzione è il brtfs), indicare la destinazione delle snapshot stesse, il numero di istantanee da mantenere memorizzate, e la frequenza di creazione delle istantanee del sistema.

Alla fine della configurazione, tornando alla schermata iniziale, basterà cliccare su Crea per ottenere la prima istantanea del sistema.

Successivamente, ci penserà Timeshift a gestire il tutto secondo le cadenze indicate in configurazione.

In caso di necessità, per effettuare un ripristino basterà scegliere la snapshot desiderata e cliccare su Ripristina. In caso di impossibilità ad accedere al sistema, si può anche usare una live distro, tramite la quale installare il tool, avviarlo e navigare fino alla posizione in cui si trovano le snapshot per ripristinarne una.

Alla prossima..

Share

Gen

31

2019

Recentemente ho acquistato un Pocophone F1 di Xiaomi e, con mia grande sorpresa, ho scoperto che Waze e Amazon Music non funzionavano correttamente con Android Auto.

Nello specifico, Waze (il famosissimo navigatore “sociale”) non riusciva ad agganciare correttamente il segnale GPS, e quindi di fatto era inutile, mentre Amazon Music segnalava genericamente che “al momento non sembra funzionare”.

Si trattava di problemi legati alla MIUI, l’OS installato sui terminali di Xiaomi, o meglio alle impostazioni di default per le app.

Per Waze, da Impostazioni -> App installate -> Waze -> Risparmio batteria, è necessario impostare Nessuna restrizione (altrimenti la modalità risparmio energetico “stacca” il GPS quando si spegne lo schermo del cellulare).

Per Amazon Music, da Impostazioni -> App installate -> Permessi app, basta concedere i permessi presenti.

Inoltre, va tenuta d’occhio anche la modalità di pulizia della memoria della MIUI, capace di interferire col corretto funzionamento di molte app collegate ad Android Auto.

Alla prossima..

Share

Apr

19

2018

Forse in molti avranno sentito parlare di Cross Origin Resource Sharing (CORS). Un caso estremamente comune per le applicazioni web è quello del reperimento dei dati mediante un web service di tipo REST, la nostra applicazione quindi andrà a reperire i dati da mostrare attraverso un servizio esposto.

Purtroppo, per limitare l’eventualità di attacchi informatici, i browser moderni applicano la restrizione same-origin; senza entrare in dettagli, un’applicazione web su un dominio A non riuscirà a chiamare il servizio REST esposto su un dominio B.

In Java, esistono vari modi per aggirare tale restrizione, una semplicissima consiste nello scrivere una classe CORSFilter che, come dice il nome stesso, è un filtro CORS personalizzato:

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CORSFilter implements Filter {
	
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		HttpServletRequest req = (HttpServletRequest) request;
 
        // Autorizza tutti i domini a consumare il servizio
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Origin", "*");
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Methods", "GET, OPTIONS, HEAD, PUT, POST, DELETE");
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 
        HttpServletResponse resp = (HttpServletResponse) response;
 
        if (req.getMethod().equals("OPTIONS")) {
            resp.setStatus(HttpServletResponse.SC_ACCEPTED);
            return;
        }
 
        chain.doFilter(request, response);
		
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

}

Per poi registrarla come filtro nel web.xml:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>nomedelpackage.CORSFilter</filter-class>
</filter>
 
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Da ricordare che le righe qui sopra vanno inserite prima del tag <servlet>.

Tutto qui.. Adesso il filtro CORS funziona a dovere.

Alla prossima..

Share

Licenza

Creative Commons License
RedBlue's Blog di RedBlue è rilasciato sotto licenza Creative Commons 2.5 Italia.

Badges

Cionfs'Forum CMS Check PageRank

Other

Se hai trovato utile questo blog, supportalo con una piccola donazione per l'hosting..


Locations of visitors to this page