Bloquear acceso a un script PHP

carlos
12 de Mayo del 2003
Gracias de antemano a quien me pueda echar una mano con este tema, que hace muchos dias que me trae de cabeza.

Tengo 2 scripts: script_A y script_B. Quiero que el script_B sólo se pueda ejecutar si es llamado desde el script_A.
Es decir, el script_B no debe ser ejecutado directamente, sin pasar previamente por el script_A.

He probado varias cosas, como el $HTTP_REFERER, .htaccess y otras, pero no consigo que me salga. Consigo
bloquear el acceso al script_B (usando $HTTP_REFERER) pero el problema es que también me lo bloquea si intento
ejecutarlo desde el script_A, que es lo que yo quiero.

Hay otras soluciones, como pasar una variable a modo de flag desde el script_A al script_B, con lo que éste último
ya "sabe" que ha sido llamado desde al script_A. Esto no me sirve, porque el script_B muestra una imagen y el usuario podría
ver desde el navegador (con Propiedades de la imagen) las varfiables que se le han pasado y, entonces, acceder directamente.

También he pensado en grabar un fichero con un flag, pero la página tiene muchos accesos y no quiero sobrecargar la CPU con
lectura y escritura de ficheros adicionales.

Lo ideal sería que el script_B pudiera ejecutar algún comando ó función de PHP (si es que existe) que le indicara el nombre
del script que lo ha llamado. Así, si script_B se llama desde script_A, todo es correcto, y si se llama de forma directa,
sin pasar previamente por el script_A, se bloquee el acceso.

Perdonad por el mareo con script_A y B, pero es la mejor forma que se me ocurre para plantear bien la pregunta.

De nuevo, gracias por vuestro tiempo y un saludo para todos.