Приднестровская поддержка XOOPS
Если посмотреть на приведенный выше код формы, то в нем можно увидеть скрытый элемент ввода token, содержащий маркер сеанса (token). Это мера безопасности, направленная на предотвращение атак путем подделки межсайтовых запросов (cross-site request forgeries, CSRF), суть которых заключается в отправке формы обрабатывающему файлу приложения с постороннего сайта, не имеющего никакого отношения к сайту, с которого была загружена форма. Такую тактику спамеры часто применяют для рассылки множественных фальшивых запросов, представляющих собой потенциальную угрозу безопасности, раздражающих пользователей и явно нежелательных.
Маркер защиты от CSRF создается путем генерации случайного хеш-кода и сохранения его в сеансе для последующей отправки вместе с данными формы. Совпадение значения маркера, хранящегося в суперглобальной переменной $_POST, со значением, хранящимся в суперглобальной переменной $_SESSI0N, может считаться надежной гарантией достоверности запроса.
Чтобы включить маркер в приложение, добавьте в файл инициализации код, выделенный ниже желтым фоном.
<?php
/*
* Запуск сеанса
*/
session_start();
/*
* Сгенерировать маркер защиты от CSRF,
* если это яе было сделано ранее
*/
if ( !isset($_SESSION['token']) )
{
$_SESSION['token'] = sha1(uniqid(mt_rand(), TRUE));
}
/*
* Включить необходимую конфигурационную информацию
*/
include_once '../sys/config/db-cred.inc.php'; // Информация о БД
/*
* Определить константы для конфигурационной информации
*/
foreach ( $C as $name => $val )
{
define($name, $val);
}
/*
* Создать PDO-объект
*/
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME;
$dbo = new PDO($dsn, DB_USER, DB_PASS);
/*
* Определить для классов функцию автозагрузки
*/
function __autoload($class)
{
$filename = "../sys/class/class." . $class . ".inc.php";
if ( file_exists($filename) )
{
include_once $filename;
}
}
?>
Отправитель | Нити |
---|
7 пользователь(ей) активно (2 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 7 далее... |