2009-09-27 3 views
2

Я работаю над страницей администратора на PHP, в которой пользовательская система кажется излишней. Я подумывал о том, что мне нужен только один пароль для доступа к странице администрирования, но я не уверен, насколько безопасно это сделать. Я не вижу особых проблем безопасности, которые могут возникнуть, может ли кто-нибудь еще подумать о них?Безопасность паролей только для входа?

Редактировать: «Пользовательская система чрезмерна». Я имел в виду, что не может быть более одного пользователя.

ответ

1

Подводя итог тому, что говорили другие: До тех пор, пока пароль не прост, но более уязвим для нападений грубой силы.

Решение: вы можете применить политику сложности паролей, и вы можете активировать дальнейшие попытки входа в систему - ошибайтесь один раз, следующий логин будет искусственно замедлен на 4 секунды. Повторите это неправильно, 8 секунд и так далее.

Опция: используйте два поля - имя пользователя и пароль, но сделайте пользователя также статическим значением, таким как пароль. Дважды угадывание, в два раза больше усилий, вдвое больше безопасности (и вдвойне хлопот для пользователей ..)

Вы можете на самом деле выбросить CAPTCHA. Это сильно помешало бы атакам грубой силы.

+0

+1 для идеи двух полей. Я когда-то делал что-то подобное, за исключением того, что у меня только два пароля (один статический и один, который зависит от пользователя). –

+1

Ugh! Как уже упоминалось в другом ответе, при удвоении длины пароля вы приобретете такую ​​же сумму безопасности. И я ненавижу, как Ubuntu искусственно заставляет меня ждать несколько секунд, потому что я ошибался в своем пароле. Вы просто pissing законным пользователям. 3 удара = captcha, 5 = 24 часа блокировки звуков более разумным для меня. – mpen

+0

Выбрано для прохождения математики и идеи CAPTCHA. –

1

Там нет никаких проблем, если ваши администраторы не будут использовать простые пароли, как 1234567.

+5

Вау, вот код моих багажников –

0

Я думаю, что для вашей страницы администратора (можно было бы подумать о наиболее защищенной страницы), которые вы хотите очень строгие меры безопасности?

Если ваш пользователь «admin» имеет «трудное для обнаружения» имя пользователя и находится в паре с очень надежным паролем, я думаю, что это будет более совершенная система.

В идеале я думаю, что вы хотели бы иметь комплексный логин и пароль:

например

Username: [email protected] 
Password: q!-gr7cBFL045$bd 

Update: на основе замечаний, я думал, что я бы уточнить, почему пользователь + передача является более безопасным, чем проход «e4t_Gjw3 @ GPQ -gr7cBFL045 $ шд!».

Имея как имя пользователя, так и пароль не удваивает безопасность, он делает гораздо больше.

Придумайте, что имена пользователей и пароли являются 3-мя символами (от A-Z) без чувствительности к регистру.

Чтобы угадать пароль, используя грубую силу, вам понадобится до: 26x26x26 = 17,576 попыток.

Чтобы угадать только имя пользователя, те же условия: 26x26x26 = 17,576 попыток.

Если вы должны были догадаться, как , но они не должны совпадать было бы 17,576x2 = 35152.

Однако, если вы должны угадать имя пользователя и найти пароль сопрягая это больше походит:

17,576 имена пользователей * 17,576 паролей = 308,915,776

Конечно, если у вас есть до 16 логинов символов (с учетом чувствительности к регистру, чисел, знаков препинания и т. д.) и то же самое для паролей, число возможностей: Insanely Huge и, следовательно ... безопасный.

Update2: Я, кажется, пропустил ввод ключевого бита информации, которую я пытался передать в своем обновлении. В большинстве систем, которые я видел или создавал, поля имени пользователя и пароля имеют ограничение по размеру, встроенное в столбцы SQL 32, или 40 или X символов. В тех, которые я видел там, где есть только столбец прохода, размер обычно не удваивается до 64 или 80 символов.

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

+0

Я собирался ответить на что-то похожее на это, но я забыл поразить пост. +1 – Twisol

+7

как бы это отличалось от > пароль: e4t_Gjw3 @ gpq! -gr7cBFL045 $ bd ? –

+2

Сложные пары user/pw заставляют людей записывать их - не обязательно проблема, но может быть. Длинная кодовая фраза, такая как «буквы X, Y и Z в первую очередь в алфавите», легче запомнить пользователям, а также очень безопасна из-за длины и включает запятые. Также не так легко догадаться, если вы не делаете это слишком очевидным (т. Е. Используете свой мозг) –

2

Он имеет те же проблемы, что и общий логин, что делает невозможным аннулирование для конкретного пользователя (если кто-то уходит, компьютер пользователя скомпрометирован и т. Д.), А также вопрос о том, что способ более открыт для грубые силы (как упоминалось другими).

Для чего-то простого, что, похоже, не нуждается в полноценной системе пользователя/прохода, почему бы не использовать HTTP Auth, встроенную в сервер? Легко настроить, не нужно делиться, но для этого требуется no дополнительный код в скрипте администратора.

+0

Я использую CodeIgniter, который направляет URL-адреса, поэтому я не думаю, что это сработает. –

+0

Я получил пару голосов, думаю, это потому, что я только наполовину рассмотрел вопрос и ответил, что вы не спросили, но, казалось, был его корнем. Я не могу придумать простой способ реализовать простой старый .htaccess стиль auth с каркасом. –

0

Как сказал Джейк, есть много причин не делать этого, но это зависит от того, что делает ваше приложение. Вам нужно сделать достаточно, чтобы отвлечь любительских хакеров. Убедитесь, что администратор использует сильный пароль - 10 цифр, по крайней мере, один капитал и один символ или что-то в этом роде.

Большинство экспертов по безопасности все равно будут на это нагнояться.

1

У меня есть мнение, что наличие единого пароля делает систему БОЛЕЕ безопасной (не менее), если оба пароля и система являются безопасными.

Причина заключается в том, что когда у вас есть несколько пользователей, он просто берет один из них с плохим паролем, чтобы быть «слабым звеном в цепи»

что сказал, ничего плохого с ним до тех пор, как важно меры безопасности на месте - и иметь в виду, перебирая проще (поэтому убедитесь, что это невозможно/неэффективен)

6

Сложность паролей в сторону, есть две проблемы: в настоящее время

  • пароли должны быть уникальными

Если у вас есть пользователь + пропуск, у пользователей может быть одинаковый пароль. Под вашей моделью все они должны иметь уникальный.

  • Limited Трассировка

Хорошая причина для учетных записей пользователей, чтобы узнать, кто что делает. Вы удаляете это, немного, с общим паролем, как вам нужно предположить, опять же, взаимно однозначным совпадением между ними и пользователями. Это может быть или не быть проблемой.

Для некоторых из моих страниц admin у меня действительно нет «пользователя», так как у меня есть два токена, которые нужно ввести (потому что я единственный администратор).

Для обычных людей, подписавшихся, и если пароль введен ими, это не соответствующий план. Если это только для ваших страниц администратора, и вы создаете пароли соответствующей сложности, жизнь будет хорошей.

+1

Как я только что отредактировал в вопросе, один администратор является единственным «пользователем». –

+0

Тогда я в порядке. –

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