tl; dr version Мне нужен сексуальный обработчик сеанса и аутентификации для общедоступного внутреннего инструмента компании. Должен ли я создать свой собственный или есть существующий инструмент, который все считают мечтательным?
Вот мои особенности:
Аутентификация: Я провел последние несколько недель, изучая опасности безопасности пользователей в PHP, и кажется, что чем дальше вы погружаетесь в кроличью нору, тем больше нужно учиться. Я уверен, что смогу написать систему, которая будет вращать сессии при каждом запросе, сможет предотвратить XSS и XSRF и в целом достаточно хорошо защитить мой бэкэнд. Я не решаюсь изучать существующие инструменты просто потому, что доверять и винить себя легче, чем кого-то другого.
Обработка сессий: Чем больше я смотрел на безопасность, тем прагматичнее казалось, что разумнее использовать обработку сессий внутри базы данных вместо нативной для PHP. Таким образом, вы можете легче создавать и отслеживать списки ACL, кластеризацию и т. Д.
Моя проблема со структурой базы данных заключается в том, что если несколько сотен человек одновременно используют эту базу данных, изменяя свои session_ids при каждом вызове страницы, я могу столкнуться с некоторыми проблемами с производительностью в масштабе.
Первоначально я планировал создать свои собственные классы для этого на PHP и использовать MySQL в качестве бэкэнда. Теперь я беспокоюсь, что у MySQL будут проблемы с параллелизмом. Я смотрел на NoSQL, как MongoDB, но потом я парализовал себя, думая, что, возможно, перебираю всю эту чертову штуку. Затем, когда боль от замерзания мозга заканчивается, я начинаю думать, что «кто-то должен был уже это сделать, и я гарантирую, что он подумал обо всем, что я слишком глуп, чтобы считать».
Я надеюсь, что есть лучшие умы, которые столкнулись с теми же вопросами, с которыми я сталкиваюсь, и у меня есть для меня какой-то совет. Есть ли что-то, чему вы могли бы доверять для такого рода целей, или я должен продолжать идти по пути написания своего собственного, и если да, то какие инструменты, по вашему мнению, являются наилучшим вариантом для такой задачи?
Если вы сделали это далеко, большое спасибо за ваше время, и я с нетерпением жду, чтобы услышать мысли сообщества по этому поводу!