#coldfusion #application.cfc
#coldfusion #application.cfc
Вопрос:
Мне было поручено изучить возможность хранения файлов .cfm за пределами веб-корня в качестве дополнительной меры безопасности. (Я говорю не о CFC, а о файлах, которые будут отображаться в строке URL.)
Я подумал, что мог бы использовать свойства onRequest () в Application.cfc для этого, но безуспешно.
Я пробовал это:
<cffunction name="OnRequest" access="public" returntype="void" output="true">
<cfargument name="TargetPage" type="string" required="true"/>
<cfinclude template="C:/test#arguments.TargetPage#"/>
<cfreturn/>
</cffunction>
Затем я вставил test.cfm
внутрь C:test
и попытался http://localhost/test.cfm
. Это выдает ошибку «файл не найден».
Итак, затем я создал сопоставление ColdFusion с C:test
названием «test» и изменил свой CFINCLUDE таким образом:
<cfinclude template="/test#arguments.TargetPage#"/>
К сожалению, я получил ту же ошибку.
Итак, возможно ли то, что мне нужно? (Windows Server 2008 и IIS, если это имеет значение. ColdFusion 9.)
Я знаю, что мог бы поместить CFINCLUDE в свой index.cfm и передавать URL-адреса типа http://www.example.com/?file=test.cfm
, но я бы предпочел этого не делать.
Ну, вот что: если я помещу пустое test.cfm
значение в свой веб-корень, тогда это сработает. Очевидно, я бы действительно предпочел не помещать пустые заглушки для каждого из моих файлов (которые для этого проекта в конечном итоге будут исчисляться сотнями).
Ответ №1:
Вместо того, чтобы вращать ваши колеса по этому пути, позвольте мне указать вам возможное лучшее направление, которое может решить исходную проблему, но с точки зрения более предпочтительных / наилучших практик:
Развертывание без использования исходного кода ColdFusion
Вместо того, чтобы пытаться подстроить сайт под чтение файлов за пределами root, вы просто никогда не публикуете исходный код в мире.
Комментарии:
1. Интересно. Мне придется это протестировать. Спасибо.
Ответ №2:
Я думаю, вам больше повезло бы использовать onMissingTemplate, а не onRequest. http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d2a.html
Комментарии:
1. Это сделает то, что мне нужно. Спасибо.