Mag 21 2009

Riattivare la ricezione SMS su sim Vodafone

Qualche settimana fa, la mia sim Vodafone che utilizzo con l'iPhone ha deciso, di punto in bianco, che non era più il caso di ricevere SMS. Così, di punto in bianco e senza nessun apparente motivo.

Ho chiamato l'operatore del call-center il quale mi ha riportato di inoltrare i seguenti comandi alla sim:
##002#invio
##330*1234#invio
Dopo di ché, ha ripreso a ricevere senza problemi.

Spero solo di non averne più bisogno in futuro!


Apr 27 2009

Resettare la password di root su un sistema GNU/Linux

Può capitare, "a volte", di appuntare la password di root di un sistema GNU/Linux su un foglietto e, essendo Murphy sempre in agguato come una carogna, di perderla.

Tralasciando il fatto di tentare la sorte scavando all'interno della nostra memoria soprattutto quando la password in questione è stata volutamente creata in modo casuale includendo lettere, numeri e caratteri speciali, una delle possibili strade da percorrere è quella di tentare di resettare tale password utilizzando la consolle di ripristino.

Una interessante guida (in inglese ma con immagini esplicative) è reperibile qui ed anche se la stessa fa riferimento ad un sistema Ubuntu, la stessa procedura funziona anche su altre distribuzioni a patto di non aver impostato una password anche sul Boot Loader.


Gen 21 2009

Usare l’HUAWEI E270 con altri gestori

L'Huawei E270 è un modem usb GPRS/UMTS/HSDPA che viene venduto dai vari gestori presenti in Italia in modo "brandizzato" e cioè con un software personalizzato per il solo funzionamento delle schede del gestore.
Nel mio caso, ho "acquistato" il malefico oggetto con i punti Vodafone One e relativa scheda dati.
Il problema che mi sono posto è stato quello di vedere che altri gestori offrivano tariffe più vantaggiose rispetto a quelle offertemi dalla Vodafone.

Percui mi sono messo alla ricerca di informazioni su come far funzionare il malefico aggeggio con le schede di altri gestori in quanto lo stesso si rifiutava di leggere (giustamente?) schede non Vodafone.

Continue reading


Ott 14 2008

MySQL – Importare dati da riga di comando

Quante volte è capitato di dover caricare una quantità enorme di dati in formato CSV su un database MySQL e phpMyAdmin & C pensano che il file sia troppo grande per essere caricato e non vuole proprio in nessun modo prenderselo in carico?

Solitamente in questi casi si procede allo split dei dati presenti su più file avendo l'accortezza di fare attenzione a riportare tutto correttamente.
Tuttavia, esiste anche un'altra strada che si può seguire ed è quella di caricare il file tramite la consolle a riga di comando di MySQL.

Certo, è necessario l'accesso in shell alla macchina, però se la quantità di dati è enorme credo proprio che sia una macchina a cui possiamo, in qualche modo, accedere.

Una guida dettagliata che spiega tutti i procedimenti è reperibile sul Blog Ethecs su questo post.

Fonte: Etechs.


Ott 7 2008

7 consigli per scrivere applicazioni PHP in sicurezza

Oggi è passato sulla ml del GrUSP un interessante articolo targato IBM che riporta alcune regole (ovviamente non esaustive) per evitare alcuni problemi di sicurezza nelle applicazioni scritte in PHP.

Ringrazio Maurizio Cavalletti di Akabit per l'interessante link.


Feb 15 2008

Il Bignami per le Espressioni Regolari

Regular Expressions Cheat Sheet

Quante volte è capitato di dover mettere mano a quella diavoleria delle espressioni regolari!
E, soprattutto, quante volte, dopo aver tirato giù tutto il calendario cinese, abbiamo pensato che: "ma una guida a portata di mano, no è!?"

Beh, il problema è stato risolto da ILoveJackDaniel's che ha creato un bignami con le principali regole delle espressioni regolari che è possibile scaricare e stampare (sul sito dell'autore è disponibile sia in pdf che in png).
Il bignami è inglese.

Per chi, invece, preferisce qualcosa scritto in italiano, lo può trovare qui.

Fonte: DElyMyth.


Feb 8 2008

Creare un’applet firmata in Java

Nei giorni scorsi ho ripreso un pò di programmazione in Java, così, per fare due prove e vedere se finalmente riuscivo a creare un'applet in Java.

Anche se alcuni potrebbero pensare che creare applet in Java da utilizzare sul Web faccia molto web 1.0 posso solo dire che, in taluni casi, è l'unico modo per fare delle operazioni automatizzate sul client su cui girerà l'applet stessa 🙂

Tralascio di descrivere che cosa sia un'applet Java (per cui rimando alla relativa voce su Wikipedia) per soffermarmi, innanzi tutto, sulle (giuste) limitazioni.

Quando un'applet viene eseguita all'interno di un Web Browser questi avrà a accesso ad un'area ben delimitata definita sandbox in modo che un (eventuale) malintenzionato non possa accedere alla macchina in locale, non possa effettuare chiamate a procedure che non risiedano sul dominio stesso da cui è stato eseguito, ecc.

Nella stragrande maggioranza dei casi quanto messo a disposizione basta e avanza.
Il problema sorge, però, se si debba effettuare legittimamente delle operazioni sulla macchina client che ha mandato in esecuzione l'applet stessa.
Poniamo, ad esempio, di voler mandare in esecuzione un programma sulla macchina client.

Innanzi tutto dobbiamo preoccuparci di scrivere il codice per l'applet:

  1. <title>Prova applet</title>
  2. </head>
  3. <applet code=applet.class
  4. archive=applet.jar width=300 height=150></applet>
  5. </body>
  6. </html>

Lo salviamo come applet.java e lo compiliamo con il comando:

javac applet.java

cosi da avere a disposizione il bytecode (applet.class).

A questo punto creiamo il file JAR contenente i vari componenti necessari con il seguente comando:

jar cvf applet.jar applet.class

Scriviamo una semplice pagina HTML con, ad esempio, questo codice:

A questo punto se tentiamo di accedere al file da un qualunque browser che supporti Java otteremo, nel riquadro dove dovrebbe essere visualizzata l'applet, una laconica "pagina morta"

Errore esecuzione applet

Il perché è presto detto.

Infatti basta andare a vedere cosa ci ha scritto il JRE sulla console:
java.security.AccessControlException: access denied (java.io.FilePermission c:\windows\notepad.exe execute)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkExec(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at applet.init(applet.java:16)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Giustamente si è incavolato perché abbiamo tentato di accedere al sistema in locale!

Per ovviare, abbiamo necessità di firmare digitalmente il file JAR che abbiamo creato.
A questo punto si presentano due possibilità:

  1. Acquistiamo un certificato ufficiale e provvediamo a firmare il nostro applet;
  2. Generiamo un certificato generico auto-firmato a costo zero.

Per non appesantire questo post, per la generazione del certificato rimando a quest'altro mio articolo.

Provvediamo, a questo punto, a firmare il nostro file JAR eseguendo il seguente comando:

jarsigner applet.jar nomedellachiave -signedjar applet.jar.sign

Ci verrà richiesto di inserire la password della chiave che prontamente faremo confermando con un bel invio.

A questo punto provvediamo a modificare il codice della pagina HTML sostituendo applet.jar con applet.jar.sign.

Apriamo nuovamente il file HTML con un browser web.
Questa volta verrò visualizzato un messaggio con il quale veniamo avvisati che il certificato digitale utilizzato per firmare l'applet non viene riconosciuto come attendibile:

Notifica certificato applet

Confermiamo comunque e, dopo qualche istante, vedremo aprirsi magicamente il Notepad 😀

Per maggiori informazioni è possibile far riferimento alla guida della Sun sulle Applet reperibile a questo indirizzo.


Gen 30 2008

Generare un certificato per firmare applet Java

Avendo la necessità di fare delle prove con delle applet Java che devono accedere alle risorse del sistema locale su cui vengono eseguite è sorta la necessità di doverle firmare digitalmente in quanto solo così possono "uscire" dalla sandbox in cui vengo rinchiuse quando sono in esecuzione.

Facendo un pò di ricerche su Internet ho trovato diversi documenti in inglese e pochissimi (tanto per cambiare) in italiano percui, a mia futura memoria, riporto di seguito i procedimenti per creare un certificato digitale auto-generato per firmare le proprie applet scritte in Java.

I comandi da eseguire sono i seguenti:

keytool -genkey -alias nomeDellaChiave

Verrà richiesto di inserire alcune informazioni (le cui spiegazioni esulano dallo scopo di questo articolo). Vediamo cosa inserire:

Enter keystore password:

Inserire una password di almeno 6 caratteri. Per le necessità va bene anche 123456

What is your first and last name?
[Unknown]:

Inserire il proprio nome e cognome. Esempio Mario Rossi

What is the name of your organizational unit?
[Unknown]:

Inserire il nome del servizio. Esempio Divisione Assistenza

What is the name of your organization?
[Unknown]:

Inserire il nome dell'azienda. Esempio Banca del Sapone S.p.A.

What is the name of your City or Locality?
[Unknown]:

Inserire il nome della città. Esempio Roma

What is the name of your State or Province?
[Unknown]:

Inserire le due lettere della provincia. Esempio RM

What is the two-letter country code for this unit?
[Unknown]:

Inserire le due lettere della nazione secondo la notazione ISO-3166. Esempio IT

Is CN= Mario Rossi, OU=, O=Banca del Sapone S.p.A., L=Roma, ST=RM, C=IT correct?
[no]:

Inserire yes (nella versione italiana del JDK bisognona inserire si) e confermare con invio.
Verrà visualizzato:

Enter key password for <nomeDellaChiave>
(RETURN if same as keystore password):

Si può confermare direttamente con invio.

Giunti a questo punto conviene memorizzarsi anche su un file separato la chiave generata (ed archiviarla in un posto "sicuro") con il comando:

keytool -export -alias nomeDellaChiave -file nomeDelFile.crt

Ora è possibile firmare digitalmente i nostri progetti con il certificato appena creato.


Nov 30 2007

Sbloccare i DB Access negli allegati delle e-mail su Outlook

Devo ricordarmi che le vie di Redmond sono infinite come anche quelle della mente di alcuni "progect menager" che hanno deciso di bloccare, di default, l'accesso agli allegati con estensione "mdb" (Microsoft Access) all'interno di Microsoft Outlook.

Ora, capisco perfettamente che bloccare l'accesso agli allegati delle e-mail di OutLook con alcune estensioni, per così dire, eseguibili, ci può stare, ma bloccare anche i DB in formato Access mi sembra troppo!

Comunque, per risolvere la questione è possibile creare una chiave di registro di tipo Stringa (per fortuna su CURRENT_USER) dal nome "Level1Remove" e con valore "mdb" (sia la chiave che il valore vanno inseriti senza le ") dentro la chiave "HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\Outlook\Security".
Dove XX è la versione di Outlook.

Per semplicità, riporto di seguito le versioni delle chiavi per:

Outlook 2000:

  1. [HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\9.0\\
  2. Outlook\\Security]
  3. "Level1Remove"="mdb"

Outlook XP:

  1. [HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\10.0\\
  2. Outlook\\Security]
  3. "Level1Remove"="mdb"

Outlook 2003:

  1. [HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\11.0\\
  2. Outlook\\Security]
  3. "Level1Remove"="mdb"

E' possibile, inoltre, "abilitare" anche altre estensioni: basta farle seguire da un ";" come nell'esempio:

  1. "Level1Remove"="mdb;zip"

Nov 25 2007

Verificare la presenza del proprio server SMTP nelle black-list

Molto spesso (purtroppo) capita che inviando una mail questa venga rifiutata dal server SMTP destinatario perché quello usato da noi è stato incluso per qualche motivo (leggi troppo spam inviato da qualche imbecille) in una delle tante black-list usate dai provider.
Il problema grosso è risalire in quale dei servizi di black-list è stato inserito il nostro server SMTP preferito!
Abbiamo a disposizione due possibili strade:

  1. Controllare uno ad uno ogni servizio di black-list (!);
  2. Utilizzare uno dei tanti servizi che permettono il check multiplo.

Quello che ci interessa di più è la seconda ipotesi.
Tra i tanti servizi presenti in rete (basta fare delle ricerche con le chiavi "Multi-DNSBL check" e "Multi-RBL check") vorrei segnalarne due con i quali mi sono sempre trovato bene: