SKY / WINGS /
SECURITY2

дочерние связи:
SKY Framework обеспечивает стандартный уровень безопасности, в соответствии с известными шаблонами взлома кода. Имеется возможность только увеличивать уровень безопасности различными способами, см. узел DIRS.

1. Пароль доступа к БД не записывается в переменную, а является прямым параметром функции подключения к БД.

2. Функция обертка html(), причисляется к основным и содержится в файле первого крыла. Ее правильное использование позволяет блокировать атаки javascript, например <srcipt>alert()</srcipt> и подобные. В контроллерах MVC схемы имеется возможность использовать префиксы $h_, при использовании которых значения переменных будут автоматически "оборачиваться" функцией html(), перед передачей в файлы видов.

3. В не зависимости от возвращаемого значения функцией get_magic_quotes_gpc() (актуально для старых версий PHP), суперглобальные массивы GPC, например $_GET, всегда содержат данные без экранирования (обратным слешем) и могут использоваться для записи в БД только после использования функции escape(), например:

001
002
003
004
sqlf("insert into rubric %s", [
  'name' => escape($_GET['name']),
]);
 

Переменные же прототипы GPC, всегда, в не зависимости от get_magic_quotes_gpc(), всегда будут экранированы, например, безопасный запрос:

001
002
sql("insert into rubric (name) values ('$g_name')");
 

То есть имеется совершенно четко определенная схема, когда трудно ошибиться и забыть сделать экранирование. Функция escape(), причислена к основным составляющим ядра и содержится в коде первого крыла.

4. Все включаемые файлы начинаются кодом, подобным <?php defined('START') or die;

5. LIVE инсталляции приложений работают с отключенной трассировкой и с отключенным режимом показа ошибок приложений.

6. В SKY Framework, в публичных приложениях, не содержится исполняемый код PHP в БД.

7. Код второго крыла поддерживает два уровня авторизации доступа к административному разделу.

8. SKY Framework имеются средства для блокирования агрессивных пользователей, детектирования "flood" POST запросов, ботов и запросов не поддерживающих javascript и cookie.

9. В SKY Framework, совершенно четко разделяются "крышевание" и валидация данных, смотрите пункт "Термины" в главном меню. Для построения типичного функционала валидации имеется функция и метод класса в коде второго крыла. При крышевании, всегда используется функция die(), в то время как для нормального завершения скрипта используется функция-синоним exit(). Это позволяет однозначно понимать различия в коде.

10. В админ. части, в меню "Main" есть подменю "Guard" со стандартным алгоритмическим функционалом, назначение которого - повышение безопасности проекта SKY приложения.
опубликовано ENERGY - 10 Oct 2015 10:54 GMT
последнее редактирование - 11 Oct 2015 08:57 GMT
комментировать