Pubblicato il 25/08/12e aggiornato il

Come proteggere una pagina di Blogger con una password di accesso.

Come creare sezioni del blog protette da password di accesso senza che queste risultino visibili nel sorgente pagina.
Una delle richieste più comuni che mi vengono fatte e che vengono postate nei vari forum è quella di creare una sezione del sito di Blogger da rendere accessibile solo a utenti selezionati che ne possiedano la password. Mi sono già occupato del tema di come proteggere contenuti del blog con una password ma una grossa limitazione di tale sistema era che chiunque avrebbe potuto visualizzare la password accedendo al sorgente pagina.

Ricordo che si può visualizzare il codice HTML di una pagina web semplicemente pigiando su Ctrl+U che è una scorciatoia da tastiera che funziona con tutti i browser. La soluzione ottimale di questo problema sarebbe quella di utilizzare un file PHP caricato su un hosting di cui si abbia l'accesso al File Manager. I file PHP non possono essere infatti visualizzati dal navigatore.

Una ottima alternativa è quella di usare la codifica Unescape che ci consente di nascondere la password di accesso mediante l'utilizzo di caratteri diversi da quelli soliti latini a cui siamo abituati. Un esperto di linguaggi di programmazione riuscirebbe comunque a carpire la password decodificandola ma questo vale per quasi tutti i siti visto che nessuno è immune dagli hacker.

Se avete un blog che non parla di temi tecnici e che non sia frequentato da super esperti di informatica questa soluzione per proteggere una o più pagine penso sia oltremodo sicura. Per prima cosa dovrà essere pubblicato il post o la pagina che vogliamo proteggere con password quindi si potrà anche pubblicare una sorta di landing page per coloro che inserissero la password sbagliata. Quest'ultima dovrà essere codificata con lo strumento Unescape Decoder & Encoder. Ricordo che le password sono case sensitive e che quindi dovranno essere considerate anche eventuali maiuscole.

Vediamo per esempio come l'espressione PARSIFAL32, cliccando su Encode, sia stata convertita in

%50%41%52%53%49%46%41%4C%33%32%20

come mostrato dallo screenshot seguente

decoder-encoder-unicode

Per inserire una password di protezione a una certa pagina del blog occorre andare su Modello > Modifica HTML > Procedi e cercare la riga </head>. Subito sopra si incolla il seguente codice

<!-- Accesso con Password Inizio -->
<b:if cond='data:blog.url == &quot;URL_POST_RISERVATO&quot;'>
<script language='javascript'>
//<![CDATA[
var accesso = prompt("Digita la password per accedere alla pagina.")
if (accesso!="document.write( unescape( 'PASSWORD_CODIFICATA' ) );")
{location.href='URL_PAGINA_ERRORE'}
else
{alert('La password è corretta. Accesso consentito')}
//]]>
</script></b:if>
<!-- Accesso con Password Fine -->

dove le espressioni in blu possono essere personalizzate. In URL_POST_RISERVATO e in URL_PAGINA_ERRORE vanno incollati gli indirizzi della pagina da proteggere e quello della landing page per che non riuscisse a passare la protezione della password. Ricordo che se avete un dominio gratuito vale a dire del tipo blogspot.com e volete proteggere un articolo, va inserito l'URL canonico e non quello localizzato. In sostanza dovete sostituire .it con .com nell'indirizzo.

Al posto di PASSWORD_CODIFICATA va incollata la password codificata con il tool illustrato in precedenza. Come esempio vi invito a provare a accedere alla
Vedrete una scheda bianca con un modulo per inserire la password

inserimento-password-blogger

che ricordo essere PARSIFAl32. Solo se la digiterete correttamente, dopo aver cliccato su OK, vi potrete accedere, altrimenti sarete indirizzati a questa landing page. Per facilitare ulteriormente il compito di chi voglia utilizzare questo hack vi riporto il codice che ho effettivamente inserito nel template

<!-- Accesso con Password Inizio -->
<b:if cond='data:blog.url == &quot;http://nivo-slider-demo.blogspot.com/2011/04/post-cui-si-puo-accedere-solo-mediante.html&quot;'>
<script language='javascript'>
//<![CDATA[
var accesso = prompt("Digita la password per accedere alla pagina.")
if (accesso!="document.write( unescape( '%50%41%52%53%49%46%41%4C%33%32' ) );")
{location.href='http://nivo-slider-demo.blogspot.com/2011/04/pagina-di-errore.html'}
else
{alert('La password è corretta. Accesso consentito')}
//]]>
</script></b:if>
<!-- Accesso con Password Fine -->

dove URL e password sono stati colorati di rosso. Chi accederà al sorgente pagina non potrà visualizzare la password, la potrà scoprire solo decodificandola con un tool come quello che ho indicato. Tale procedura ritengo però che sia a conoscenza solo di persone esperte di linguaggi di programmazione. Per la stragrande maggioranza dei navigatori la password risulterà assolutamente non decifrabile.  Concludo ricordando che se volete proteggere anche altre pagine statiche o altri post non vi resta che incollare nel modello un altro codice come il precedente con un nuovo indirizzo.

Aggiornamento importante: Solo a articolo ultimato mi sono accorto che il sistema non funziona e che la password corretta da inserire nella demo di prova sarebbe stata

document.write( unescape( '%50%41%52%53%49%46%41%4C%33%32' ) );

Ho perso un'ora di tempo per creare un meccanismo che non funziona, pazienza. Per chi voglia inserire una password per il momento è bene che faccia sempre riferimento al post precedente




4 commenti :

  1. Ciao Ernesto, ma secondo te bloccando una pagina del blog (blogger) con il sistema che hai spiegato in questo post, si evita lo spam? Nella pagina che vorrei bloccare ci sono form (generati con google drive) per l'invio di informazioni e richieste. Non ho trovato nulla per inserire un captcha in un modulo google e questa tua soluzione mi sembra l'unica strada. Grazie al solito per la tua disponibilità!!

    RispondiElimina
    Risposte
    1. @# Può essere una soluzione ma si può impedire a Google di indicizzarla. Non ho notizie certe al riguardo.

      Elimina
  2. ciao ma per avere più pagine con password basterà copiare il codice più volte cambiando il link e ovviamente password?

    RispondiElimina
    Risposte
    1. Certo. Devi aggiungere un blocco di codice per ogni pagina che vuoi proteggere
      @#

      Elimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti. Se ti ho aiutato con il post o con le risposte ai commenti condividi su Facebook o su Twitter. Grazie.