Ecco come prevenire un attacco XSS. Nel nostro codice creiamo queste due funzioni:

[codesyntax lang=”php”]

//xss mitigation functions
function xssafe($data,$encoding='UTF-8') {
	return htmlspecialchars($data,ENT_QUOTES | ENT_HTML401,$encoding);
}

function xecho($data) {
	echo xssafe($data);
}

[/codesyntax]

 

La funzione xecho la dobbiamo usare in tutti gli output di variabile $_POST e $_REQUEST che vengono restituiti dalla pagina PHP. Esempio:

[codesyntax lang=”php”]

echo 'La username <strong>'.$_POST['username'].'</strong> non è corretta !';

[/codesyntax]

diventerà

[codesyntax lang=”php”]

echo 'La username <strong>'.(xecho($_POST['username'])).'</strong> non è corretta !';

[/codesyntax]

 

Oggi, grazie a Nessus, ho scoperto questo piccolo trucchetto per avere delle informazioni sul php che è in esecuzione su di un server.

Per sapere la versione occorre aggiungere ad link che richiama una pagina php ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

esempio: http://miosito.it/index.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

In base all’immagine che apparirà si potrà conoscere la versione del php installato sul server

UN PROGRAMMATORE PHP CON GRISSINI (Thies C. Arntzen):
PHP 4.0.0 – 4.2.3

CANE MARRONE (Stig’s dog, Nadia):
PHP 4.3.0 – 4.3.10

CANE NERO SCOTTISH TERRIER (Zeev’s dog, Scotch):
PHP 4.3.11 – 4.4.6; and 5.0.4 – 5.1.2

BUNNY (Il coniglio di Sterling, Carmella):
PHP 5.0.0 – 5.0.3

PHP LOGO COLORATO:
PHP 5.1.3 – 5.2.13

PHP LOGO CON ELEFANTE:
PHP Version 5.3.0 – current

Mentre per conoscere la versione dello Zend Framework occorre richiamare ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

esempio http://miosito.it/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

Per ovviare questa falla occorre impostare expose_php ad off in php.ini

Maggiori informazioni le potete trovare qui http://www.0php.com/php_easter_egg.php

Vi segnalo questa funzione che ho scritto. Crea in automatico un permalink da una stringa.


function creaPermalink($str) {
   $str = strtolower($str);
   $str = preg_replace("/[^0-9A-Za-z ]/", "", $str);
   $str = str_replace(" ", "-", $str);
   while (strstr($str, "--")) {
      $str = preg_replace("/--/", "-", $str);
   }
   return($str);
}

Volvevo segnalarvi questo ottima classe in PHP Browser.php disponibili al seguente indirizzo:

http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

Questa classe si rivela molto utile per il riconoscimento delle varie informazioni del browser web.

Io personalmente la utilizzo molto per riconoscere i dispositivi mobili (mobile device) come ad esempio l’iPad e … Ecco un esempio di codice:

include_once(‘browser.php’);
$browser = new Browser();
if( $browser->isMobile() ) {
header(“Location: http://indirizzo_sito_versione_mobile”);
}