Прекратить вызывать функцию контроллера opencart 1.5 с внешней стороны opencart, используя cookie - PullRequest
0 голосов
/ 17 февраля 2019

Я использую версию opencart 1.5.У меня есть функция в контроллере, и я хочу позвонить в кассе.Это работает нормально.Но проблема заключалась в том, что кто-то вроде хакера вызвал эту функцию снаружи от opencart и сохранил некоторые нежелательные поддельные данные в моей базе данных.поэтому я хочу остановить вызов этой функции контроллера снаружи от opencart.Это должно быть вызвано только из проверки opencart как вызов ajax.Вызывать эту функцию извне (внешний клиент) с помощью cookie строго запрещено.

1 Ответ

0 голосов
/ 13 марта 2019

Полагаю, вы хотите предотвратить CSRF атаку на метод контроллера.Вы можете попробовать Проверка токена в методе Controller.Установите токен на какое-то значение и затем проверьте контроллер, если это тот же токен.Если это совпадает, выполните бизнес-логику, или же ничего не делайте (или сообщите об этом).

Реализуйте это в модуле проверки.

     $token= md5(uniqid());
     $_SESSION['csrf_token']= $token;

Теперь сопоставьте токен в SESSION & One, приходящий в запросе.to Controller Method:

     $token = $this->session->data['csrf_token'];
     unset($this->session->data['csrf_token']);
     if ($token && $this->request->post['token'] == $token) {
       // Apply your Business Logic
     } else {
       // Log a potential CSRF attack.
     }

Есть более сложные способы сделать то же самое, но я думаю, что это должно быть полезно.

...