Con questa guida si intende fornire un contributo su alcune questioni legate alla sicurezza nello scrivere codice PHP e tecnologie correlate, riferendosi sia a semplici siti Web sia a vere e proprie applicazioni "over-HTTP", di moda e sempre in aumento in quanto a numeri ed importanza.
Le problematiche di sicurezza devono essere tenute in considerazione sin dal principio, in sede di progetto: correggere nel seguito errori fatti precedentemente potrebbe rivelarsi costosissimo. Inoltre va detto che la sicurezza spesso si scontra con l'usabilità di un programma - ciò che nessuno ammette è che, in fin dei conti, per come viene usato un sistema informatico dagli utenti, la troppa sicurezza è nemica di se stessa.. In generale (ma molto in generale), più un programma è sicuro più è restrittivo e meno è usabile. Si deve sapere con esattezza a cosa un programma dovrà servire, sin dall'inizio. È bene tenerlo a mente.
Leggi la guida
Escaping php dei comandi di sistema
escapeshellarg
escapeshellarg() è stata concepita per effettuare l'escape
(o "quoting" o più semplicemente "delimitazione tra apici") di una
stringa da utilizzare come argomento per un istruzione da inviare
tramite shell; in pratica questa funzione non fa altro che aggiungere
dei singoli apici all'inizio e alla fine di una stringa e consente di
effettuare l'escape di eventuali apici singoli preesistenti, in questo
modo l'utilizzatore avrà la possibilità di passare una stringa resa
sicura direttamente ad un'istruzione da inviare tramite terminale.
Utilizzare escapeshellarg() è molto semplice:
// $_POST['cartella'] = '/var/www/website';
$cartella = $_POST['cartella'];
system('ls -t '.escapeshellarg($cartella));
Nell'esempio proposto, il contenuto della variabile
$cartella
verrà concatenato al comando ls -t all'interno
dell'istruzione dopo l'escape operato dalla funzione escapeshellarg(),
in modo che esso risulti sicuro nel momento in cui viene passato a system().escapeshellcmd
escapeshellcmd() ha invece un compito diverso, essa
infatti è stata concepita per effettuare l'escape dei metacaratteri
(caratteri che in una stringa rappresentano insiemi di altri caratteri o
anche delle sequenze di caratteri) da un parametro utilizzabile come
argomento per un'istruzione da terminale. In pratica si tratta di una
funzione che effettua l'escape di qualsiasi carattere presente in una
stringa che possa essere utilizzato per alterare l'esecuzione di
un'istruzione introducendo comandi arbitrari.Anche l'utilizzo di questa funzione è estremamente semplice:
// $_POST['sorgente'] = '/home/immagini_2009';
// $_POST['destinazione'] = '/home/archivo/immagini';
$sorgente = $_POST['sorgente'];
$destinazione = $_POST['destinazione'];
$i= exec(escapeshellcmd('cp -r '. $sorgente . ' ' . $destinazione'));
Nell'esempio proposto, tutti i parametri inviati tramite input dell'utente subiscono il quoting dovuto alla funzione
escapeshellcmd()
prima di essere passati come argomenti a exec() ed entrare
quindi a far parte dell'istruzione da terminale.Sylights! - Create your lighting diagrams
Create
We provide you with a unique tool to design and annotate your diagrams online.
Share
Submit your diagrams to the community. Show your work, discuss it, improve it!
Discover
Explore others’ work, see how creative they are. You might find some inspiration here!
Help
We’ve all been beginners. Give advice to those who are just starting out.
http://www.sylights.com/
We provide you with a unique tool to design and annotate your diagrams online.
Share
Submit your diagrams to the community. Show your work, discuss it, improve it!
Discover
Explore others’ work, see how creative they are. You might find some inspiration here!
Help
We’ve all been beginners. Give advice to those who are just starting out.
http://www.sylights.com/
Amarino - Android meet Arduino
Normally smartphone events are tightly coupled to your phone device itself. When your cell phone is ringing, your phone speaker plays a ringtone. When you get a new text message, your phone displays it on its screen. Wouldn't it be thrilling to make thoses phone events visible somewhere else, on your wearable, in your living room, on your robot, in your office or where ever you want it to occur? Or would you like to use your smartphone sensors, like the accelerometer, light sensor, compass or your touchscreen to control other devices? 'android meets arduino' is a toolkit, basically consisting of an Android application and an Arduino library which will help you to interface with your phone in a new dimension. You can build your own interfaces almost without any programming experience.
http://www.amarino-toolkit.net/
http://www.amarino-toolkit.net/
Iscriviti a:
Post (Atom)


