Прекратить вызов функции контроллера opencart 1.5 из-за пределов opencart, используя cookie

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

Запись файлов cookie в файл с помощью XSS R
Запись файлов cookie в файл с помощью XSS R
Привет всем :), здесь я продемонстрирую получение cookies, которые будут сохранены в виде txt файла, используя дефект XSS Reflected.
0
0
39
1

Ответы 1

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

Реализуйте это в модуле Checkout.

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

Теперь сопоставьте токен в SESSION и один, поступающий в методе запроса к контроллеру:

     $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.
     }

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

Когда я отправляю токен из html из скрытого режима, хакер проверит и увидит токен. затем он скопирует этот токен и снова опубликует его извне. Как я могу защитить?

Shojib Flamon 16.03.2019 04:32

@ShojibFlamon Чтобы повысить безопасность, вы можете проверить Referrer, если это тот же домен, что и ваш магазин Opencart, а затем либо сделать что-то, либо игнорировать его. $_SERVER['HTTP_REFERER']

Rohit Batra 19.03.2019 05:55

Другие вопросы по теме