*подозрительно относиться к операциям обратным к операциям экранирования из prepare.php
stripslahes / func_unhtml / unhtmlentities / unhtml_entitity
*подозрительно относиться к переменным которые проходят двойную конвертацию
например urldecode может выдать SQL-инъекцию даже после прохождения prepare.php
*подозрительно относиться к trusted переменным
*лучше использовать ограниченные белые списки допустимых значений для переменной
пример
$orderby = (!in_array($orderby, array('login', 'name', 'usertype'))) ? 'login' : $orderby;
*не забывать делать escape в шаблонах
*максимально жестко ограничивать всю логику, которая расширяет права пользователя. Или вообще лучше не изменять переменные которые расширят права типа current_area / login/ logged_userid / login_type / identifiers
*делать проверки не хуже чем из login.php при альтернативных логинах. Или лучше полностью задействовать логику из login.php
аналогично для register.php
*не забывать про подключение
include/admin_security.php
include/security.php
stripslahes / func_unhtml / unhtmlentities / unhtml_entitity
*подозрительно относиться к переменным которые проходят двойную конвертацию
например urldecode может выдать SQL-инъекцию даже после прохождения prepare.php
*подозрительно относиться к trusted переменным
*лучше использовать ограниченные белые списки допустимых значений для переменной
пример
$orderby = (!in_array($orderby, array('login', 'name', 'usertype'))) ? 'login' : $orderby;
*не забывать делать escape в шаблонах
*максимально жестко ограничивать всю логику, которая расширяет права пользователя. Или вообще лучше не изменять переменные которые расширят права типа current_area / login/ logged_userid / login_type / identifiers
*делать проверки не хуже чем из login.php при альтернативных логинах. Или лучше полностью задействовать логику из login.php
аналогично для register.php
*не забывать про подключение
include/admin_security.php
include/security.php
Комментариев нет:
Отправить комментарий