Что такое CSRF атака?
Cross Site подделка запросов (CSRF) Атака основывается на доверии сайт для пользователей выполнять несанкционированные запросы и / или операций. Например, скажем, пользователь вошел в свою Joomla! Сайты "интерфейса администратора в одной вкладке и просматривают под угрозу сайт в другой вкладке. Простые атаки CSRF может быть запущен просто подделка элементы IMG в некоторых браузерах так, что они указывают на что-то вроде
http://some/joomla/site/administrator/index2.php?option=com_users&task=delete...
Когда пользователь просматривает сайт под угрозу, что изображение будет предложено и потому, что пользователь в настоящее время вошли в административный интерфейс ее Joomla! Сайт, кованые запрос будет положительно подлинности и казнен. Для предотвращения простых атак CSRF как один выше, запрос жетоны, которые были добавлены для всех форм переднего плана и фоновые Joomla! интерфейсов. Маркеры рандомизированных строки, которые используются для проверки подлинности, что запрос, предпринимаемые исходит из действительной форме и действительны сессии. Эта простая мера является очень эффективными в предотвращении большой процент потенциальных атак CSRF, однако из-за характера CSRF они чрезвычайно трудно, если не невозможно, чтобы обеспечить полностью против.
Защита от CSRF Нападения
Joomla! Попытки защитить againt CSRF, вставив случайная строка называется маркер в каждую форму POST и GET каждой строке запроса, который в состоянии изменить что-то в Joomla! системы. Это случайный набор обеспечивает защиту, поскольку не только угрозу сайта необходимо знать адрес целевого сайта и действительный формат запроса на целевом сайте, он также должен знать, случайная строка, которая изменений для каждой сессии, и каждый пользователь.
Joomla! Рамочная делает его легким для вас включить такую защиту в компоненты. Это просто реализовать в обоих POST и GET запросы.
POST запрос
POST заявки представляются в HTML с помощью форм. Для того чтобы добавить маркер в форму, добавить следующую строку в ваш вид:
<?php echo JHTML::_( 'form.token' ); ?>
Это будет что-то вроде следующего:
<input type="hidden" name="1234567890abcdef1234567890abcdef" value="1" />
GET запрос
GET запросы представлены в HTML использование строки запроса. Для того чтобы добавить маркер для вашей строке запроса, используйте адрес, такой как:
<?php
echo JRoute::_( 'index.php?option=com_example&controller=object1&task=save&'. JUtility::getToken() .'=1' );
?>
Это будет генерировать URL с маркера в строку запроса.
Проверка Token
После того как вы включили знак в форме или в строке запроса, вы должны проверить маркер перед сценарий выполняет запрос. Это делается с помощью следующей строки:
JRequest::checkToken() or die( 'Invalid Token' );
Если запрос приходит из строки запроса, вы должны указать это. Код становится:
JRequest::checkToken( 'get' ) or die( 'Invalid Token' );
Процедур, рекомендованных безопасности
Хотя эти методы помогают предотвратить против этих типов атак, важно понимать, что в качестве системного администратора, Есть хорошие практики безопасности следовать который позволит предотвратить сайта от взлома.
1. Не просматривать другие сайты в том же браузере при входе на ваш сайт.
2. Выйти с вашего сайта После того как вы сделали.
3. Не оставайтесь вошли в свой сайт, пока вы ничего не делаете.
4. Убедитесь, что адрес в строке браузера совпадает с адресом вашего сайта.
Практикуя эти безопасного серфинга привычки вы будете ликвидировать большинство угроз на веб-сайте.
