Joomla портал
seo seo Subscribe
seo
0
seo

Нужно сначала запросить всю запись, содержащую

информацию о пользователе admin, а затем сравнить переданный пароль со

значением поля password. Сказанное иллюстрирует листинг 18.2.

//В файле config.php — параметры соединения с сервером MySQL

include «config.php»;

// Подключаемся к серверу

mysql_connect($SERVER, $USER, $PASSWORD);

mysql_select_db($DB);

$query = «SELECT * FROM users WHERE login = \»$login\»";

echo $query;

$r = mysql_query($query);

if (mysql_num_rows ($r)i>0)

{

$f = mysql_fetch_array($r);

222

Часть IV. Разработка собственной CMS

echo «

A теперь проверяем пароль…»;

if ($f['passwordf]===$pass)

echo «авторизация прошла успешно»;

else

die(«

access denied»);

}

else echo «

access denied»;

?>

Вывод данного сценария представлен на рис. 18.2. Мы опять ввели вместо

имени пользователя admin»/*, а пароль не указали. Но в этот раз у нас ничего

не вышло. Сценарий получил имя пользователя и всю запись этого

пользователя из таблицы, но при проверке пароля оказалось, что переданный код не

соответствует действительности, поэтому сценарий не «впустил» нас.

Рис. 18.2. Результат выполнения листинга 18.2

Желательно передаваемые переменные обработать также функциями

addsiashes () и HtmiSpeciaichars (). Вторая функция нам уже встречалась, а

первая, если вы не забыли, добавляет слэши перед кавычками.

$login = addsiashes($login);

$login = HtmiSpeciaichars($login);

В нашем случае вызывать указанные функции для переменной $pass нет

смысла, поскольку она не участвует в SQL-запросе.

Глава 18. Защита собственной CMS

223

Но даже все проделанное не всегда гарантирует стопроцентную защиту,

д что если вместо имени пользователя для авторизации используется ID

пользователя, т. е. его числовой идентификатор в системе. Тогда в запросе не

будет кавычек, и злоумышленник сможет вообще исполнить любой SQL-код

с помощью оператора union. Все, что ему потребуется ввести, — это строка

? union ‘ (без апострофов) в качестве идентификатора

пользователя.

Чтобы не позволить злоумышленнику выполнить любой SQL-код, нужно

перед помещением полученных данных (идентификатора пользователя) в SQL-

запрос проверить их с помощью функции isnumeric ():

if (is_numeric($id)) {

$query = «select * from users where id — $id»;

Так и только так вы защитите себя от этого вида SQL-инъекции.

ЧАСТЬ V

Интеграция CMS

с форумом рнрВВ

В пятой части мы интегрируем нашу CMS с популярным форумом phpBB.

Следуя приведенным инструкциям, вы сможете интегрировать с phpBB

не только нашу CMS, но и любую другую CMS, написанную на РНР.

ГЛАВА 19

Базовая интеграция

19.1. Преимущества и недостатки

интеграции с форумом

В данной главе мы интегрируем нашу CMS с популярным форумом phpBB.

От союза нашей CMS с phpBB мы только выигрываем. Во-первых, нам не

нужно разрабатывать средства регистрации и аутентификации пользователей,

проектировать базу данных для хранения пользовательских данных,

разрабатывать средства проверки прав доступа. Всем этим будет заниматься движок

форума. Во-вторых, в следующей главе мы интегрируем панель управления

сайтом в панель управления форумом, От этого тоже все выиграют: и мы как

разработчики, и администратор сайта. Нам не нужно разрабатывать средства

проверки прав пользователя (чтобы проверить, является ли пользователь

администратором и можно ли ему заходить в панель управления). А

пользователю (администратору) не нужно применять две разные панели

администрирования— одну для сайта (для управления контентом сайта), а вторую —

для форума.

По сути, наше решение даже более эффективно, чем интеграция с форумом в

других CMS. Например, в Slaed есть средства интеграции с форумом phpBB,

но все равно администратору приходится использовать две панели

администрирования — одну для форума, другую — для CMS. Да и таблицы

пользователей разные, a CMS лишь управляет синхронизацией этих таблиц. Наша же

CMS просто будет использовать таблицы форума, что снизит нагрузку на

сервер баз данных и сэкономит на нем место (не нужно будет хранить

сведения о пользователях в двух разных таблицах).

Особых недостатков интеграции с форумом нет.

seo
5th Фев 2011
Теги:
seo

Написать ответ

seo
 
Все права защищены © 2023 Joomla портал
 
 
seo