Это можно сделать в любой программе CGI, проверив заголовок HTTP_REFERRER
.
A) В случае, если URL вводится напрямую, заголовок реферера должен быть пустым. Или, если пользователь пришел по ссылке на другом сайте, то у него будет URL этого сайта.
B) Когда ресурс загружается из тега <img...>
HTML, тогда заголовок реферера должен содержать URL-адрес страницы, содержащей изображение.
Таким образом, проверяя содержимое этого заголовка, ваш обработчик ответа может предпринять различные действия.