18/01/2012
PHP e mysql: input sanitization di base
Tutti gli addetti ai lavori sanno (o almeno dovrebbero sapere) che nell'ambito della sicurezza Web occorre prestare particolare attenzione ai dati trasmessi al server mediante gli appositi form HTML.
Tale operazione si rende indispensabile poichè un utente malevolo potrebbe "postare" delle stringhe "ad hoc" per "iniettare" del codice SQL arbitrario (SQL injection) oppure inserire all'interno della pagina del codice HTML (o javascript) che provoca il reindirizzamento su un sito infetto (iframe, redirect et similia, ovvero tutto ciò che riguarda gli attacchi XSS).
Per questo motivo ho deciso di postare qualche riga di codice PHP che consente di filtrare in modo rapido ed efficace i dati immessi dagli utenti.
In particolare, vengono svolti due controlli: il primo si occupa dell'individuazione (e la successiva rimozione) dei caratteri speciali di MySQL (apice singolo, apice doppio, backslash, cancelletto, ecc.), mentre il secondo verifica che non vi siano dei tag HTML all'interno delle stringhe immesse nei campi di input.
Ecco il codice:
if(isset($_POST['username']) && $_POST['username'] != '')
{
$username = mysqli_real_escape_string($mysqli,strip_tags($_POST['username']));
}
else
{
$errore = 'Devi inserire lo username';
}
Come potete notare, il campo su cui è stato implementato il filtro è quello relativo allo username. Per prima cosa viene verificato che la variabile $_POST['username'] sia settata e non sia vuota.
Se tale controllo va a buon fine, tramite la funzione strip_tags() viene rimosso l'eventuale codice HTML e successivamente, mediante mysqli_real_escape_string() vengono filtrati i caratteri speciali relativi a MySQL.
Ovviamente, attraverso tale meccanismo non darete agli utenti la possibilità di scegliere username del tipo:
<username>
o ancora:
username#
ma si sa, in questi casi bisogna certamente scendere a compromessi e capire dove sta il male minore.
A presto.
12:16 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: xss, sqli, input sanitization, mysql, javascript, php, html, tags, special chars | OKNOtizie |
Facebook
16/01/2012
Logwatch: analisi automatica dei log file di sistema
Ottenere dei report giornalieri che tengano conto degli "eventi" che hanno interessato i nostri server è certamente una comodità. Infatti, grazie ad essi, non è più necessario analizzare singolarmente i file di log relativi alle diverse applicazioni attive sulle nostre macchine, ma basta una rapida occhiata per accorgersi di eventuali anomalie.
Un'applicazione che riesce a generare una reportistica di questo tipo, a partire dai vari file di log, prende il nome di logwatch. In particolare, trattasi di un semplice script perl, la cui installazione è a dir poco banale e la cui configurazione è piuttosto immediata.
Per installarlo sulla nostra Linux box Debian basta digitare il comando:
nightfly@nightbox:~$ sudo apt-get install logwatch
Ad installazione completata possiamo dedicarci alla configurazione di questo comodo e potente applicativo.
Per fare ciò occorre editare il file /usr/share/logwatch/default.conf/logwatch.conf:
nightfly@nightbox:~$ sudo nano /usr/share/logwatch/default.conf/logwatch.conf
Il nostro intento è quello di ottenere dei report da inviare alla nostra mailbox, la cui formattazione dovrà essere realizzata mediante il linguaggio di markup HTML:
Output = mail
Format = html
MailTo = vostro.indirizzo@email.it
In questo modo, ogniqualvolta digiteremo il comando logwatch da CLI, tale software provvederà ad inviarci il report desiderato.
Per automatizzare tale procedura, è sufficiente posizionarsi nella directory /etc/cron.daily/ per poi modificare il file 00logwatch, il cui contenuto dovrà essere:
#!/bin/bash
#Check if removed-but-not-purged
test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0
#execute
/usr/sbin/logwatch --mailto vostro.indirizzo@email.it
Salviamo il file appena modificato ed abbiamo finito.
Siamo ora pronti a ricevere dei report giornalieri relativi allo stato dei servizi attivi sui nostri server.
A presto.
12:01 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: logwatch, log, log analysis, report, cron | OKNOtizie |
Facebook
10/01/2012
Swatch: esecuzione di più istanze all'avvio del server
Affinchè possano essere eseguite più istanze di swatch all'avvio del server, in modo da tenere d'occhio file di log differenti, occorre utilizzare una sintassi di questo tipo (da inserire all'interno del file /etc/rc.local):
#Swatch
swatch -c /etc/swatch.conf -t /var/log/apache2/ssl_access.log &
swatch -c /etc/swatchftp.conf -t /var/log/vsftpd.log &
In particolare, la & posta alla fine di ciascun comando, permette di eseguire il processo in background, dando dunque la possibilità di lanciare più istanze contemporaneamente.
Alla prossima.
10:00 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook
















