Appunti di sviluppo e varie

Archive for February, 2009

Pere ‘a la Gentoo

Wednesday, February 25th, 2009

Per tenermi su il morale mi sto tuffando nelle librerie PEAR che finora ho bellamente snobbato e che invece qualche cosa di interessante ce l’hanno

Più che altro volevo vedere se c’era qualche libreria carina per generare PDf al volo senza royalties. Ho visto che c’è una File_PDF derivata dalla famigerata FPDF. FAmigerata perché appena c’avevo speso del tempo nel posto dove lavoravo prima ho incocciato nel problema dell’encoding e del multicell (il nome che quella libreria usa per indentificare il paginatore che fa il wrapping del testo). In sostanza se gli si passava testo in utf8 non faceva più il wrapping e le righe diventavano lunghe a piacere -_-’

Adesso ne ho installato il successore e pare funzionare.

Pensa te come mi diverto io

P.S.

Da notare che la Gentoo ha tutti i pacchetti PEAR in portage, però li sbatte in /usr/share/php invece che in /usr/lib/php5/PEAR dove li metterebbe pear (l’eseguibile)

Base64.decode Base64.encode

Tuesday, February 17th, 2009

Bella cosina che son riuscito a fare oggi: devo archiviare dei file in campi BLOB di MySQL, rendendoli visibili da una applicazione Flex.

Il mio problema era recuperarli senza farli passare mai per il filesystem, in modo che rimanessero sempre archiviati sotto forma di AES_ENCRYPT Ci sono riuscito abbastanza comodamente facendo mandare da Weborb (php) un campo base64_encode`d` che Flex riceve, decodifica e trasforma in ByteArray, passandolo poi come argomento ad un FileReference (metodo save())

il codice è sostanzialmente:

private function getFileSingolo(event:REsultEvent):void{
            var base64Dec:Base64Decoder;
            base64Dec = new Base64Decoder();
            base64Dec.decode(event.result.contenuto);
            var fileRef:FileReference = new FileReference();
            fileRef.save(base64Dec.toByteArray(),event.result.nomeFile);
}

A questo punto manca solo la query in da eseguire tramite php:

$query="SELECT SQL_CACHE
nomeFile, AES_DECRYPT(contenuto,$password) as contenuto
FROM Documenti
WHERE Id = $idFile";
while($riga=$risultato->fetch_array(MYSQLI_ASSOC)){
    $array = $riga;
    $array['contenuto'] = base64_encode($riga['contenuto']);
}
return $array;

Bello eh? :)

Problemi:

Funziona solo da Flashplayer 10 in poi e si può fare un traserimento per volta, pena un runtime error

Ovviamente non è farina del mio sacco:

Post originale

Un po’ di direttive per proteggere cartelle con l’AuthType Basic di apache

Tuesday, February 17th, 2009

Copio e incollo da questa ottima guida

Per un file solo:

<Files login.php>
Order deny,allow
Deny from all
AuthName "htaccess password prompt"
AuthType Basic
AuthUserFile /home/askapache.com/.htpasswd
Require valid-user
</Files>

Per Più files

<FilesMatch "^(exec|env|doit|phpinfo|w)\.*$">
Order deny,allow
Deny from all
AuthName "htaccess password prompt"
AuthUserFile /.htpasswd
AuthType basic
Require valid-user
</FilesMatch>

network/netmask pair

Order deny,allow
Deny from all
Allow from 10.1.0.0/255.255.0.0

Per IP

Order deny,allow
Deny from all
Allow from 10.1.2.3

Per più IP

Order deny,allow
Deny from all
Allow from 192.168.1.104 192.168.1.205

Per Varie Subnet

Order deny,allow
Deny from all
Allow from 10.1
Allow from 10 172.20 192.168.2

Per Range di IP

Order deny,allow
Deny from all
Allow from 10.1.0.0/16

Indirizzi e subnet IPv6

Order deny,allow
Deny from all
Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

Deny subdomains

Order Allow,Deny
Allow from apache.org
Deny from wireshark.apache.org

Da un IP senza password e da dovunqe altro con password

Order deny,allow
Deny from all
AuthName "htaccess password prompt"
AuthUserFile /home/askapache.com/.htpasswd
AuthType Basic
Require valid-user
Allow from 172.17.10.1
Satisfy Any

Metto su una sitemap

Tuesday, February 10th, 2009

Ho visto che vengo indicizzato ormai abbastanza in alto.  Mi pare sia giunto il momento di mettere su una sitemap decente e rispettosa degli standard, almeno per quel paio di guide che vedo essere consultate (osservando i log)

SSH tunnelling, SSHfs, XForwarding

Tuesday, February 10th, 2009

Causa vari fattori in questi giorni mi sono fatto una cultura riguardo le magie permesse dall’ssh.

Cominciamo col tunnelling di una porta a piacere:

ssh -L 5903:localhost:5903 motosauro@motosauro.net

A quel punto basta puntare un vncViewer sulla 5903 di 127.0.0.1 e il gioco è fatto :D

Altro trucchetto stupendo è l’X forwarding:

ssh -fTCX motosauro@motosauro.net midori

e midori appare nel suo splendore (e forte instabilità), così la cache è quella della macchina remota, il dns pure e via così

Poi c’è SSHfs (che in realtà è «solo» un wrapper per sftp)

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults 0 0

in fstab dopo aver installato il pacchetto ed ecco la directory remota disponibile per qualsiasi applicazione, anche senza supporto a ftp o sftp, il tutto attraverso un canale criptato. Meglio di «Condividi Cartella» di Winzozz, eh? :D