Oramai convinto di dover provare ad usare cocoon, ho ben deciso di metterlo su rodio – che non per niente mi dovrebbe fare da webserver casalingo.
Installarlo su freebsd è stato molto semplice (c’è il port in /usr/ports/www/cocoon , attualmente versione 2.1.11_1). Meno semplice è stato leggere tutte le vaccate di java, ma amen.
L’installazione si conclude con un ottimo spam, che spiega per filo e per segno il da farsi.
Cocoon is now installed in /usr/local/cocoon. In order to be able to run Cocoon, please add the following line to /etc/rc.conf: cocoon_enable="YES" If you wish to start cocoon right now, invoke the startup script with `/usr/local/etc/rc.d/cocoon.sh start' and point your web browser to the default home page at http://localhost:8888/ where you may read the documentation and test the samples. For this control script to run seamlessly, it is recommended to increase the maximum length of commands displayed by ps(1). Please append the following setting to /etc/sysctl.conf: # Do not truncate command line arguments in ps(1) listing kern.ps_arg_cache_limit=10000 This setting will take effect at next reboot, however it is possible to have immediate effect with the following command as root: # sysctl kern.ps_arg_cache_limit=10000 If you wish to skip this setting, please note that the `stop', `restart' and `status' will not function properly with cocoon.sh. Enjoy!
Altre opzioni (“avanzate”):
If you need to pass special options to Java, please set the cocoon_flags option in /etc/rc.conf, see examples below: # Prevent Java from opening an X11 display cocoon_flags="-Djava.awt.headless=true" # Increase memory limit of the Java virtual machine cocoon_flags="-Xms32m -Xmx256m" # Run Java with remote debugging turned on on port 8000 cocoon_flags="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" To specify the java version to use, please use cocoon_java_version: cocoon_java_version="1.4"
Boh. Per ora ho poco da dire: puntato un web browser sulla 8888 ho visto quel che volevo vedere. In /usr/local/cocoon c’è un po’ tutto.
Ora mi toccherà studiarlo. Ma almeno funge – anche se direi sul server fuffa; in /usr/ports/www/jetty
c’è un server un po’ più serio.
Ok, weekend nel marasma delle webapplication.
Ricapitolo un po’…
* Passaggi dati non numerici (potenzialmente massicci) in POST, ritorno in GET (per forza).
* Controllo in entrata di pagina (isset, is_numeric, blablabla, check di esistenza sul db).
* Funzioni di escape sui dati da inserire nel db. (pg_escape_string, mysql_real_escape)
* Funzioni di escape in output sul codice html (giusto per evitare scriptini e tag interpretabili): htmlentities.
* Funzioni stripslashes per togliere gli escape nel db in output.
* Check con regexp (preg_match) sulle stringhe inserite, ocio ai filename con rischio per gli header serviti.
Un po’ di storie dal php security consortium.
Manuale: http://doc.async.com.br/jpgraph/html/index.html
Controllo: andare sul proprio php-info.php e controllare se la versione php è corretta e se le GD sono enabled.
Installazione: con Debian è stato facile trovare i pacchetti con dselect (libphp-jpgraph).
Check post-installazione: controllato con dpkg -L dove sono i nuovi file.
idrogeno:/# dpkg -l | grep jpgraph
ii libphp-jpgraph 1.5.2-11+u1
Object oriented graph library for php4
ii libphp-jpgraph-examples 1.5.2-11+u1
idrogeno:/# dpkg -L libphp-jpgraph
/usr/share/jpgraph/jpgraph_error.php
/usr/share/jpgraph/jpgraph_spider.php
/usr/share/jpgraph/jpgraph_canvas.php
/usr/share/jpgraph/jpgraph_pie3d.php
/usr/share/jpgraph/jpgraph_scatter.php
/usr/share/jpgraph/jpgraph_dir.php
/usr/share/jpgraph/jpgraph_bar.php
/usr/share/jpgraph/jpgraph_line.php
/usr/share/jpgraph/jpgraph_log.php
/usr/share/jpgraph/jpgraph_pie.php
/usr/share/jpgraph/jpgraph.php
/usr/share/jpgraph/jpgraph_gantt.php
[...]
/usr/share/doc/libphp-jpgraph/README.gz
[...]
Gli esempi sono in:
/usr/share/doc/libphp-jpgraph-examples/*
Poi ho provato questo esempio includendo i miei percorsi alle librerie:
include ("/usr/share/jpgraph/jpgraph.php" );
include ("/usr/share/jpgraph/jpgraph_pie.php");

All done!
[Edit 090225: Warning; Debian è rimasta a jpgraph versione 1.5.2-11 causa cambio licenza e l'aggiornamento non è presente nei repo non-free. Scaricare dal sito ufficiale la versione aggiornata. ]
Caro $PROFESSORTALDEITALI,
che scassa a random perchè vuole che il suo webbrowser le permetta di vedere gli amati documenti M$Word in maniera integrata, sappia che io non sono d’accordo.
Anzi, a me l’idea che quando clicko un link su una pagina HTML mi si apra l’AdobeReader o M$Excel mi fa davvero cacare, e mi fa ancora più cacare quando persone come Lei vogliono a tutti i costi imporre una soluzione che non solo non serve a niente, ma che fa si che fra 1 mese non siate in grado di distinguere i pulsanti Salva del webbrowser e del programma inline’ato, per l’appunto.
Ha mai provato a chiedere alla COOP se possono mettere sulle confezioni di carote il nome Daucus Carota perchè a lei viene più utile quando le mette in frigo? Agisca, e poi mi faccia sapere cosa ne pensano…
Quindi, caro $PROFESSORTALDEITALI, veda un po’ di andare a pesca e rilassarsi e lasci stare le integrazioni a tutti i costi, anche perchè quando clicka sul linkozzo il suo amato file se lo scarica lo stesso che sennò con la minchia che lo vede sul client con il suo bel programmino.
Grazie per l’attenzione.
More »
Per valutare l’accesso a determinati moduli, Apache segue determinate regole – ferree.
Le regole del modulo d’accesso.
Le direttive Allow e Deny vengono usate per specificare quali client possono e quali non possono accedere al server, mentre la direttiva Order setta lo stato di accesso di default (e decide pure come far interagire Allow e Deny fra loro).
La valutazione dell’accesso generalmente coinvolge tutte le richieste HTTP (PUT, GET, ecc.); si possono comunque gestire i metodi in maniera più precisa grazie alla direttiva <Limit>.
In generale, Order risulta scritto così:
Order Allow, Deny
La precedenza va al secondo elemento (Deny), e quindi a secondo delle direttive Allow from e Deny from otteniamo comportamenti diversi:
- se si verifica solo la condizione Allow l’accesso è permesso.
- se si verifica solo la condizione Deny l’accesso è vietato
- se si verificano entrambe le condizioni l’accesso è vietato
- se non si verifica nessuna condizione l’accesso è vietato
Un esempio tipico è:
<Files ~ “^\.ht”>
Order allow, deny
Deny from all
</Files>
Il file che matcha con la regex fra “”, cioè qualunque file che inizi con la stringa .ht (come .htaccess o .htpassword) vedrà la sua visualizzazione SEMPRE negata.
Una situazione come questa invece:
<Files ~ “^\.ht”>
Order allow, deny
Allow from 192.168.0.0/24
</Files>
Negherà sempre l’accesso ai file .ht* escluso il caso in cui l’accesso avvenga da parte di IP nel range 192.168.0.* (ad esempio la LAN interna).
Come disse il buon HB:
order Allow, Deny
matcha solo Allow => allow
matcha solo Deny => deny
matcha nessuna => deny
matcha entrambe => deny
order Deny, Allow
matcha solo Allow => allow
matcha solo Deny => deny
matcha nessuna => allow
matcha entrambe => allow
Linux
Apache
MySQL
Php (e altro, nel mio caso)
Sottofondo musicale: OST dei Transformer. Da paura.
1. Linkin Park – What I’ve Done
2. Smashing Pumpkins – Doomsday Clock
3. Disturbed – This Moment
4. Goo Goo Dolls – Before It’s Too Late (Sam And Mikaela’s Theme)
5. The Used – Pretty Handsome Awkward
6. HIM – Passion’s Killing Floor
7. Taking Back Sunday – What It Feels Like To Be A Ghost?
8. Styles Of Beyond Feat. Mike Shinoda – Second To None
9. Armor For Sleep – End Of The World
10. Idiot Pilot – Retina And The Sky
11. Julien-K – Technical Difficulties
12. Mutemath – Transformers Theme