Логика структуры каталогов - PullRequest
1 голос
/ 23 декабря 2011

Я пытаюсь создать структуру папок следующим образом:

  • Загруженные файлы
    • a
      • aaron.doe@hotmail.com
    • b
    • c
    • ... вплоть до z

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

Вопрос: смогут ли люди получить доступ к этим каталогам и получить доступ ко всей электронной почте пользователя?адрес?Насколько это плохая идея?Какие возможные альтернативы вы предлагаете?

Спасибо.

Ответы [ 4 ]

1 голос
/ 23 декабря 2011

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

Кроме этого, я полагаю, что это настолько же безопасно (и небезопасно), как и решение, которое основано на безопасности через неизвестность (т.е. ваша безопасность зависит исключительно от того факта, что никто не знаетURL-адреса - но если они это сделают, они могут получить к ним доступ без ограничений.) Существует множество потенциальных пробелов - пользователь может добавить URL-адрес в закладки;это может быть встроено где-то на странице;может храниться в журналах сервера, браузера и прокси ...

0 голосов
/ 23 декабря 2011

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

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

0 голосов
/ 23 декабря 2011

Как Пекка только что ответил; Хорошей идеей может быть хэширование адресов электронной почты, поскольку существует большая вероятность того, что ссылки могут быть опубликованы на форуме или аналогичном, а затем пост может сканироваться сканером адресов электронной почты. Я думаю, что простой хеш (например, md5) адреса может (почти) решить эту проблему.

См. эту ветку о том, как предотвратить листинг каталога и что делать, если не работает путь Apache.

0 голосов
/ 23 декабря 2011

Взгляните на функцию PHP dir: http://php.net/manual/en/class.dir.php

Если вы хотите, чтобы папки были общедоступными для ваших пользователей через Интернет, зачем размещать папки над корневым веб-каталогом?

Кроме того, вы можете рассмотреть возможность использования какого-либо хэша для имен папок, 1) потому что никто не хочет публично раскрывать свои адреса электронной почты, и 2) раскрытие внутренних user_ids может привести к эксплойтам.

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