У меня есть сервер MySQL (версия сервера: 5.1.68-community; версия клиента MySQL: 5.0.51a). Есть ли способ ограничить ВСЕ доступ к информационным_схемам для всех пользователей?MYSQL ограничивает доступ пользователей к информации_schema
Что происходит, так это то, что некоторые сайты клиентов часто взломаются с помощью SQL Injection, и они могут получить структуру базы данных из таблицы/представления information_schema. Разумеется, нам нужно изменить коды PHP, чтобы предотвратить SQL Injection, но все же я хотел бы ограничить доступ к серверу information_schema.
Пожалуйста, наставит меня ... спасибо заранее
Большое спасибо за ваш быстрый ответ. Моя проблема не в том, что кто-то компрометирует другого пользователя. Но с помощью SQL Injection любой может вводить оператор sql, например '....% 20union% 20select% 201, group_concat (table_name), 3% 20% 20%% 20information_schema.tables% 20 где% 20table_schema = database()' (взято из фактическая инъекция произошла с моим сайтом) с PHP-кодом и получить структуру текущей базы данных. Я полностью понимаю, что уязвимость в PHP-коде должна быть исправлена, но если мы можем ограничить привилегию SELECT (по крайней мере) для всех пользователей из information_schema, будет более безопасным. – Sujith
Вы должны понимать: если SQL-инъекция _ была успешной_ - тогда нет способа предотвратить использование пользователями собственных разрешений. 'INFORMATION_SCHEMA' - это просто проекция. Если пользователь имеет доступ к некоторым таблицам, то он сделает это, даже не обращаясь к этой базе данных. В вашем случае он просто будет использовать 'SHOW TABLES' –
Вы абсолютно правы, и я полностью согласен с вами ... Что касается образца Injection, с помощью этого они могут получить список таблиц, а затем перейти на другую инъекцию для получения данных, а затем добавить/отредактировать/удалить в этих таблицах, у нас будут проблемы. – Sujith