В нашем приложении пользователи могут создавать пользовательские функции экспорта в виде операторов SQL. Что-то вроде этого:
SELECT name, age, date_birth FROM users WHERE group_id = 2
Я не хочу, чтобы они очищали всю базу данных, вставив инструкцию DELETE. Мои идеи были бы следующими:
- Используйте учетную запись SQL, которой разрешено только SELECT. (Я не хочу этого делать, если есть альтернативы.)
- Используйте волшебное регулярное выражение, которое проверяет, является ли запрос опасным или нет. (Это было бы хорошо? Есть ли уже такое регулярное выражение?)
Мы используем PHP PDO.