Страница 1 из 1
Вопрос по защите apache и php
Добавлено: 2006-10-26 11:13:11
DeVeO
Добрый день. В-общем, настроил под FreeBSD (6.1) web-сервер apache. Связка такая-apache13+mod_ssl, mod_php, mod_perl,MySQL(client и server). Вроде все работает нормально. Машина тестовая. Вопрос такой. Как правильно защитить все это хозяйство? Честно говоря, опыта большого нет, поэтому и спрашиваю. Не поделится ли кто-нибудь информацией?
Добавлено: 2006-10-26 11:42:57
serge
А для каких целей все это будет использоваться? Действительно ли нужет php? Если для 1 сайта, то внимательно писать php скрипты, дабы детских ошибок не наляпать (типа include($GET)), ну и ограничить доступ к самой машине (ssh, ftp) только тем кому он действительно нужен. По mysql, если запросы будут только с локалхоста, то работать через сокеты, ну и рутовый пароль поставить и разделение прав доступа к базам.
Если что-то типа хостинга, то лучше почитать статью Лиссяры
http://www.lissyara.su/?id=1066
Добавлено: 2006-10-26 12:24:12
DeVeO
Использоваться будет стандартно-сайт, почтовик (exim + squirrelmail), небольшая база под mysql с web-доступом (используется phpMyEdit). Работа с MySQL через сокет. Хостинга не будет. Доступ по ssh и ftp уже ограничен (только по внутр. сети). Что может быть еще? Читал про sql-инъекции,-не очень понял.
Добавлено: 2006-10-26 13:38:49
serge
SQL инекция возможна из-за отсутствия проверки параметров передаваемых sql запросу. Все опять же сводится к внимательности при написании сценариев и обязательной проверки всего что передается от пользователя.
А так вообщем-то думаю достаточно.
Добавлено: 2006-10-26 14:12:34
dikens3
serge писал(а):SQL инекция возможна из-за отсутствия проверки параметров передаваемых sql запросу. Все опять же сводится к внимательности при написании сценариев и обязательной проверки всего что передается от пользователя.
А так вообщем-то думаю достаточно.
Или на примере:
база sql выглядит так:
таблица passwords:
__id_________________|____password_______
__Пользователь1______|____Пароль1_______
__Пользователь2______|____Пароль2_______
__Пользователь3______|____Пароль3_______
__Пользователь4______|____Пароль4_______
Ты к примеру хочешь показать пользователю
его пароль через переменную:
http://forum.lissyara.su/viewforum.php?f=Пользователь1
В данном случае переменной
f присвоено имя пользователя
Допустим у тебя такой SQL запрос на PHP:
Код: Выделить всё
SELECT id,password FROM passwords WHERE id=f
НО:
Допустим ссылку переделаем так:
http://forum.lissyara.su/viewforum.php?f=Пользователь1 OR id<>NULL
В итоге в твоём коде выполниться запрос:
Код: Выделить всё
SELECT id,password FROM passwords WHERE id=f OR id<>NULL
Тут получится вывод все паролей и логинов : -) Не говоря уже о UNION(Объединении запросов)
Написано для понимания, а не для коректной работы. SQL плохо знаю.
P.S. Все переменные всегда обрабатываются, обрезаются до определённой длины, вырезаются знаки и т.п.
Никакие переменные без проверок в код попасть не должны. Используются UNSET(Переменная) и т.п.
Добавлено: 2006-10-26 14:29:44
DeVeO
Спасибо, стало понятно.
Добавлено: 2006-10-26 15:03:25
Alex Keda
нихера там у вас примеры

))