Nei miei script, di solito filtro la variabile passata con GET e poi la passo ad un controllo switch().
Se è uguale ai due o tre valori che io so quella variabile può avere, allora continuo, altrimenti fermo lo script.
Ti scrivo un esempio perché so di non essere stato molto chiaro.
Codice PHP:
$variabile = $_GET['variabile'];
if ($variabile != "caso1"
AND $variabile != "caso2"
AND $variabile != "caso3") {
$variabile = "";
}
switch($variabile) {
case "caso1":
include("caso1.php");
break;
case "caso2":
include("caso2.php");
break;
// tanti controlli quanti moduli vuoi implementare
default:
include("default.php";
break;
}
Con questo metodo, non fai altro che azzerare tutti i valori della variabile passata da $_GET nel caso non siano quelli da te strettamente programmati.
Per aumentare la sicurezza, ti consiglio di non chiamare le pagine che andrai ad includere con lo stesso nome della variabile che passi (insomma, di non fare come ho fatto io in questo codice per farti capire meglio.
), sarebbe molto semplice per un hacker forzare un attacco di qualche altro genere.