Я использую MySQL и PHP для проекта, в котором я работаю. Я создал отдельных пользователей для выполнения различных функций (один для запуска запросов выбора, один для запуска запросов на обновление и т. Д.), Чтобы обеспечить дополнительный уровень безопасности. Таким образом, я считаю, что если кому-то удастся выполнить инъекционную атаку (что маловероятно, так как я использую подготовленные заявления), все, что они могут сделать, будет ограничено типом запроса, который изначально предназначался для запуска. Это хорошая практика или это не стоит проблемы?Имеет ли разные пользователи для разных типов запросов хорошую практику?
ответ
Помимо расширенной логики, у вас также будут разные связи и существенные накладные расходы в этой области.
ИМХО это разумно, чтобы не делать все ваши запросы в веб-приложение с корневого пользователя, и если данные так горячей, то убедитесь, что назначенный пользователь не имеет DROP, DELETE и т.д. привилегированности. Вы можете реализовать soft-delete, если это необходимо в вашем приложении.
Последнее, но не менее важное: убедитесь, что вы дезинфицируете все GPC и убедитесь, что вы правильно указываете/удаляете файлы в своих запросах. Использование подготовленных операторов может быть одной вещью, но в итоге это может быть так же просто, как использование mysql_real_escape_string() или любые другие методы цитирования, предлагаемые вашим DBAL/ORM.
Я лично не думаю, что это стоит того, потому что сложнее кодировать, тестировать и развертывать. Убедитесь, что ваше программное обеспечение не защищено от SQL-инъекции.
- 1. Использует cfsqltype хорошую практику?
- 2. Имеет ли контекст приложения в статическом члене хорошую практику?
- 3. Имеет ли несколько классов в элементе хорошую (или лучшую) практику?
- 4. Выполняет ли ExecutorService внутри SwingWorker хорошую практику?
- 5. Использует ли MS SQL Identity хорошую практику?
- 6. Утвердить хорошую практику или нет?
- 7. Что GitHub делает здесь хорошую практику?
- 8. Создает ли html-страницу для каждого профиля пользователя хорошую практику?
- 9. NLog: Проводит ли журнал вокруг классов хорошую практику?
- 10. Имеет ли несколько xmls для одного действия плохую практику?
- 11. log4net: разные информационные цвета для разных типов
- 12. Bash scripts - устанавливает таким образом хорошую практику?
- 13. Имеет ли ec2 хорошую задержку?
- 14. Django - имеет разные MEDIA_ROOT для разных пользователей
- 15. Разные макеты для разных типов пользователей
- 16. предложить хорошую практику для разработки приложения ZEND для мобильного устройства
- 17. Имеет ли «стандартные» столбцы в ваших таблицах базы данных общую и хорошую практику? или это перебор?
- 18. Ищете хорошую практику для работы с репозиторием в asp.net mvc
- 19. Имеет ли менеджер делегата хорошую идею дизайна?
- 20. Имеет ли XSD хорошую практику при передаче XML-маршаллированных объектов через провод?
- 21. Почему разные пользователи для разных служб - SQL Server 2008
- 22. Имеет ли фрагмент с каждым действием хорошую практику (на базе Android Studio)?
- 23. C# - байтовые представления разных типов разные?
- 24. Имеет ли SHA256 хорошую кросс-платформенную поддержку?
- 25. Rails обрабатывает 404 по-разному для разных типов запросов
- 26. Пользователи-пользователи в разных таблицах
- 27. Определяет запах кода «ProbableBugException», паранойю или хорошую практику?
- 28. Имеет ли сериализованные данные плохую практику для таблицы базы данных?
- 29. Имеет ли Autofac наилучшую практику для * необязательной конфигурации Xml?
- 30. Как использовать расширение в usecase, когда разные пользователи делают учетные записи разных типов?