Коротко о безопасности ColdFusion компонент

Чтобы ограничить доступ к методам компонент и к самим компонентам, следует использовать следующие возможности:

  1. Безопасность на уровне общего доступа;
  2. Безопасность на уровне роли пользователя.

 

Безопасность на уровне общего доступа

Вы можете ограничивать доступ к методам компонент, указывая атрибут access в теге <cffunction>. Атрибут access может принимать следующие значения:

Значение Описание
public Разрешает полный доступ из любой части приложения. Это значение присваивается по-умолчанию.
private Разрешает доступ только:
  1. В пределах текущей компоненты;
  2. В пределах компоненты, которая расширяет возможности той компоненты, где был определен метод с таким доступом. Это значение эквивалентно значению protected в Java.
Пример: Если в компоненте myCFC вы определили три метода getFullName (как public), getFirstName (как private) и getSecondName (как private), то к методам getFirstName и getSecondName вы можете обращаться только из методов компоненты myCFC. Если у вас есть еще одна компонента, например, mySecondCFC, которая расширяет возможности компоненты myCFC (т.е. у нее указан атрибут extends=”myCFC”), то методам этой второй компоненты также будут доступны методы getFirstName и getSecondName.
package Разрешает доступ только:
  1. В пределах текущей компоненты;
  2. В пределах компоненты, которая расширяет возможности той компоненты, где был определен метод с таким доступом;
  3. Всем методам компонент, которые находятся в пределах этого пакета (package). Пакет (package) – это каталог с файлами. Все компоненты, расположенные в определенном каталоге, считаются принадлежащими одному пакету.
Пример: Предположим, что у вас две папки myCFCFolder1 и myCFCFolder2. В папке myCFCFolder1 есть компонента myCFC1, а в папке myCFCFolder2 есть компонента myCFC2. Поскольку эти две компоненты находятся в разных папках, то можно считать, что они находятся в разных пакетах. Если в компоненте myCFC2 мы определим метод с уровнем доступа access=”package”, то мы не сможем вызвать его из метода компоненты myCFC1.
remote Разрешает доступ:
  1. Локальным или удаленным файлам и компонентам;
  2. Локальным или удаленным файлам через URL, form, Flash Remoting MX;
  3. Как к веб службе.

 

Безопасность на уровне роли пользователя

Атрибут role в теге <cffunction> позволяет ограничивать доступ к этому методу на уровне роли пользователя. Определенная роль присваивается пользователю, когда он проходит авторизацию, причем авторизация должна осуществляться с помощью тега <cflogin>.

Например: Допустим, что пользователю после авторизации присвоена роль "editor". Этот пользователь пытается открыть страницу сайта, на которой осуществляется доступ к методу getFullName компоненты myCFC. Этот метод содержит атрибут role="admin,moderator". Следовательно, этот метод не будет доступен данному пользователю, и приложение вернет ошибку.


Источник: По материалам официальной документации

 


Hosted by uCoz