Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

DEDMEDVED

Users
  
  • Posts

    68
  • Joined

  • Last visited

1 Follower

Information

  • Gender
    Мужчина
  • City:
    Москва

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DEDMEDVED's Achievements

Contributor

Contributor (5/14)

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

Recent Badges

3

Reputation

  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. Яркость как и ясность относительны

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.