La responsabilita’ di essere genitori

18
ott
1

Ora che sono padre, so che mi aspettano grandi responsabilità. Ecco una poesia che ho visto in pediatria ad Urbino, e che ho ritrovato questa sera inciampando su questa pagina (in inglese). Qualcuno sa chi è l’autore?

DSCN1796

Hai capito, babbo?

Cosa impara un bambino?

Se un bambino vive nel criticismo,
impara a condannare.

Se un bambino vive nell’ostilità,
impara a litigare.

Se un bambino viene ridicolizzato,
impara ad essere timido.

Se un bambino vive nella vergogna,
impara a sentirsi in colpa.

Se un bambino vive nella tolleranza,
impara ad essere paziente.

Se un bambino vive nell’incoraggiamento,
impara la fiducia.

Se un bambino vive nella lode,
impara ad apprezzare.

Se un bambino vive nell’equità,
impara la giustizia.

Se un bambino vive nella sicurezza,
impara ad avere fede.

Se un bambino vive nell’approvazione,
impara ad apprezzare sè stesso.

Se un bambino vive nell’accettazione e nell’amicizia,
impara a trovare amore nel mondo.

SSH forwarding per raggiungere un server protetto da firewall

11
set
0

Disney - Space Shot (Explored)Mi è stato commissionato un lavoro piuttosto importante, e il server presenta diverse misure di sicurezza: bisogna usare solo SSH e l’accesso è possibile solo a IP selezionati; dato che io ho l’IP dinamico era impossibile darmi l’accesso. Per fortuna SSH mette a disposizione un’opzione per il forwarding, e quindi è sufficiente che sull’IP che può accedere al server (da qui in poi “ponte”) giri un server SSH.

Se sul “ponte” il sistema operativo a disposizione è Windows, niente paura: esiste un’installazione minimale di Cygwin che ci permette di avere un server SSH su Windows insieme alle UNIX utilities necessarie, SSH for Windows. Una volta eseguita l’installazione, compare un avviso che ci esorta a creare un file group e un file passwd: come spiega anche questa guida, bisogna immettere questi comandi nel prompt (sostituendo nome_utente_windows con un utente della macchina windows):

cd C:\Programmi\OpenSSH\etc

mkgroup -l >>C:\Programmi\OpenSSH\etc\group

mkpasswd -l -u nome_utente_windows >>C:\Programmi\OpenSSH\etc\passwd

Ora bisogna rendere raggiungibile il “ponte” dalla nostra postazione: basta creare una regola sul router e aprire una porta sull’eventuale firewall software: di solito c’è quello di Windows abilitato. Volendo si potrebbe scegliere una porta diversa dalla 22 per incrementare il livello di sicurezza.

A questo punto siamo pronti per lanciare la connessione dalla nostra macchina di partenza per creare il nostro forward:

ssh nome_utente_windows@ponte -L 10022:server_irrangiungibile:22

“Ponte” va sostituito con l’IP del ponte, e “server_irraggiungibile” con l’IP del… server. Dobbiamo anche scegliere una porta da aprire sul nostro punto di partenza sulla quale far confluire il traffico verso il nostro server irraggiungibile: io ho scelto 10022 ma si può scegliere qualsiasi porta libera che non sia sotto la 1024 (solo root può aprire porte sotto quel limite). Mantenendo aperta la finestra del terminale, dobbiamo aprirne un’altra per poter finalmente lanciare la nostra connessione verso il server di destinazione:

ssh nome_utente_sul_server_irraggiungibile@localhost -p 10022

Morale della favola? Abbiamo sfruttato un computer con Windows per raggiungere un server Linux a noi inaccessibile: una bella sensazione.

Custodire dati cifrati con PHP

23
ott
2

Sto realizzando il mio CRM personale basandomi sul mio framework STOOPHP, e mi sono trovato nella necessità di memorizzare le password degli FTP dei clienti. Per una politica di correttezza non ho mai conservato le password in chiaro all’interno di un database, e mi sono sempre avvalso di hashing. Ma l’hashing è a senso unico e quando si dimentica la password bisogna per forza impostarne una nuova (diffidate dei siti che custodiscono la vostra password e sono pronti a rispedirvela quando desiderate). La mia esigenza è quella di poter visualizzare quali sono le password facendo in modo che nel database però siano criptate. Pertanto avevo bisogno di un algoritmo che permettesse anche il ritorno, per mezzo di una chiave di codifica (crittazione a due vie). La classe Crypt faceva al caso mio e ho implementato il meccanismo in questo modo:

  • Al login viene salvata in sessione la password del mio CRM da usare come chiave di codifica
  • Nella funzione che viene invocata ad ogni inserimento e modifica in una entry della tabella dei clienti (che corrisponde ad una classe nel mio framework STOOPHP) eseguo la cifratura della password
  • Nella funzione che viene invocata al momento di visualizzare un’entry della tabella eseguo la decrittazione

I dati sono al sicuro ma dal punto di vista dell’utente del CRM non è cambiato nulla. Mi ci è voluto tanto per scriverlo quanto per farlo, grazie alla programmazione orientata agli oggetti.

Alcuni suggerimenti per chi vuole la sicurezza estrema in base a ciò che al momento so:

  • Usare HTTPS
  • Visualizzare la password in un’immagine stile captcha

Suhosin per migliorare la sicurezza di PHP

29
mag
0

Installando PHP sulla mia Ubuntu mi sono accordo che veniva usata anche una patch chiamata Suhosin. Permette di aumentare la sicurezza delle applicazioni. Fonte: pianeta.com (via tuxfeed)

Come mostrare gli errori di PHP

9
mag
0

Anche se sviluppo i miei siti in PHP sulla mia macchina, capita che caricandoli sul server di produzione ci siano degli errori che si verificano per una differente configurazione. Il problema è che di solito i server di produzione non mostrano gli errori di PHP per motivi di sicurezza. Per poterli vedere, è possibile aggirare l’impostazione del file php.ini con la seguente direttiva:

ini_set('display_errors', 'On');

E’ giusto anche ricordare che non è sempre possibile usare la funzione ini_set.