20/05/2008
PHP: Piccolo form per l'invio di email tramite web
Ecco un piccolo form per inviare email mediante web:
<?php/* php mail sender - edited by nightfly */
//controllo che la stringa rispetti il formato classico di una mail
if(!preg_match( '/^[w.-]+@w+[w.-]*?.w{1,4}$/', $_POST['mittente']))
die("Indirizzo email non valido");
else
{
if(empty($_POST['messaggio']))
{
echo"Inserisci il messaggio da inoltrare allo staff di Uniappunti.it<br>";
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
}
else
{
mail("indirizzodestinatario@provider.it", $_POST['oggetto'], $_POST['messaggio'], "From: ".$_POST['mittente']);
echo"Messaggio inviato con successo<br>";
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
print($_POST['messaggio']);
}
}
?>
Il codice HTML è il seguente:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" action="mail.php">
<fieldset>
<legend>Usa il modulo sottostante per inviare un messaggio allo staff di Uniappunti.it</legend>
<input type="text" name="mittente" id="mittente" /> Indirizzo di posta elettronica <br /> <br />
<input type="text" name="oggetto" id="oggetto" /> Oggetto del messaggio <br /> <br />
<textarea name="messaggio" id="messaggio" cols="50" rows="10"> </textarea> <br /> <br />
<input type="submit" name="invia" id="invia" value="Invia il messaggio" /> <br /> <br />
</fieldset>
</form>
</body>
</html>
Ovviamente, potete personalizzare lo script secondo le vostre esigenze. A presto.
NB: Per far funzionare il tutto dovete impostare correttamente il server SMTP nella sezione [mail] del file php.ini.
14:17 Scritto da: nazarenolatella in Web Editing | Link permanente | Commenti (3) | Segnala | OKNOtizie |
Facebook
19/05/2008
PHP: semplice form per l'upload
Ecco un semplice form per l'upload di file basato esclusivamente sull'array superglobale $_FILES.
<?php
/*php file uploader - edited by Nazareno Latella*/
define("UPLOAD_DIR", "./uploadtest/");
if(isset($_POST['action']) and $_POST['action'] == 'upload')
{
if((isset($_FILES['user_file'])) && (is_uploaded_file($_FILES['user_file']['tmp_name'])))
{
if($_FILES['user_file']['size'] > 50000000)
{
echo"File di dimensioni eccessive (max 50 MB). Aborting...<br>";
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
}
else
echo"Checking size... <b>OK</b> <br>";
if(($_FILES['user_file']['type'] != "application/pdf") && ($_FILES['user_file']['type'] != "application/zip") && ($_FILES['user_file']['type'] != "application/x-rar-compressed"))
{
echo"Tipo di file non autorizzato (solo *.rar *.zip *.pdf). Aborting...<br>";
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
}
else
{
echo"Checking type... <b>OK</b> <br>";
move_uploaded_file($_FILES['user_file']['tmp_name'], UPLOAD_DIR.$_FILES['user_file']['name']);
echo "Il file da te caricato è: <br>";
print ("Nome: ".$_FILES["user_file"]["name"]);
print "<br>";
print ("Tipo: ".$_FILES['user_file']['type']);
print "<br>";
print ("Dimensione: ".$_FILES['user_file']['size']);
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
}
}
}
else
{
echo"non è stata definita alcuna operazione di upload<br>";
echo"<A href="javascript:history.back()">Torna indietro</A><br>";
}
?>
Il codice della pagina *.html da cui selezionare ed inviare il file è:
<html>
<head>
<title>File upload</title>
</head>
<body>
<form method="post" action="uploader.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload" />
<label>Carica il tuo file:</label>
<input type="file" name="user_file" />
<br />
<input type="submit" value="Carica online" />
</form>
</body>
</html>
Ovviamente, essendo una semplice pagina html, potete personalizzare il codice secondo le vostre esigenze, mantenendo però invariato l'attributo "name" dei tag <input>.
A presto.
23:37 Scritto da: nazarenolatella in Web Editing | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook
11/05/2008
Linux: ecco il miglior client per reti wireless
Quante volte vi siete dilungati nella configurazione della vostra scheda wireless, sperando che client quali wireless assistant e soprattutto KNetworkManager non crashassero? Ebbene, con wicd questi problemi sono ormai storia (maggiori informazioni le trovate a questo indirizzo). Esso, a mio avviso, rappresenta il miglior client wireless attualmente in circolazione per ambienti Linux, poichè oltre ad essere funzionale, è di facile installazione e configurazione. Ma vediamo adesso come installare l'applicativo in questione:
Per prima cosa apriamo in scrittura il file sources.list posizionato nella dir /etc/apt (tale operazione necessita dei privilegi di superuser):
nightfly@Nightflyclient2:~$ sudo nano /etc/apt/sources.list
ed aggiungiamo la seguente stringa:
deb http://apt.wicd.net hardy extras
Salviamo il file che abbiamo appena modificato ed eseguiamo un apt-get update (sempre come superuser). Bene, adesso installiamo wicd semplicemente digitando:
nightfly@Nightflyclient2:~$ sudo apt-get install wicd
Ora il nostro client è installato e pronto per l'uso. Selezioniamo ed avviamo l'applicazione wicd dal menù apposito (K->Internet->Wicd Network Express), logghiamoci alla rete wireless dopo aver configurato il client correttamente (mediante GUI) ed il gioco è fatto. Ecco alcuni screenshot:
A presto!
22:09 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (2) | Segnala | OKNOtizie |
Facebook
10/05/2008
XHTML 1.0 ed HTML 4.0: principali differenze
Il termine XHTML sta per eXtensible HiperText Markup Language e fonde le caratteristiche di un linguaggio statico quale HTML alle potenzialità dell'XML. Proprio per questo occorre utilizzare una sintassi ben precisa, affinchè il documento da noi realizzato risulti well-formed e possa superare con successo la procedura di validazione del W3C (Organizzazione che definisce gli standard per le pagine WEB).
Fatta questa breve premessa, è ora necessario elencare alcune delle differenze fondamentali esistenti tra L'XHTML ed HTML versione 4.0.
1) I tag utilizzati non devono essere "incastrati" tra loro bensì annidati. Ad esempio:
<b><i>testo</b></i> tag incastrati (consentiti con HTML anche se sintatticamente errati - vietati in XHTML)
<b><i>testo</i></b> tag annidati (sintassi corretta)
2) I nomi dei tag ed i loro attributi devono essere scritti in minuscolo, poichè l'XML è un linguaggio case sensitive (XHTML):
<table><tr><td>un test</td></tr></table>
mentre per HTML la seguente sintassi è corretta:
<TABLE><TR><TD>un test</TD></TR></TABLE>
3) I valori assegnati agli attributi devono necessariamente essere posti tra virgolette (XHTML):
<img src="test.gif">
4) Ogni attributo deve avere un valore (XHTML):
<option selected="selected">test</option>
mentre in HTML esistono i cossidetti attributi "standalone" che non necessitano di valore alcuno.
5) Gli attributi vuoti devono terminare con / (XHTML):
<br/>
<img src="test.gif"/>
6) Per identificare un dato elemento occorre utilizzare l'attributo id e non name (XHTML). Per ragioni di retrocompatibilità è comunque consentito l'uso in tandem degli attributi id e name:
<a id="test">
Per compatibilità:
<a id="test" name="test">
Spero di essere stato esaustivo, a presto!
14:30 Scritto da: nazarenolatella in Web Editing | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook
06/05/2008
Atto di phishing verso i clienti UniCredit
20:00 Scritto da: nazarenolatella in Phishing ed altre truffe | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook
05/05/2008
Testare la visualizzazione del nostro sito con 61 browser diversi
Quante volte vi sarà capitato di non visualizzare correttamente una pagina da voi editata, soprattutto se utilizzate i browser di casa Microsoft (ie 6 e compagnia bella)? Oggi possiamo testare la copatibilità del nostro sito con ben 61 browser diversi collegandoci a questo indirizzo. Esso, in poco tempo, ci fornirà lo screenshot della pagina che abbiamo specificato all'interno dell'apposita sezione (tramite URL - vedi immagine sottostante)
Il risultato del nostro test sarà simile al seguente:
A presto!
09:04 Scritto da: nazarenolatella in Web Editing | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook
03/05/2008
Introduzione alle topologie facenti uso di uno o più bastion host
Prima di mostrare la procedura relativa alla creazione di una rete Bastion Host con DMZ (nei prossimi interventi) vediamo quali sono le possibili topologie che garantiscono elevati livelli di sicurezza.
Dual Homed Host
Nelle reti TCP/IP il termine multi-homed host indica un host che ha più di una scheda di rete, e normalmente ogni scheda di rete è collegata ad un segmento di rete differente.
Nel dual-homed host (due distinte schede di rete) la funzione di instradamento (routing function) può essere attivata oppure disattivata. Nel caso in cui si disattivi tale funzione, il dual-homed host effettua un vero e proprio isolamento tra i due segmenti di rete pur consentendo, ad utenti posti su reti distinte, di usufruire di una stessa applicazione posta sul dual-homed host stesso; se tale applicazione lo consente, le reti possono anche condividere dati, tutto ciò, senza che vi sia un effettivo interscambio di pacchetti tra rete esterna e rete interna.
Per non compromettere il livello di sicurezza instaurato dall'uso del dual-homed host non deve essere permesso a nessun utente di entrambe le reti di loggarsi direttamente col dual-homed host; questo perché tale host è il punto di connessione centrale tra la rete interna e quella esterna.
Comunque il più grande pericolo per la sicurezza di rete sorge quando un utente ottiene l'accesso diretto al dual-homed host, pertanto tale acceso deve avvenire solamente a seguito di una complessa operazione di autenticazione che può comportare anche l'uso di schede magnetiche. D'altra parte è anche importante rimuovere dal dual-homed host tutti i programmi, utilities e servizi che potrebbero essere danneggiati da un intruso ed inoltre è consigliato effettuare una serie di operazioni che tendono a migliorare il livello di sicurezza raggiunto, come ad esempio effettuare una partizione dell'hard disk, lasciare disponibili solamente i servizi strettamente necessari ecc. (hardening the system).
Screened Host
L’architettura screened host viene realizzata mediante più componenti fisici. L’elemento principale dal punto di vista della protezione della rete privata è uno screening router, i servizi vengono forniti da un calcolatore (il bastion host) appartenente alla rete interna che svolge funzioni di application gateway. In questa architettura il bastion host ha una sola interfaccia di rete e la separazione della rete interna viene realizzata dal router, che filtra i pacchetti in maniera tale che solo il bastion host possa aprire connessioni con la rete esterna. Viceversa, tutti i sistemi esterni che desiderino collegarsi con la rete privata possono connettersi solo con il bastion host .
Screend Subnet
In alcune configurazioni di firewall una vera e propria rete isolata viene creata tra quella esterna e quella interna. Gli host appartenenti ad entrambe le reti possono accedervi ma non è ammesso alcun flusso diretto di dati tra la rete interna e quella esterna.
La rete isolata prende nome di Screened Subnet (o sottorete schermante) e spesso contiene al suo interno almeno due application-level gateway che svolgono la funzione di bastion host pur conservando l'accesso interattivo ai servizi resi condivisibili ad entrambe le reti. Dato che l'unico punto di accesso alla sottorete avviene tramite l'application-level gateway risulta molto difficoltoso da parte di un intruso bypassare l'intera sottorete, in quanto dovrebbe riconfigurare la stessa sottorete ed anche quella interna; tutto ciò eludendo la sorveglianza dei bastion host.
Bation Host con DMZ
Un'altra configurazione realizzabile è quella che si ottiene ponendo dopo lo screening router un dual-homed host con entrambe le interfacce di rete configurate e collegate a due segmenti distinti di rete. Si viene cosi a creare una rete intermedia definita appunto zona demilitarizzata (DMZ) che, non contenedo alcun host al suo interno, può essere anche costituita fisicamente da una linea dedicata point-to-point adottando magari anche un protocollo a sé stante che aumenterebbe le difficoltà di penetrazione da parte di un intruso esterno. Un host può essere collegato, tuttavia, alla DMZ in modo promiscuo, cioè tale da permettergli di vedere tutti i pacchetti che fluiscono attraverso tale rete e non soltanto quelli indirizzati a se stesso svolgendo una funzione di controllo e monitoraggio delle connessioni esistenti.
Ma il più grande vantaggio di questa configurazione è che, anche se le tavole di filtraggio dello screening router vengono variate a piacimento da un intruso, il bastion host non viene bypassato trovandosi in serie al router ed a monte della rete da proteggere.
Ponendo due bastion host in serie con entrambe le interfacce di rete configurate e collegate a segmenti di rete distinti si ottengono due DMZs. La seconda può essere utilizzata come una rete ultra-privata, la quale risulta schermata sia da intrusi esterni che da operatori interni.
Un compromesso tra sicurezza e comunicabilità può essere fatto ponendo sulla prima DMZ un host contenente pubbliche informazioni ma che risulta così esposto più facilmente ad attacchi esterni.
Risulta ovvio, a questo punto, come le configurazioni possibili ed adatte ad un particolare caso siano praticamente infinite, per cui è inutile dilungarsi oltre in combinazioni di bastion host e screening router.
A presto!
11:53 Scritto da: nazarenolatella in Sicurezza | Link permanente | Commenti (0) | Segnala | OKNOtizie |
Facebook






















