PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
iv888 Отправлено: 12 Марта, 2019 - 20:43:30 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
Цитата:
Гипотеза: у вас некоторое число таблиц идентичной структуры.

Да.

PHP:
скопировать код в буфер обмена
  1. Вывод: это должна быть одна таблица.

Т.е. все сообщения писать в одну таблицу, добавив в таблицу столбец имя чата (канала)?


Мне показалось, так удобней оперировать каналами.
(Добавление)
update
Да, в принципе да, все так.
Наверное так и переделаю.

Единственное удобство оперирования немного снижается.
(Добавление)
Не , не снижается...
Спасибо все решил
iv888 Отправлено: 12 Марта, 2019 - 18:41:27 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
andrewkard пишет:
Проверить по белому списку

Это есть, но для снижения нагрузки хотелось бы отключить эту опцию
(Добавление)
iv888 пишет:
andrewkard пишет:
Проверить по белому списку

Это есть, но для снижения нагрузки хотелось бы отключить эту опцию



Цитата:
Этот мой комментарий относился именно к вашей модели данных.
Использовать пользовательский ввод в качестве имени объекта - идея плохая и так быть не должно.

Делать отдельную таблицу сопоставления?
Дело в том, что сейчас так удобно создавать новые каналы ...

Вообще тогда исходя из сказанного Мелким, получается на выбор таблицы надо делать
switch
iv888 Отправлено: 12 Марта, 2019 - 18:08:55 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
andrewkard пишет:
Мелкий пишет:
pdo_pgsql проверил - можно и drop table

с подготовленным запросом можно выполнить drop table ? Вернее втыкнуть инъекцию?


У меня prepared statement только на данные, но переменная для выбора таблицы не вписывается в модель prepared statement.

Это динамический выбор таблицы
iv888 Отправлено: 12 Марта, 2019 - 17:53:41 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
Там суть в том, что кроме каналов нет ничего в БД.
userlogin - только имя отправленное пользователем - произвольное.

Да, проверил просто DROP из php, похоже, можно DROP.

Мдя, тогда придется на хостинге закрыть DROP


P.S.
Благодарю! Вопрос решен!
iv888 Отправлено: 12 Марта, 2019 - 17:12:46 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
andrewkard, благодарю

Мелкий, благодарю
$this->my_canal это protected алиас для переменной $canal, а $canal - это $_GET['canal'], которая устанавливается пользователем. Попадет в класс через метод и там выполняется вышеуказанный код.
Если такого канала нет, то устанавливается $this->my_canal = 'first_canal'

Могу показать весь листинг.

Суть в том, что пользователь может ввести любые значения в input canal
(Вывод и внедрение данных в данном случае не страшно) ... Главное DROP
iv888 Отправлено: 12 Марта, 2019 - 16:42:22 • Тема: sql injection - возможен ли DROP • Форум: Работа с СУБД

Ответов: 12
Просмотров: 904
Hello freiends!
Возможен ли DROP TABLE в таком кейсе? Другие случаи инъекций не интересуют.

PHP:
скопировать код в буфер обмена
  1.    $stmt = $this->connection->prepare("INSERT INTO ".$this->my_canal." (login, text) values (?, ?)") or exit(' :( ');


Спасибо заранее .

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB