Исправлен пароль на исходный код.Насколько это безопасно? - PullRequest
0 голосов
/ 22 ноября 2011

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

  1. Рекомендуется использовать логин с фиксированным паролем для исходного кода, например: if ($user_pass == 'myultrasecretpass')?

  2. Это безопасно? Там как взломать это?

Я думаю, что нет необходимости хранить имя пользователя и пароль в базе данных и тому подобное.

Пожалуйста, покажи мне свои идеи.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2011

Помимо других соображений, то, что вы здесь указали, может быть легко обойдено из-за вашего выбора ==.

То есть, если бы мне удалось получить значение 0 в $ user_pass, сравнение $ user_pass и любого строкового значения привело бы к истинности.

0 голосов
/ 22 ноября 2011

Это небезопасно по нескольким причинам.

Нет способа защитить себя от атаки грубой силой. (Вы не отслеживаете неудачные попытки входа в систему).

Если бы ваш веб-сервер давал пользователю страницу PHP, а не выполнял ее, он немедленно получал бы пароль.

0 голосов
/ 22 ноября 2011

Это не менее безопасно хранить пароль в исходном файле, если он не доступен для других. В противном случае вы в конечном итоге сохраните пароль БД, что обеспечит такой же уровень безопасности. Единственный способ взломать его без какого-либо другого доступа к серверу - использовать атаку методом грубой силы.

Однако атаки методом "грубой силы" - это проблема реального мира. Чтобы защититься от них, вам нужно предотвратить слишком быстрое выполнение одним IP-адресом слишком большого числа запросов (например, ограничение до 5 попыток в минуту до истечения времени ожидания и заставление пользователя ждать 10 минут или что-то в этом роде). Тогда атакующему потребуется большое количество компьютеров с уникальными IP-адресами для выполнения атаки.

Кроме того, само собой разумеется, что пароль должен быть достаточно сложным.

Убедитесь, что у вас также есть поле имени пользователя, даже если есть только один пользователь. Это значительно увеличивает сложность и значительно снижает вероятность атаки методом перебора.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...