Храните и используйте шаблоны ColdFusion вне корневого веб-каталога. - PullRequest
1 голос
/ 10 ноября 2011

Мне было поручено изучить возможность хранения файлов .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 в мой веб-корень, то это работает.Очевидно, что на самом деле я бы предпочел не ставить пустые заглушки для каждого из моих файлов (которых для этого проекта будет сотни).

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Вместо того, чтобы крутить колеса по этому пути, позвольте мне указать вам возможное лучшее направление, которое может решить исходную проблему, но с более предпочтительной / передовой практики:

ColdFusion Sourceless Deployment

Вместо того, чтобы пытаться настроить сайт для чтения файлов вне root, вы просто никогда не выпускаете исходный код в мир.

2 голосов
/ 10 ноября 2011

Я думаю, вам повезет больше, если использовать onMissingTemplate, а не onRequest. http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d2a.html

...