ci sono svariati modi per farlo, sia usando javascript sia usando php, ognuno con vantaggi e svantaggi:
- con javascript il controllo è più affidabile ma spegnendo il supporto a JS si bypassa tutto
- con php va utilizzato l'header REFERER che è inviato dal browser quindi se si usa un proxy che lo blocca si bypassa il controllo
per farlo tramite php puoi mettere in testata al file iframe.php un controllo su $_SERVER['HTTP_REFERER'] (che dovrebbe contenere l'url di provenienza per interno, ma ripeto, può esseer contraffatto) e se non è esattamente il percorso della index lo rimandi alla index tramite un header('Location: ...percorso...alla...index.php'); seguito da un exit;
Puoi anche controllare se l'header esiste o meno usando
if (isset($_SERVER['HTTP_REFERER']) === true)
in questo modo se non esiste (quindi nell'else) puoi mettere un redirect alla index ... però siamo sempre li ... se non viene proprio spedito perché qualche software in mezzo lo rimuove o perché il browser non lo manda proprio (tramite qualche plugin) finiresti in un loop infinito praticamente![]()