Archives For AdBlock Plus

Aggiornamento 14/9/15
Si stanno sviluppando diverse nuove discussioni sull’argomento che diventa così sempre più “caldo”. Tra conferme e passi indietro pare che in Firefox l’opzione di cui vi ho parlato all’interno dell’articolo verrà potenzialmente ignorata, “sovrascrivendo” ciò che l’utente richiede al proprio browser di fare. Vi invito a leggere la discussione nel forum di Mozilla Italia all’indirizzo forum.mozillaitalia.org/index.php?topic=64911.0 e ad intervenire se lo ritenete opportuno. Seguiranno certamente ulteriori sviluppi sulla questione (e quindi anche dell’articolo qui di seguito pubblicato).
Aggiornamento 11/9/15
Come segnalato da Simone nei commenti, pare che questa novità andrà ad impattare Firefox 43 e non più la versione 41. Vi rimando direttamente al commento contenente anche i riferimenti di Bugzilla: gioxx.org/2015/09/07/firefox-estensioni-signed/#comment-2248130207

Qualcuno lo avrà già notato perché la novità riguarda Firefox 40 (già disponibile da qualche giorno ormai) ma soprattutto il 41 (attualmente in Beta) ed il 42 (Developer Edition) che arriveranno sui PC di tutti gli utilizzatori nelle prossime settimane. Firefox non permette più (dalla versione 41) l’installazione di estensioni non firmate.

Firefox: disabilitare il controllo firme degli addon (se necessario) 3

Perché? Perché di mezzo c’è la sicurezza, la vostra, quella degli utilizzatori che troppo spesso vengono ingannati da software di terze parti che non si fanno poi molti problemi ad installare estensioni che caricano pubblicità durante la navigazione (le segnalazioni al mio indirizzo di posta e tramite il sistema di supporto di X Files sono aumentate in maniera vertiginosa). Sia chiaro: non è la necessità di fermare la fantasia e la capacità di una comunità che di estensioni ne scrive decine al giorno, piuttosto la volontà di convincere questi fantastici sviluppatori a pubblicarla su AMO affinché la loro creazione venga controllata e approvata da persone che possono dar loro consigli o chiedere di ritoccare ciò che può mettere in difficoltà il browser (o lasciare qualche porta aperta a ospiti dall’esterno, mai simpatici).

In realtà qualcuno se n’è accorto già diverso tempo fa, proprio perché gli sviluppatori dei componenti aggiuntivi hanno iniziato a correre per arrivare preparati al giro di quella boa sempre più vicina, ed è per questo che probabilmente le vostre estensioni si sono improvvisamente aggiornate in massa. Tutto questo costituisce un ulteriore layer di sicurezza che è importante rispettare affinché si possano dormire sonni più tranquilli e avere così una navigazione maggiormente pulita, d’altronde di pubblicità (lecita) il web ne è già saturo, un po’ come la sopportazione del suo pubblico.

Trovate maggiori informazioni su quanto messo in atto nell’articolo datato 10 febbraio 2015, sul blog di Mozilla Add-ons: blog.mozilla.org/addons/2015/02/10/extension-signing-safer-experience (se volete saperne di più e in italiano potete sempre dare un’occhiata all’apposito articolo localizzato da Mozilla Italia e disponibile su support.mozilla.org/it/kb/add-on-signing-in-firefox).

Disattivare il controllo

Sono certo che se state leggendo questo articolo siete altrettanto consapevoli del fatto che disattivare questo controllo comporta una possibile falla in un sistema pensato per essere più sicuro, avrete i vostri buoni motivi. Io ad esempio ne ho proprio per X Files. Sviluppando la lista sulla versione Developer di Firefox più aggiornata, mi tocca stare al passo con le versioni “Nightly” dell’estensione Adblock Plus, non presenti su AMO e disponibili tramite il sito web dello sviluppatore. Se il controllo è attivo, Firefox rifiuta di terminare l’installazione del file XPI perché non firmato. Come se non bastasse, qualsiasi estensione già installata nel sistema che non possiede una firma validata, verrà disabilitata al successivo avvio del browser:

Firefox: disabilitare il controllo firme degli addon (se necessario) 2

Come fargli abbassare la guardia per poter procedere? Al solito da about:config. L’opzione da andare a modificare è prevedibilmente di tipo booleana e risponde alla ricerca di:

xpinstall.signatures.required

che dovrà passare necessariamente da true a false, per tutto il tempo necessario ai vostri test. Vi ricordo infatti che riportando la voce a true, Firefox andrà a disabilitare automaticamente le estensioni non firmate già dal successivo riavvio del browser, non necessario invece dopo aver ritoccato la voce in about:config perché immediatamente applicato.

Firefox: disabilitare il controllo firme degli addon (se necessario) 1

Occhi sempre ben aperti e fate attenzione a ciò che installate. Da questo punto in poi la colpa non potrà essere certo affibbiata ancora una volta a Mozilla ;-)

larry_inv-firefoxIl ricordo di eXtenZilla è ancora vivo nonostante il progetto sia ufficialmente terminato nel 2013 dopo quasi 9 anni di vita. Nato nel 2005 da una costola di Mozilla Italia è servito a fornire a voi tutti componenti aggiuntivi per Firefox (e non solo) in italiano, con un forum di supporto e documentazione sempre aggiornata per cercare di guidarvi passo-passo alla personalizzazione del vostro browser o a collaborare per mettere sul fuoco sempre più carne.

AMO (addons.mozilla.org) è cresciuto tanto nel frattempo, così come altri progetti internazionali che sono in grado di garantire quel lavoro che un tempo era solo di eXtenZilla nella nostra penisola. Negli stessi anni Firefox si è diffuso parecchio e come ogni software ad alta diffusione attrae l’attenzione di sviluppatori (fortunatamente non molti) che vogliono trarne un profitto in maniera poco ortodossa. Sono nate estensioni malevole che aprono finestre pubblicitarie indesiderate o fanno comparire banner all’interno di pagine che in realtà non ne contengono. Sono anni che sviluppo e mantengo liste Adblock e leggo report su report di questo tipo (diciamo che posso vantare una certa esperienza in merito). Ne ho parlato, ne ho scritto (e lo faccio tutt’ora), sfortunatamente però le vittime non accennano a diminuire. Bisogna fare attenzione ragazzi, molta attenzione. Quando installate software gratuiti che promettono di farvi conquistare il mondo a colpi di clic spesso non fate caso a quelle piccole caselle spuntate dove si dice “Accetti di installare anche il componente Ti Metto Pubblicità Ovunque” o cose simili, non le togliete, andate avanti fino alla fine ed ecco servito il problema per il quale poi correre a lamentarsi (è un po’ come mettere volutamente le mani sul fuoco e poi piangere per essersi scottati).

C’è uno strumento utile che ho trovato per puro caso e che spero potrà essere tenuto aggiornato (anche grazie alla collaborazione degli utilizzatori, sia chiaro) per permetterci di essere sempre informati su estensioni potenzialmente dannose per la vostra installazione di Firefox, si chiama Extension Defender e lo trovate su extensiondefender.com.

screenshot-www extensiondefender com 2015-02-02 08-54-04

Sito web minimalista, un database ancora scarno (e in realtà è meglio, basta che non sia per colpa di chi deve mantenerlo), nomi e collegamenti diretti alle estensioni che non dovete installare perché contengono adware o simili. La parte relativa al database di Chrome è decisamente più nutrita e potete fare una nuova segnalazione in maniera decisamente più semplice rispetto a Firefox ma è comunque possibile farcela (un paio di passaggi in più, nulla di che). L’idea è sicuramente valida, la risorsa può e dovrebbe fungere da gateway per la consapevolezza dell’utilizzatore affinché non faccia un errore banale e assolutamente evitabile. Utile anche per capire -una volta diventati vittime- come tirarsi fuori dai guai in autonomia.

Esistono alternative valide che voi sappiate? Se si, non esitate a parlarne nei commenti ;-)

Gli utilizzatori di X Files e degli altri due moduli NoFacebookAds (NFA) e Harmful WebSites (HWS) diventano ogni giorno sempre più. Complice (fuori di dubbio) la sempre più forte necessità di non essere assaliti da pubblicità che troppo spesso prendono il posto dei contenuti o interi siti web compromessi che vanno così a mettere a rischio l’incolumità della propria postazione di lavoro, il mio “lavoro” diventa così sempre più delicato, bisogna fare attenzione ad ogni minimo dettaglio e cercare di pensare che qualsiasi modifica non andrà ad impattare solo le mie macchine ma anche quelle di centinaia di altre persone in giro per il globo. Si spiegano così le mie risposte (via mail o ai ticket aperti o ancora nei report segnalati sul sito ufficiale dell’estensione) ad alcune richieste troppo specifiche e troppo poco condivisibili, non ve la prendete!

Vi siete però mai chiesti come nascono davvero X Files e Harmful WebSites? Contrariamente a NoFacebookAds che contiene solo poche righe specifiche per il noto social network sulla quale mi basta quindi mettere mano “a cuore aperto“, entrambe le altre liste vengono rese pubblicamente accessibili tramite gli URL di sottoscrizione che tutti utilizzano solo in un “secondo momento“. I filtri vengono scritti o raccolti, verificati, quindi esportati e poi lavorati da uno script in VBScript. Voglio condividere con voi questo lavoro, non si sa mai, potrebbero spuntare fuori nuove idee, correzioni o miglioramenti :-)

Harmful WebSites

E’ quella più semplice. Harmful WebSites nasce infatti dalla ben più corposa e collaborativa lista messa a disposizione da MalwareDomainList come vi avevo spiegato in un precedente articolo e va solo lavorata in quanto scaricabile ma non compatibile nativamente con Adblock. Parte tutto da questo file: malwaredomainlist.com/hostslist/hosts.txt, nel quale però dovranno sparire i 127.0.0.1 e le informazioni di testa. Questo perché si tratta di una lista da sostituire o integrare al file hosts di Windows, non studiata per un’estensione di un browser, non per il momento almeno ;-)

Ecco quindi che ho fatto intervenire “qualche” riga di codice VBScript che possa fare questo lavoro in completa autonomia (previo doppio clic ovviamente), da qui in poi l’articolo prende una piega più tecnica, forse meno adatta ai semplici curiosi.

' ABP X FILES HWS Maker 0.2
' GSolone - Ultima modifica: 20130808 rev3
'
' Lo script scarica la lista filtri più aggiornata disponibile su MalwareDomainList.com e la modifica per renderla integrabile all'interno di una lista filtri standard per Adblock Plus e compatibili, a prescindere dal browser utilizzato.
'
' STORICO MODIFICHE
' 0.2- modificato l'URL di riferimento della distribuzione lista, si comincia a lavorare su noads.it
' 0.1 rev3- corretto il problema dell'ultima linea con il solo "##HTML *" che bloccava la navigazione su ogni sito web. Rimangono due righe vuote a termine file ma non è un problema. Corretto un problema di formattazione nel titolo della lista.
'
' Sviluppo:     Giovanni F. -Gioxx- Solone (dev@gfsolone.com)
' Testato su:    Windows 7 Pro Sp1
'
' LISTA HOST UTILIZZATA
HTTPDownload "http://www.malwaredomainlist.com/hostslist/hosts.txt"

' Non toccare nulla oltre questa riga!
' DO NOT touch anything below this line!

 Sub HTTPDownload(myURL)
     ' Variables and constants definition
     Dim i, objFile, objFSO, objHTTP, strFile, strMsg
     Dim objWMIService, objProcess, colProcess     
     Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
    ' Date and time
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each objItem in colItems
        dtmLocalTime = objItem.LocalDateTime
        dtmMonth = Mid(dtmLocalTime, 5, 2)
        dtmDay = Mid(dtmLocalTime, 7, 2)
        dtmYear = Left(dtmLocalTime, 4)
        dtmHour = Mid(dtmLocalTime, 9, 2)
        dtmMinutes = Mid(dtmLocalTime, 11, 2)
        dtmSeconds = Mid(dtmLocalTime, 13, 2)
    Next
    update = dtmYear & dtmMonth & dtmDay & dtmHour & dtmMinutes
    lastmodified = dtmDay & "-" & dtmMonth & "-" & dtmYear
    ' debug Wscript.Echo update
     
     ' Create a File System Object
     Set objFSO = CreateObject( "Scripting.FileSystemObject" )

     ' Check if the specified target file or folder exists, and build the fully qualified path of the target file
     Set objShell = CreateObject("Wscript.Shell")
     Set objProcess = objShell.Environment("Process")
     Set WshShell = WScript.CreateObject("Wscript.Shell")
     strApplicationData = WshShell.ExpandEnvironmentStrings("%TEMP%") 
     'strFile = strApplicationData + "\hws_xfiles.txt"
     strFile = "C:\Dropbox\Public\abpxfiles\siteblock.txt"

     ' Create an HTTP object
     Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

     ' Download from the specified URL
     objHTTP.Open "GET", myURL, False
     objHTTP.Send
     
     if LenB( objHTTP.ResponseBody ) < 500 Then
     MsgBox "Errore durante il download della lista host ..." & chr(13) & "Lista non trovata o sito web momentaneamente non funzionante." & chr(13) & "Lista non creata"
     Exit Sub
     End If
     
     ' Create or open the target file
     Set objFile = objFSO.OpenTextFile( strFile, ForWriting, True )

     ' Write the downloaded byte stream to the target file
     For i = 1 To LenB( objHTTP.ResponseBody )
         objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )
     Next

     ' Close the target file
     objFile.Close()
     
    ' Remove line 1 to 6, header of MalwareDomainList.com Hosts List
     For i = 1 To 6
        DeleteLine strFile, "", 1, 0
     Next
     
    ' Find and remove 127.0.0.1 from each line
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFile, ForReading)
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, "127.0.0.1  ", "")
    
    Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
    objFile.WriteLine strNewText
    objFile.Close
    
    ' Remove empty lines at the end of file!
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFile, ForReading)
    Do Until objFile.AtEndOfStream
    strLine = objFile.Readline
    strLine = Trim(strLine)
    If Len(strLine) > 0 Then
        strNewContents = strNewContents & strLine & vbCrLf
    End If
    Loop
    objFile.Close
    Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
    objFile.Write strNewContents
    objFile.Close
    
    ' Append "##HTML *" for each line
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFile, ForReading, True)
    Set tmpFile= objFSO.OpenTextFile(strFile & ".tmp", ForWriting, True)
    Do While Not objFile.AtEndofStream
        url = objFile.ReadLine
        url = url & "##HTML *"
        tmpFile.WriteLine url
    Loop
    objFile.Close
    tmpFile.Close
    objFSO.DeleteFile(strFile)
    objFSO.MoveFile strFile&".tmp", strFile
    
    ' Add list header (ABP X Files HWS)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFile, ForReading)
    strContents = objFile.ReadAll
    objFile.Close

    strFirstLine = "[Adblock Plus 2.0]" & vbCrLf & "! Version: " & update & vbCrLf & "! Title: X Files: HWS Harmful WebSites" & vbCrLf & "! Harmful WebSites blocca siti web potenzialmente dannosi per la vostra navigazione" & vbCrLf & "! Last modified: " & lastmodified & vbCrLf & "! Expires: 3 days" & vbCrLf & "! Homepage: http://noads.it" & vbCrLf & "! Home: http://noads.it" & vbCrLf & "! Blog: http://gioxx.org/tag/x-files" & vbCrLf & "! "
    strNewContents = strFirstLine & vbCrLf & strContents

    Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
    objFile.WriteLine strNewContents
    objFile.Close
     
    ' Open the file (verification process)
    CreateObject("WScript.Shell").Run strFile

 End Sub
 
Sub Run(ByVal sFile)
    ' Variables definition
    Dim shell

    Set shell = CreateObject( "WScript.Shell" )
    shell.Run Chr(34) & sFile & Chr(34), 1, false
    Set shell = Nothing
End Sub

Sub DeleteLine(strFile, strKey, LineNumber, CheckCase)
    'Use strFile = "c:\file.txt"   (Full path to text file)
    'Use strKey = "John Doe"       (Lines containing this text string to be deleted)
    'Use strKey = ""               (To not use keyword search)
    'Use LineNumber = "1"          (Enter specific line number to delete)
    'Use LineNumber = "0"          (To ignore line numbers)
    'Use CheckCase = "1"           (For case sensitive search )
    'Use CheckCase = "0"           (To ignore upper/lower case characters)
    Const ForReading=1:Const ForWriting=2
    Dim objFSO,objFile,Count,strLine,strLineCase,strNewFile
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFile=objFSO.OpenTextFile(strFile,ForReading)
    Do Until objFile.AtEndOfStream
       strLine=objFile.Readline
       If CheckCase=0 then strLineCase=ucase(strLine):strKey=ucase(strKey)
       If LineNumber=objFile.Line-1 or LineNumber=0 then
          If instr(strLine,strKey) or instr(strLineCase,strkey) or strKey="" then
             strNewFile=strNewFile
          Else
             strNewFile=strNewFile&strLine&vbcrlf
          End If
       Else
          strNewFile=strNewFile&strLine&vbcrlf
       End If
    Loop
    objFile.Close
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFile=objFSO.OpenTextFile(strFile,ForWriting) 
    objFile.Write strNewFile 
    objFile.Close 
 End Sub

Righe di debug sparse un po’ ovunque, sicuramente una marea di errori dovuti alla mia inesperienza e auto-formazione sulla programmazione in VBScript e (quasi certamente) molteplici modi di farlo con la metà delle righe di codice, eppure lo script che vedete qui di sopra si occupa ad oggi di scaricare la lista filtri da MalwareDomainList, rimuovere tutta la prima parte di informazioni, pulire ogni riga dal suo 127.0.0.1 e inserire i dettagli di aggiornamento, scadenza e non solo, quindi caricare nella cartella pubblica del mio Dropbox la nuova versione della lista finalmente compatibile che tutti voi potrete scaricare (o lasciar scaricare a Adblock) senza il minimo sforzo :-)

Giusto per farvi sentire un pelo più sicuri: alla fine del procedimento un “CreateObject(“WScript.Shell”).Run strFile” avvierà Notepad++ sul mio PC per verificare che tutto sia a posto e che non vi stia dando in pasto un file non corretto!

Inutile dire che avendo dichiarato delle cartelle ben precise al suo interno, se voleste riutilizzare questo script per qualche vostro particolare interesse dovrete fare attenzione e andare a modificare quelle righe per evitare di mandarlo in errore e non ottenere alcun risultato ;-)

Per evitare che ogni nuova modifica vada nel dimenticatoio e non venga aggiornata in questo articolo ho voluto pubblicare lo storico delle modifiche sul Wiki: public.gfsolone.com/wiki/doku.php?id=mozilla:abpxfiles:vbs:hwsmaker, dove aggiornerò la pagina con eventuali nuove versioni o note sull’attuale.

X Files

Una parziale modifica e semplificazione dello script sopra mostrato, questo si occupa solo di sostituire il file dei filtri pubblico (che voi tutti scaricate e utilizzate) con quello estratto dalla mia configurazione principale, quindi da una qualsiasi delle mie postazioni Windows con Firefox e Adblock Plus a bordo. Quando viene corretto un errore o aggiunto un filtro particolarmente importante o molto richiesto (spesso ho a che fare con le continue nuove pubblicità nei video Youtube o nei siti web delle testate giornalistiche più conosciute) arriva il momento di “testare, esportare e pubblicare“. Scrivo quindi i filtri necessari (o correggo gli errori), esporto la lista completa dal mio Firefox salvandola come “filtri.txt” sul mio Desktop e lascio fare il lavoro di fino a questo codice:

' ABP X FILES Stable Maker 0.2
' GSolone - Ultima modifica: 24122013-1326 rev0
'
' Lo script modifica la lista filtri esportata dall'Adblock Plus di Staging e la modifica per inserire le informazioni di rilascio, quindi la copia all'interno della cartella pubblica di Dropbox dove tutti i client puntano per l'aggiornamento.
'
' STORICO MODIFICHE
' 0.2 rev0- corregge il bug sullo sdoppiamento dei contenuti (Remove Empty Lines usava una variabile già piena e replicava ogni riga)
' 0.1 rev0- stadio iniziale di sviluppo.
'
' Sviluppo:     Giovanni F. -Gioxx- Solone (dev@gfsolone.com)
' Testato su:    Windows 7 Pro Sp1
'
' Non toccare nulla oltre questa riga!
' DO NOT touch anything below this line!

' Variables and constants definition
Dim i, objFile, objFSO, strFile, strMsg
Dim objWMIService, objProcess, colProcess     
Const ForReading = 1, ForWriting = 2, ForAppending = 8

' Date and time
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem in colItems
    dtmLocalTime = objItem.LocalDateTime
    dtmMonth = Mid(dtmLocalTime, 5, 2)
    dtmDay = Mid(dtmLocalTime, 7, 2)
    dtmYear = Left(dtmLocalTime, 4)
    dtmHour = Mid(dtmLocalTime, 9, 2)
    dtmMinutes = Mid(dtmLocalTime, 11, 2)
    dtmSeconds = Mid(dtmLocalTime, 13, 2)
Next
update = dtmYear & dtmMonth & dtmDay & dtmHour & dtmMinutes
lastmodified = dtmDay & "-" & dtmMonth & "-" & dtmYear
' DEBUG: show $datetime
'Wscript.Echo update

' Expand Environment
' Create const's to spare time and place
Dim WshS
Set WshS = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
usrProfile = WshS.ExpandEnvironmentStrings("%UserProfile%")
strFile = usrProfile & "\Desktop\filtri.txt"
' DEBUG: Message to prove my string contains the path to my profile
'cartellaProfilo = usrProfile
'Msgbox strFile, 0, "Percorso lista"

' Staging filtri.txt is on my Desktop?
If objFSO.FileExists(strFile) Then
Else
   MsgBox "Non ho trovato il file filtri.txt sul Desktop. Lo hai esportato da Firefox?",16,""
   Wscript.Quit
End If

' Remove line 1 to 2, default header of Adblock Plus export
 For i = 1 To 2
    DeleteLine strFile, "", 1, 0
 Next

' Add list header (ABP X Files Stable)
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
strContents = objFile.ReadAll
objFile.Close

strFirstLine = "[Adblock Plus 2.0]" & vbCrLf & "! Version: " & update & vbCrLf & "! Title: ABP X Files" & vbCrLf & "! X Files migliora la tua navigazione quotidiana!" & vbCrLf & "! Last modified: " & lastmodified & vbCrLf & "! Expires: 3 days" & vbCrLf & "! Homepage: http://noads.it" & vbCrLf & "! Home: http://noads.it" & vbCrLf & "! Blog: http://gioxx.org/tag/x-files" & vbCrLf & "! "

strNewContents = strFirstLine & vbCrLf & strContents
Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
'objFile.WriteLine strNewContents
objFile.Write strNewContents
objFile.Close

' Remove empty lines at the end of file!
Set objFile = objFSO.OpenTextFile(strFile, ForReading)
Do Until objFile.AtEndOfStream
    strLine = objFile.Readline
    strLine = Trim(strLine)
    If Len(strLine) > 0 Then
        strCleaned = strCleaned & strLine & vbCrLf
    End If
Loop
objFile.Close
Set objFile = objFSO.OpenTextFile(strFile, ForWriting)
objFile.Write strCleaned
objFile.Close

' Move updated X Files to Dropbox (and overwrite old file)
' (from %UserProfile%\Desktop\filtri.txt to C:\Dropbox\Public\abpxfiles\filtri.txt)
' DEBUG su folder temporanea
'strDropbox = "C:\Dropbox\Public\abpxfiles_debug\"
strDropbox = "C:\Dropbox\Public\abpxfiles\"
If objFSO.FileExists(strFile) Then
   objFSO.CopyFile strFile, strDropbox, True
Else
   MsgBox "Non sono riuscito a muovere il file dei filtri. Verifica che i puntamenti siano corretti",48,""
End If

' Open the file (verification process) and delete "Staging X Files"
' DEBUG su file temporaneo
'strDropboxFile = "C:\Dropbox\Public\abpxfiles_debug\filtri.txt"
strDropboxFile = "C:\Dropbox\Public\abpxfiles\filtri.txt"
CreateObject("WScript.Shell").Run strDropboxFile
objFSO.DeleteFile strFile, True 

Sub Run(ByVal sFile)
    ' Variables definition
    Dim shell
    Set shell = CreateObject( "WScript.Shell" )
    shell.Run Chr(34) & sFile & Chr(34), 1, false
    Set shell = Nothing
End Sub

Sub DeleteLine(strFile, strKey, LineNumber, CheckCase)
    'Use strFile = "c:\file.txt"   (Full path to text file)
    'Use strKey = "John Doe"       (Lines containing this text string to be deleted)
    'Use strKey = ""               (To not use keyword search)
    'Use LineNumber = "1"          (Enter specific line number to delete)
    'Use LineNumber = "0"          (To ignore line numbers)
    'Use CheckCase = "1"           (For case sensitive search )
    'Use CheckCase = "0"           (To ignore upper/lower case characters)
    Const ForReading=1:Const ForWriting=2
    Dim objFSO,objFile,Count,strLine,strLineCase,strNewFile
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile=objFSO.OpenTextFile(strFile,ForReading)
    Do Until objFile.AtEndOfStream
       strLine=objFile.Readline
       If CheckCase=0 then strLineCase=ucase(strLine):strKey=ucase(strKey)
       If LineNumber=objFile.Line-1 or LineNumber=0 then
          If instr(strLine,strKey) or instr(strLineCase,strkey) or strKey="" then
             strNewFile=strNewFile
          Else
             strNewFile=strNewFile&strLine&vbcrlf
          End If
       Else
          strNewFile=strNewFile&strLine&vbcrlf
       End If
    Loop
    objFile.Close
    
    Set objFile=objFSO.OpenTextFile(strFile,ForWriting) 
    objFile.Write strNewFile 
    objFile.Close 
 End Sub

Lo script si occupa quindi di prendere la lista appena esportata, aggiungere le informazioni di rilascio necessarie e infine sostituire il vecchio file filtri con quello nuovo appena lavorato. Sarà così pronto e raggiungibile per qualsiasi browser tramite aggiornamento automatico o manuale (a voi la scelta). Anche in questo caso ci sono diverse righe di debug lasciate appositamente per le verifiche del caso e magari -ancora una volta- si poteva fare “meglio con meno“.

Anche in questo caso ho voluto pubblicare lo storico delle modifiche (ad oggi c’è solo questa versione) sul Wiki: public.gfsolone.com/wiki/doku.php?id=mozilla:abpxfiles:vbs:stablemaker.

Come sempre vi invito a utilizzare l’area commenti di questo articolo nel caso in cui vogliate segnalare qualche errore o possibile miglioramento di entrambi i lavori o più semplicemente mettervi in contatto con me e ragionare insieme su come far evolvere questi codici :-)

Enjoy!

Qui non fai in tempo a distrarti un attimo che cambia tutto, più o meno è quanto accaduto alla gestione del servizio legato a X Files e alla sua distribuzione su tutti i browser.

ABP X Files su noads.it

Durante il mese di agosto (nonostante i primi “sintomi” siano saltati fuori a fine luglio scorso) WebPerTe / AziendeItalia ha iniziato a bloccare l’accesso al sottodominio mozilla.gfsolone.com perché invaso di richieste, tutte ovviamente verso il file dei filtri X Files per i vostri Adblock. Ciò che è sfuggito sin dal primo momento è che quel sottodominio non contiene davvero la lista filtri ma si limita a redirigere l’utente e le richieste delle estensioni verso il file vero e proprio ospitato sul Dropbox del sottoscritto, affinché voi tutti abbiate i filtri sempre aggiornati.

Ciò nonostante i problemi continuano e ogni volta i tempi di attesa per la riattivazione dei servizi che pago regolarmente diventano sempre più lunghi. Per questo motivo ho deciso di acquistare un nuovo dominio di primo livello dove spostare passo dopo passo tutto ciò che riguarda il progetto, compreso il vostro traffico, per questo ho bisogno della vostra collaborazione.

Cosa succede a X Files

Semplice: si cambia casa, spostando il traffico verso il nuovo “noads.it“: un nome, una garanzia! Tutta la descrizione del prodotto e il sito web ufficiali rimangono parte del mio sito personale, tutto il resto (file, redirect, varie ed eventuali) trovano ora spazio su questo nuovo dominio che in futuro potrà essere utilizzato per ospitare anche altro inerente lo stesso argomento.

Già da qualche tempo i collegamenti di sottoscrizione nel sito web ufficiale (dove ho cercato di inserire tempestivamente un avviso di problemi lato provider) puntano a noads.it e parte del traffico si è spostato verso il nuovo lido, molto altro rimane però allacciato al vecchio dominio che continuerà in ogni caso a funzionare. Ho cercato di alleggerire così il carico sul vecchio provider e puntare tutto sul nuovo sito ma senza arrivare all’obiettivo finale completo. Ho già segnalato i nuovi indirizzi e riferimenti per l’aggiornamento della pagina sottoscrizioni di Adblock Plus e del relativo comportamento dei componenti aggiuntivi su Google Chrome, Firefox, Opera e Internet Explorer, non resta che attendere.

Quello che voi potete fare è segnalarmi eventuali anomalie e nel caso possiate farlo (siate capaci e ne abbiate voglia / tempo) eliminare la vostra attuale sottoscrizione a X Files e rifarla dalla pagina ufficiale così da essere sicuri di sfruttare il nuovo spazio web.

Il modulo HWS è finalmente a regime

Harmful WebSitesHarmful WebSites (ridotto a HWS per comodità) ha preso vita lo scorso 8 agosto dopo un brevissimo disservizio dovuto al caricamento errato online della prima vera versione di lista stabile, qui la notizia: gfsolone.com/hws-breve-disservizio-e-nuova-versione-di-lista.html.

Sono molto soddisfatto e i filtri forniti quotidianamente dalla community di malwaredomainlist.com compongono un’ottima barriera dai siti web infetti che potrebbero quindi causare problemi al vostro browser e alla vostra macchina. L’aggiornamento viene tipicamente effettuato e rilasciato in concomitanza con quello della lista stabile di X Files.

Presto realizzerò un piccolo articolo ad-hoc per spiegarvi come viene realizzata in maniera automatizzata il modulo HWS per Adblock Plus e compatibili.

Restate informati: la newsletter

Ciò che più mi preoccupa in questi casi è la comunicazione nei vostri confronti. Nonostante io cerchi di tenere aggiornato il sito web ufficiale della lista e il forum di Mozilla Italia qualcuno può sempre sfuggire. Per questo motivo ho deciso di rendere disponibile un nuovo box all’interno della pagina di X Files attraverso il quale ognuno di voi potrà lasciare il proprio indirizzo di posta elettronica:

Nuovo box Newsletter

Nessun sistema automatico di registrazione, nessuna lista pubblica di quegli indirizzi. Il box serve a raccogliere in un foglio di calcolo sul mio Google Docs ciò che voi inserite. Sarà mia cura collocarvi a quel punto in un apposito gruppo di posta elettronica che riceverà questo tipo di aggiornamenti solo in caso di necessità. Nessuna tipo di pubblicità, sarebbe contro l’idea stessa di X Files.

Vi prego di “iscrivervi” così da essere sempre informati su ciò che accade. Personalmente ridurrò al minimo sindacale le comunicazioni cercando di riportare solo ciò di cui avete realmente necessità riguardo il progetto X Files.

E visto che al peggio non c’è ma fine, Google continua a togliere l’interruttore a casaccio, segno evidente che qualcosa sta cambiando, non necessariamente in meglio.

Adblock Plus è stata rimossa da Google Play e non è attualmente scaricabile e installabile sui vostri dispositivi Android a meno che non l’abbiate precedentemente installata o non passiate dalla pagina web, come riportato nell’articolo di Palant qui: adblockplus.org/blog/adblock-plus-for-android-removed-from-google-play-store

Nello stesso articolo si parla anche di un nuovo aggiornamento disponibile già da domani, che ovviamente andrà lanciato manualmente in quanto l’applicazione non troverà più alcun aggiornamento dallo store di Google.

Questo non impatta assolutamente sul corretto funzionamento di Adblock Plus per Firefox Android e dei relativi filtri contenuti in X Files ma fa comunque ragionare sulla facilità con la quale Google toglie vita a qualsiasi cosa passi per i suoi lidi, la stessa EFF ne parla criticando questo comportamento sempre più da monopolista a decisioni unilaterali che troppo spesso non interpellano gli utenti che hanno fatto di Big G. quello che è oggi.

Adblock Plus ed il suo staff pubblicano notizie e novità sulla loro pagina Facebook e sul loro blog che vi consiglio caldamente di seguire se ci tenete all’argomento tanto quanto il sottoscritto ;-)