Перейти к содержимому


Безопасность

Безопасность Защита

Сообщений в теме: 28

#1 Zver

    Активный участник

  • Пользователи
  • PipPipPip
  • 80 сообщений

Отправлено 28 Апрель 2012 - 05:17

Предлагаю сделать систему более защищенной. Т.к. любой пользователь с правами "для чтения" (имеются ввиду минимальные права) может стать администратором и натворить гадостей ...

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Апрель 2012 - 09:07

Не понял вас, с чего это он вдруг может стать администратором?

#3 Zver

    Активный участник

  • Пользователи
  • PipPipPip
  • 80 сообщений

Отправлено 12 Май 2012 - 02:52

Думал этим можно воспользоваться.

Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1
SELECT * FROM cb_reports WHERE id=\' + <SQL Injection>
in D:\www\common.php on line 559

Такая ошибка появляется если при открытии представления в параметр id приравнять к нулю и добавить еще чего (id=0+<SQL Injection>)

PS Пока сам это не проверил т.к. пока нет свободного времени.

PPS В остальных местах где встречается id параметр преобразуется к типу int

Сообщение отредактировал Zver: 12 Май 2012 - 02:56


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Май 2012 - 08:27

Если вы про SQL Injection, то тотальная проверка всего кода на данные уязвимости уже заложена нами в план на версию 1.9.6, в ближайшие месяц-два выйдет бета-версия для тестирования. По идее, потенциальных дыр остатся не должно.

#5 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 12 Май 2012 - 09:39

В настоящее время сторонний php модуль никак не проверяет вошел пользователь в базу или нет. Воспользоваться куки для проверки невозможно, если это не стационарный вход. В итоге имею абсолютно незащищенный вход и, как вариант, несанкционированное подключение к базе. Можете предложить варианты решения?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Май 2012 - 14:30

Что за сторонний модуль? Ваш скрипт имеете ввиду? Если необходимо проверить вход, то использовать нужно не куки (они хранят сохраненный вход, а не текущий), а переменные сессии.

#7 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 12 Май 2012 - 14:54

Просмотр сообщенияCbCoder (12 Май 2012 - 14:30) писал:

Если необходимо проверить вход, то использовать нужно не куки (они хранят сохраненный вход, а не текущий), а переменные сессии.
идентификатор сессии я в куки наблюдаю, какие переменные используются и где хранятся данные? в базе?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Май 2012 - 15:02

Выведите на экран содержимое переменной $_SESSION, все будет ясно.

А какого плана скрипт? Может проще приинклудить common.php в начале скрипта? Он все сделает автоматом - и к базе подключит, и вход проверит, и на login.php перебросит если входа не было.

#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 12 Май 2012 - 17:56

подходящий вариант
вполне, может быть, этого хватит
спасибо

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#10 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 Май 2012 - 20:06

Просмотр сообщенияCbCoder (12 Май 2012 - 15:02) писал:

Может проще приинклудить common.php в начале скрипта? Он все сделает автоматом - и к базе подключит, и вход проверит, и на login.php перебросит если входа не было.
Cтолкнулся с проблемой - скрипт ищет файл относительно папки из которой запускается - cb_modules/lang/russian.php и, естественно выдает ошибку.
Т.о. мой скрипт должен лежат в папке cb, чего хотел бы избежать, чтобы не восстанавливать все папки и файлы после установки новой версии или в случае сбоя текущей, что лечится удалением вышеназванной папки. Возможно ли жестко прописать, например в config, путь, где лежат ваши скрипты, т.е. корневой каталог базы?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Май 2012 - 09:32

Да, путь к скриптам можно прописать в переменной $config['site_path']. По умолчанию она расчитывается автоматом в common.php от текущего пути, но можно и явно ее указать в config.php, тогда прописанное значение подменит автоматическое. Путь должен быть к корню программы, например "/var/www/cb".

#12 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 15 Май 2012 - 16:28

спасибо

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#13 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 16 Май 2012 - 20:58

Не помогло - к базе не подключается.
Какие модули подключает common.php? Что и в какой последовательности он выполняет?
У меня для работы используются
require_once "../cb/include/config.php";
require_once "../cb/include/mysql_connect.php";
require_once "../cb/include/functions1.php";
require_once "../cb/include/constants.php";
стоит приинклудить common и закомментировать все или любой из вышеперечисленных - не работает.

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Май 2012 - 09:07

Странно, я проверял запуск в другой папке - у меня все нормально подключилось (после добавления $config['site_path'] в config.php). Текст скрипта не приведете?

#15 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 18 Май 2012 - 19:21

Просмотр сообщенияCbCoder (17 Май 2012 - 09:07) писал:

Текст скрипта не приведете?
например user_online - скрипт определения on-line пользователей

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 688 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 19 Май 2012 - 14:02

Я немного ошибся, оказывается нельзя было использовать common.php для авторизации, если скрипт лежит не в корне, т.к. у нас логин-пароль в сессиях привязывается к конкретной папке (сделано это для возможности одновременной работы с несколькими папками программы на одном домене), причем $config['site_path'] для привязки не использовалась. Немного подправил код, обновите ревизию.

#17 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 Январь 2013 - 11:33

К КБ подключен js, формирующий вывод on-line пользователей. Запрос осуществляется через ajax к php-файлу user_online.php.
После переноса папки с собственными модулями в папку cb и подключения common.php, при первоначальном входе в систему я в нее не попадаю. Файл перенаправляет меня на страницу, содержащую данные из вышеназванного файла, т.е. на ...cb/cb_modules/user_online.php.Какие действия выполняет common.php, после входа в систему? Как упредить этот переход?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#18 Гость_Roman_*

  • Гости

Отправлено 14 Январь 2013 - 12:35

login.php может перенаправить на другую страницу в том случае, если был редирект. Т. е., например, Вам присылают ссылку site.ru/cb/view_line2.php?table=1&line=2, после логина происходит переход не на первую таблицу или отчёт, а на данную строку. Похоже, что cb_modules/user_online.php у Вас попадает как редиректирующая ссылка.

#19 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 Январь 2013 - 12:39

Просмотр сообщенияRoman (14 Январь 2013 - 12:35) писал:

login.php может перенаправить на другую страницу в том случае, если был редирект. Т. е., например, Вам присылают ссылку site.ru/cb/view_line2.php?table=1&line=2, после логина происходит переход не на первую таблицу или отчёт, а на данную строку. Похоже, что cb_modules/user_online.php у Вас попадает как редиректирующая ссылка.
это просто запрос к серверу, в ней нет редиректа

Еще один момент. Прописал в конфигурации $config['site_path'] = '/home/.../public_html/cb';
Теперь не видит файлы, подключенные через require_once в вычислениях. Уже час танцы с бубнами - результат не меняется.

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.


#20 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 332 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 Январь 2013 - 12:47

Цитата

Прописал в конфигурации $config['site_path'] = '/home/.../public_html/cb';
Теперь не видит файлы, подключенные через require_once в вычислениях. Уже час танцы с бубнами - результат не меняется.
есть файл по адресу "cb/cb_modules/somefile.php", как в случае определенной переменной site_path должна выглядеть строка его подключения в вычислениях?

Творческая группа "ТАВР".

www.MEGATAVR.com Художественная ковка, витражи, мозаика, фрески.

www.iGal.pro Уникальный мангал.






Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 анонимных