Идеальный способ - разместить подключаемые файлы вне webroot.
Это не всегда возможно, поэтому убедитесь, что включаемые файлы не запускают какой-либо код самостоятельно.Примите объектно-ориентированный подход, когда либо файл содержит исполняемый код, либо это файл класса, который ничего не делает сам по себе.
Другой альтернативой может быть изменение расширений включаемых файлов (на .inc дляэкземпляр) и запретить их от прямого доступа с помощью htaccess.
В качестве подсказки: при включении файлов всегда включайте с абсолютным путем:
include(dirname(__FILE__) . "/includes/template.inc");
// __FILE__ is the diskpath of the current file
, а не:
include("includes/template.inc");
Это избавит вас от многих головных болей.
И, как говорили другие парни, никогда не включайте файлы с другого веб-сервера (http://), это означает, что вы делаете что-то в корне неверное: P