Archive for July, 2005

Web architecture and jspArt

Wednesday, July 13th, 2005

These several weeks have been rather fast paced. Even though I can’t dedicate enough time on my project I’ve developed some thoughts on it. I still like my filter based controller, what I think I did wrong is that at the current moment I use my DAO’s directly in the Actions. This is fundamentally wrong even though it gets the work done and is ok for this first phase of development. I intend to wrap these things in the Managers and stop using DAO’s and DAO factories directly in that layer. Next change I plan to implement is a validation framework. I would like to use the annotations in the Java5 platform to acomplish this. Spring and OR via Hibernate comes right after ūüôā

Top Ten OWASP

Monday, July 11th, 2005

Cosa √ɬ® OWASP? Il progetto Open Web Application Security Project (OWASP) √ɬ® stato creato per aiutare le aziende e le organizzazioni a capire e migliorare la sicurezza delle loro applicazioni e dei servizi web. La Top Ten √ɬ® stata creata per focalizzare l?attenzione verso le vulnerabilit√ɬ† pi√ɬĻ critiche. La sicurezza delle applicazioni web √ɬ® diventata un argomento fondamentale dal momento che moltissime aziende cercano di rendere disponibili in rete un numero sempre pi√ɬĻ crescente di contenuti e servizi. Nello stesso tempo, gli hacker hanno rivolto l?attenzione verso gli errori di sviluppo comunemente inseriti dagli sviluppatori. Vediamo insieme questa lista :

Le vulnerabilit√ɬ† pi√ɬĻ critiche delle Applicazioni Web [guide]
  • A1
    Unvalidated Input
    Le informazioni ricevute a seguito di una richiesta, non vengono validate dall?applicazione web. Questa tecnica può essere utilizzata per accedere alla parte di backend attraverso l?applicazione web in questione.
  • A2
    Broken Access Control
    Non vengono applicate restrizioni appropriate su quello che possono fare o meno gli utenti. Un utente malintenzionato può accedere ad account di altri utenti, visualizzare file sensibili o utilizzare funzionalità non autorizzate.
  • A3
    Broken Authentication and Session Management
    Le credenziali degli account e i token di sessione non sono protetti in modo adeguato. In questo modo possono essere compromesse le password, le chiavi, i cookie di sessione oppure altri token che permettono di bypassare le restrizioni di autenticazione per poter assumere un altra identità.
  • A4
    Cross Site Scripting (XSS) Flaws
    L?applicazione web può essere utlizzata come strumento per sferrare un attacco sul browser dell?utente finale. Con questa vulnerabilità è possibile carpire il token di sessione, attaccare la macchina locale, oppure accedere ai contenuti protetti dell?utente attaccato.
  • A5
    Buffer Overflows
    In alcune applicazioni web, alcuni componenti non eseguono un controllo formale sui caratteri in ingresso di alcune forme di linguaggio particolari. Ciò causa un crash dell?applicazione, fornendo la possibilità di prendere controllo di un processo. Queste componenti possono essere CGI, librerie, drivers e componenti dell?application server web.
  • A6
    Injection Flaws
    Alcune applicazioni web scambiano dei parametri quando accedono a parti esterne del sistema o al sistema operativo installato in locale. Se un utente malintenzionato riesce ad incapsulare dei comandi dannosi all?interno di questi parametri, il sistema esterno può eseguirli dietro comando dell?applicazione web
  • A7
    Improper Error Handling
    Sono condizioni d?errore che si verificano durante normali operazioni quando queste non vengono gestite correttamente. In questo modo è possibile ottenere informazioni su sistema, creare indisponibilità del servizio, causare il blocco di alcuni sistemi di sicurezza oppure far crashare il server.
  • A8
    Insecure Storage
    Le applicazioni web utlizzano solitamente funzioni crittografiche per proteggere I dati e le credenziali di accesso. Tali funzioni e il codice utilizzato per integrarle all?interno dell?applicazione web molto spesso viene realizzato in modo grossolano, causando un indebolimento del sistema di protezione.
  • A9
    Denial of Service
    Un utente pu√ɬ≤ saturare una applicazione web con un numero di richieste pari da non permettere pi√ɬĻ l?accesso all?applicazione. In questo modo √ɬ® possibile far disconnettere gli utenti dal proprio account oppure si pu√ɬ≤ bloccare l?intero servizio.
  • A10
    Insecure Configuration Management
    Un?ottima configurazione del server è necessaria per il corretto funzionamento dell?applicazione. Spesso i server hanno un enorme insieme di parametri di configurazione e spesso i settaggi standard non sono adeguati.

Non vi resta che augurarvi buona lettura dei documenti sul sito e darvi i soliti link per approfondire :

Learning new tricks

Sunday, July 10th, 2005

Well, this last week was rather demanding, we still worked quite hard (surpassing the 50 weekly hours recommended by XP practices) and we are progressing nicely. Our development platform, for the moment, is based on eclipse loaded with some good plugins, subversion (really great versioning server), trac (a sort of bugzilla but more project managment and wiki oriented), and cruisecontrol (having troubles getting it compiled on gentoo but you can get the official jar). As far as the eclipse plugins are concerned I will name only a few, subclipse, SpringIde, eclipse-wtp 0.5, and some for modelling uml diagrams.
Yesterday we had a really nice session working with the spring framework. It’s based on the IoC and Dependency Injection design patterns and gives your application a lightweight container that’s easily extendable. For instance, your code want’s to do database access right? Well, if you write a server side code, you’ll use JNDI to get the connection from the application container (ex. Tomcat). Now your code is expecting that there will be a JNDI resource and that means that you’ll have to test it on the server or you’ll have to add more code so you’re ending up with a bigger project that’s even more difficult to mantain. Here comes spring. You use it as a lightweight container and to associate references through it’s factories using a consistent model. I can’t say that this technology is something that will stay with us but I must say that it’s the single sweetest thing I’ve seen by far lately even though it kind of breaks the OO paradigm. We even did a HelloWorld with it ūüôā (that accessed mysql remotely and postgres locally and even a version for Hibernate). The framework is really nice, for the moment we’re only looking the DAO and OR mapping API’s but we see some other sweet thigs in it as well.
For out italian friends a nice intro on spring with a j2ee example by mokabyte (part I and II).

Object Relational Mapping

Sunday, July 10th, 2005

L’altro giorno mentre parlavo con Srepfler (l’unica altra persona che si ricorda di postare su questo blog ogni tanto) mi ha detto che per il progetto che sta realizzando avrebbe usato il pattern Object Relational Mapping al che mi son documentato in soldoni non √ɬ® altro che un sistema per mappare delle tabelle di un database in oggetti in modo da dover lavorare con oggetti (metodi,attributi e proprieta) invece che usare l’sql, una comodita non da poco direi! Loro lo stanno usando sotto J2EE usando Hibernate e mi sono chiesto ma sotto php ci sarà qualcosa del genere? google docet :

Al che mi son chiesto e per il .net? utilizzando di nuovo google salta fuori veramente il finimondo:

Che dire buona lettura ūüėČ

PS: un piccolo esempio in php (riferito all’articolo di phpbuilder), rimane il fatto che questo tipo di approccio richiede notevoli risorse e va un po in contro senso con la natura stessa del php!

Linux embedded system

Saturday, July 9th, 2005

L’altro giorno leggendo una rivista ho trovato un’articolo che parlava di “FOX BOARD a complete Linux system on a small board“; questo embedded della Acme System monta un kernel 2.6 e ha 16MB di RAM, 4MB di FLASH; e come se nn bastasse ha 1 connettore Ethernet (10/100 Mb/s) e 2 USB 1.1. Il sistema √ɬ® moddabile grazie all’ Open source SDK for Linux Systems e ai tool della acme. La cosa che reputo pi√ɬĻ interessante √ɬ® il consumo 1 Watt soltanto e necessita di una alimentazione a 5V.

Fox

La comunity italiana si è gia mossa al riguardo provando ad alimentare il server con delle pile [foto] e collegandovi LCD panel [esempio LCD]

Per finire vi segnalo un link correlato :
Firmware ufficiali
e dove comprare in italia:
Comprel
un sito a lui dedicato oltre a quello ufficiale:
Capefox

Mono LiveCD

Saturday, July 9th, 2005

Ecco qua qualcosa di inaspettato, un liveCd per testare/usare Mono, cosa contiene?

  • Develop, compile and run software with MonoDevelop.
  • Listen to your music collection in style with Muine.
  • Take notes with Tomboy.
  • Manage your photos with F-Spot.
  • Search music, photos, chats, and documents with Beagle.
  • Explore web applications such as ASP.NET Forums, IBuySpy, and mojoPortal.
thumbs MonoLiveCd

Per averlo basta o usare il caro HTTP o il piu moderno BitTorrent.

l’unica pecca √ɬ® che attualmente monta il Mono 1.1.7 e non l’ultimo 1.1.8 recentemente uscito.

Per concludere vi metto anche qualche link per approfondire su Mono :

BlogX
nGallery
Il blog di RedRabbit
Mono Combined Installer Construction Kit

X Remoto

Saturday, July 9th, 2005

Mettiamo caso che avete pi√ɬĻ pc e lo spazio per un solo monitor che fare? bhe la cosa migliore che si pu√ɬ≤ fare con linux √ɬ® usare X da remoto. Seguitemi passo dopo passo in questo esempio pratico.

  • PASSO 1
    sul pc in cui gira X bisogna editare /etc/X11/xdm/xdm-config alla riga
    !DisplayManager.requestPort: 0
    rimuovendo il !
  • PASSO 2
    editare o xdm o gdm affinche sia abilitata la funzione XDMCP
  • PASSO 3
    controllare nel firewall che le porte
    177 UDP
    6000 TCP

    siano aperte
  • PASSO 4
    per connettersi al server remoto si usa la sintassi
    X -query ip_or_name_machine
    oppure
    X -broadcast

Attenzione se volete non è necessario usare xdm,gdm ma accedere direttamente ad X purchè lo lanciate manualmente e nn con startx in quanto attiverebbe -nolisten. Esempio: provate

X :1 -br
fluxbox -display :1

Se state usando Cygwin al posto di X usate il comando XWin. Esempio :
XWin -query 129.168.x.x:1 -fullscreen

NB: questo tutorial non funziona ancora perfettamente!!

Disaster recovery

Friday, July 8th, 2005

Quanti HardDisk avete buttato/cambiato nella vostra vita? bhe io solo 1 ma i miei amici qualcuno in pi√ɬĻ; ma non solo questo rientra nella dicitura “Disaster recovery” infatti vi rientra anche l’errone cancellazione di file, e qui le cose si fanno pi√ɬĻ interessanti perch√ɬ® molti di noi si dimenticano o nn hanno voglia di fare backup periodici. Allora tocca correre ai ripari ed ecco qualche software per voi ūüėČ

nb: a breve anche i link per tool linux

Google Toolbar for Firefox

Thursday, July 7th, 2005

Oggio è uscita la nuova Google ToolBar per firefox, la si può tranquillamente scaricare qui direttamente da Google.

Toolbar Google

Adobe Acrobat 7 Spyware “Feature”

Saturday, July 2nd, 2005

Mha pensa te, ora la versione 7 di Adobe Acrobat Reader sotto linux ha un bellissimo spyware; per risolvere il problema si deve lavorare con il firewall a livello applicativo (Layer 7). Ecco in pochi passi come fare :

  • eseguite :

    groupadd nopriv
  • eseguite :

    cat /etc/group | grep nopriv

    e dovreste ottenere una cosa simile a nopriv:x:440:
  • eseguite :

    chgrp nopriv /opt/Acrobat7/acroread
    chmod 2755 /opt/Acrobat7/acroread

    dovreste ottenere

    ls -l /opt/Acrobat7/
    drwxr-xr-x 11 root root 80 Jun 6 01:10 Reader
    drwxr-xr-x 7 root root 40 Jun 6 01:10 Resource
    -rwxr-sr-x 1 root nopriv 6010 Jun 6 01:10 acroread
  • Assicuratevi che nel firewall abbiate messo

    <M> Owner match support
  • Ora non vi resta che settare iptables come si deve :

    $IPTABLES -A OUTPUT -m owner --gid-owner nopriv -j LOG --log-prefix=GROUP_NOPRIV:
    $IPTABLES -A OUTPUT -m owner --gid-owner nopriv -j DROP

Bene a questo punto tutti gli applicativi con owner nopriv nn potranno accedere ad internet.