2010-02-26 3 views
1

Некоторое время назад я создал эту веб-страницу на основе LAMP. В то время я написал свою собственную систему аутентификации пользователей и контроля доступа. Он проверяет, зарегистрирован ли пользователь с правильным паролем, и имеет ли он/ей правильный уровень доступа для доступа к данной странице. Информация о состоянии обрабатывается через сеансы PHP, тогда как имена пользователей, соленые, хэшированные пароли и пользовательский уровень хранятся в задней части MySQL. Все входные данные пользователя дезинфицированы и т. Д. Пользователи должны получить доступ к сайту со SSL.Аутентификация/Контроль доступа в PHP

Проблема в том, что я начинаю вторгаться в себя и становлюсь параноиком по поводу безопасности. Поэтому я ищу способы улучшить его.

Можете ли вы дать мне предложения для:

  • некоторых полных списков тестов безопасности я мог бы реализовать и запустить против него
  • лучших практик для реализации такого рода системы

Есть ли надежную фреймворк с открытым исходным кодом или набор библиотек, который вы могли бы порекомендовать вместо домашнего? Обычная мудрость заключается в том, что обычно лучше принимать зрелую, проверенную систему, чем писать свои собственные с нуля. Чтобы вы посоветовали?

ответ

3

1) Поскольку вы уже писали свои собственные с нуля, я бы не пропустил его и потратил ваше время и усилия на интеграцию новой внешней инфраструктуры с открытым исходным кодом. Код, написанный другими, может быть не нужен лучше, чем ваш, более того, вы не можете полностью понять, как правильно его интегрировать, чтобы вы могли добавить еще больше secuirty отверстий в ваше приложение.

2) Это хороший и короткий справочник на 3 страницы (к сожалению, он написан на итальянском языке, но вы можете использовать панель инструментов Google для перевода всех страниц) В любом случае, из того, что вы говорите, вы, кажется, не новичок в PHP программирование, я бы рекомендовал:

  • санировать вход (но вы сказали, что вы сделали)
  • с использованием по меньшей мере addslshes (или mysql_real_escape_string) при воспроизведении с php.ini конфигурации DB
  • : REGISTER_GLOBALS должен быть выключен
  • автомобиль что вы устанавливаете ERROR_REPORTING, он может распечатывать личные данные при возникновении ошибки
+0

Не могли бы вы рассказать о 'REGISTER_GLOBALS'? Я заинтересован в том, что он делает и как это может поставить под угрозу безопасность. – casraf

+0

Читайте здесь: http://php.net/manual/en/security.globals.php :) Фактически он был устаревшим с 5.3.0, но он не будет удален до 6.0, поэтому многие веб-серверы могут установить его к Ону. –

+0

Спасибо :) Я должен сам использовать этот отзыв – casraf

1

Структура Zend имеет аутентификацию, встроенную в нее, хотя Zend имеет тенденцию быть немного раздутой. Можно использовать только фрагменты Zend, но я никогда не пробовал использовать только бит аутентификации.

Есть также несколько библиотек аутентификации в PEAR - PEAR :: Auth, который находится в стабильном выпуске и PEAR :: LiveUser, который находится в бета-версии и последний выпущенный (как бета) в 2008 году

I надеюсь, что вы хорошо начнете.

Смежные вопросы