Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

DEDMEDVED

Користувачі
  
  • Публікації

    68
  • З нами

  • Відвідування

1 подписчик

Інформація

  • Стать
    Мужчина
  • Місто:
    Москва

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

DEDMEDVED's Achievements

Contributor

Contributor (5/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

3

Репутація

  1. Ок, если токен так необходим для безопасности, почему бы токен не писать в куку? Зачем его таскать в url?
  2. Ну это понятно, что можно так делать. Вопрос в том, какой смысл в токене, если основные уязвимости устраняются хранением сессии в бд? + можно добавить привязку к user-agent и ip, чтобы при их смене сессия прерывалась.
  3. Ну а если сессия хранится в БД (и сменить имя таблицы), зачем в таком случае токен? Вообще стоит задача обмена ссылками из админки (например, на заказы). Хочется убрать токены без ущерба безопасности.
  4. А какой смысл в этом? Почему недостаточно хранить user_id в сессии на сервере, сопоставляя с session_id в браузере. Что token принципиально добавляет к безопасности? Почему недостаточно уникальной session_id в cookie?
  5. Недавно в логах заметил целенаправленный подбор ошибочных запросов к админке. Один из них выглядит так: сайт.ru/?_SERVER[DOCUMENT_ROOT]=%20http://www.google.com/humans.txt? После этого сайт конечно загружается, но вверху отображается ошибка Notice: Undefined variable: _SERVER in ***/public_html/system/startup.php on line 67 if (!isset($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1); // вот это 67 строка if (isset($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']; } } Нет идеи, как обработать эту ошибку? стоит ocsotre 1.5.3.1
  6. Да, это гораздо круче! Спасибо! А как быть с другой конструкцией?
  7. Есть такие две конструкции, которые повторяются в getform() в admin\controller\sale\order.php 1-ая для разных значений post -> в data (пример от customer_id: if (isset($this->request->post['customer_id'])) { $this->data['customer_id'] = $this->request->post['customer_id']; } elseif (!empty($order_info)) { $this->data['customer_id'] = $order_info['customer_id']; } else { $this->data['customer_id'] = ''; } 2-ая для разных значений get -> url (пример для filter_order_id: if (isset($this->request->get['filter_order_id'])) { $url .= '&filter_order_id=' . $this->request->get['filter_order_id']; } 1-ую конструкцию я вынес в функцию (тут много доп. фильтров, которые я сам дописывал). Я заменяю в шаблонном куске кода имя фильтра функцией str_replace, а затем выполняю получившийся код функцией eval. Кстати надо переписать это все под foreach и перебирать массив фильтров. public function FltrToUrl() { $url = ''; $UrlOn = "\$url.=(isset(\$this->request->get['n_m']) ? '&n_m=' . \$this->request->get['n_m'] : '');"; eval(str_replace('n_m', 'filter_order_id', $UrlOn)); eval(str_replace('n_m', 'filter_customer', $UrlOn)); eval(str_replace('n_m', 'filter_order_status_id', $UrlOn)); eval(str_replace('n_m', 'filter_order_statuses', $UrlOn)); eval(str_replace('n_m', 'filter_total', $UrlOn)); eval(str_replace('n_m', 'filter_total_start', $UrlOn)); eval(str_replace('n_m', 'filter_total_end', $UrlOn)); eval(str_replace('n_m', 'comment_true', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true_start', $UrlOn)); eval(str_replace('n_m', 'filter_comment_true_end', $UrlOn)); eval(str_replace('n_m', 'date_spis', $UrlOn)); eval(str_replace('n_m', 'date_spis_start', $UrlOn)); eval(str_replace('n_m', 'date_spis_end', $UrlOn)); eval(str_replace('n_m', 'filter_gotov', $UrlOn)); eval(str_replace('n_m', 'filter_patruled', $UrlOn)); eval(str_replace('n_m', 'filter_date_added', $UrlOn)); eval(str_replace('n_m', 'filter_date_added_start', $UrlOn)); eval(str_replace('n_m', 'filter_date_added_end', $UrlOn)); eval(str_replace('n_m', 'filter_shipping_code', $UrlOn)); eval(str_replace('n_m', 'filter_pay_upd', $UrlOn)); eval(str_replace('n_m', 'filter_stock', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified_start', $UrlOn)); eval(str_replace('n_m', 'filter_date_modified_end', $UrlOn)); eval(str_replace('n_m', 'filter_act', $UrlOn)); eval(str_replace('n_m', 'sort', $UrlOn)); eval(str_replace('n_m', 'order', $UrlOn)); eval(str_replace('n_m', 'page', $UrlOn)); return $url; } Соответственно, теперь в getform() и getlist(), например, я пишу просто $url = $this->FltrToUrl(); Не думаю, что это правильно (так писать функции через eval и str_replace), но теперь при добавлении нового фильтра, я правлю для url строку в одном месте, а не в 10-ти (дело в том, что у меня несколько новых функций и списков, где также наследуются эти параметры). Хотелось бы что-то подобное для 1-ой конструкции, а лучше что-то более правильное. И еще я не знаю, как это все вынести в отдельную функцию (так как не знаю, как оперировать переменными типа $this->data['customer_id'] в другой функции - может все просто?). Пока я сделал вот так, что тоже упростило редактуру кода и уменьшило количество строк: $PostToData = "if (isset(\$this->request->post['n9m'])) {\$this->data['n9m']=\$this->request->post['n9m'];} elseif (!empty(\$order_info)) {\$this->data['n9m'] = \$order_info['n9m'];} else {\$this->data['zz'] = 'zz';}"; //ниже stock - это имя фильтра-переменной, а 1 - это значение по умолчанию, если не задано. в большинстве случаев это будет пустое значение, но так не везде eval(str_replace(Array('n9m', 'zz'), Array('stock', '1'), $PostToData)); //и далее по аналогии строки перечисляют все фильтры, но приходится этот код держать внутри getform(), а хотелось бы отдельную функцию eval(str_replace(Array('n9m', 'zz'), Array('customer_id', ''), $PostToData)); Спасибо за ответы! работаю на ocstore 1.5.3
  8. При нажатии на кнопку Добавить в списке категорий в админке: Fatal error: Call to undefined method ModelCatalogCategory::getAllCategories() in .../admin/controller/catalog/category.php аналогично при редактировании.
  9. А где можно скачать самую последнюю неофициальную версию? Можно прямую ссылку, на github не могу разобраться. Спасибо.
  10. Купил модуль, не могу заставить его работать - почти при любой попытке что-либо сохранить - ошибка (таблицы созданы): Notice: Undefined index: mylist in .../admin/controller/module/blog.php on line 263Warning: Invalid argument supplied for foreach() in .../admin/controller/module/blog.php on line 263Warning: Cannot modify header information - headers already sent by (output started at /home/force840/public_html/new/admin/index.php:79) in .../system/engine/controller.php on line 47Warning: Cannot modify header information - headers already sent by (output started at /home/force840/public_html/new/admin/index.php:79) in .../system/engine/controller.php on line 48 Еще какая-то ошибка в скриптах - при нажатии на "Добавить" в виджетах вылетает, так как нажатие не обрабатывается. Устанавливал все как обычно. Руки прямые. С проблемой разобрались, спасибо разработчику за оперативную тех.поддержку!
  11. есть картнка http://protonpc.ru/image/data/goods3/D69F4132.jpg При ресайзе для списка товаров 80 на 80 картинка не отображается - http://protonpc.ru/image/cache/data/goods3/D69F4132-80x80.jpg при ресайзе на 400 все в порядке http://protonpc.ru/image/cache/data/goods3/D69F4132-400x400.jpg И даже с размером 90 все в порядке. Кэш чистил.
  12. скажите, а когда ожидается новая версия опенкарта?
  13. Яркость как и ясность относительны


×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.