2008-09-29 3 views
3

Я использую MySQL и PHP для проекта, в котором я работаю. Я создал отдельных пользователей для выполнения различных функций (один для запуска запросов выбора, один для запуска запросов на обновление и т. Д.), Чтобы обеспечить дополнительный уровень безопасности. Таким образом, я считаю, что если кому-то удастся выполнить инъекционную атаку (что маловероятно, так как я использую подготовленные заявления), все, что они могут сделать, будет ограничено типом запроса, который изначально предназначался для запуска. Это хорошая практика или это не стоит проблемы?Имеет ли разные пользователи для разных типов запросов хорошую практику?

ответ

6

Помимо расширенной логики, у вас также будут разные связи и существенные накладные расходы в этой области.

ИМХО это разумно, чтобы не делать все ваши запросы в веб-приложение с корневого пользователя, и если данные так горячей, то убедитесь, что назначенный пользователь не имеет DROP, DELETE и т.д. привилегированности. Вы можете реализовать soft-delete, если это необходимо в вашем приложении.

Последнее, но не менее важное: убедитесь, что вы дезинфицируете все GPC и убедитесь, что вы правильно указываете/удаляете файлы в своих запросах. Использование подготовленных операторов может быть одной вещью, но в итоге это может быть так же просто, как использование mysql_real_escape_string() или любые другие методы цитирования, предлагаемые вашим DBAL/ORM.

1

Я лично не думаю, что это стоит того, потому что сложнее кодировать, тестировать и развертывать. Убедитесь, что ваше программное обеспечение не защищено от SQL-инъекции.

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