Я пытаюсь войти в консоль управления WSO2.Он упакован и размещен в экземпляре AWS EC2.Я могу перейти на страницу входа в консоль, но когда я пытаюсь войти, я получаю сообщение 403 Запрещено.
Навигация на страницу входа в порядке
Запрещенная ошибка
Я знаю, что причина этогопроблема в том, что моя страница входа не публикует X-CSRF-Token
.
Пример данных формы, опубликованных в моем "плохом" запросе:
Консоль моего экземпляра WSO2 печатает ошибку, подобную этой:
WARN {org.owasp.csrfguard.log.JavaLogger} - potential cross-site request forgery (CSRF) attack thwarted (user:<anonymous>, ip:IP_ADDRESS, method:POST, uri:/carbon/admin/login_action.jsp, error:required token is missing from the request)
Пример данных формы, отправленных в «хорошем» запросе в локальном экземпляре WSO2:
То, что я пробовал:
Я попытался отключить сжатие, как предложено в этом посте: wso2 api manger carbon page дает 403 Запрещено
Я не использую JDK 1.8.0_151, который помечен как версия с ошибкой.
Я могу обойти проблему, еслиЯ отключаю csrfguard
в Owasp.CsrfGuard.Carbon.properties
но это угроза безопасности.
У меня включены липкие сеансы
Есть идеи, почему публикация на страницу login_action.jsp вернет 403?
EDIT
Я не упомянул в посте, что использую завершение TLS с балансировщиком нагрузки AWS.Я почти уверен, что моя проблема как-то связана с этим.Эта строка из моей консоли выводит подробности моей ошибки:
Referer domain https:LOAD_BALANCER_URL/carbon/admin/login.jsp does not match request domain: http://LOAD_BALANCER_URL/carbon/admin/js/csrfPrevention.js
Вы можете видеть, что реферер использует https
, но запрос использует http
.Я считаю, что хочу, чтобы домен запроса был https
, но я не уверен, как это сделать.Я думаю, что первая страница звонит на login.jsp
с https
, а страница login.jsp
звонит на csrfPrevention.js
страницу, но меняет протокол на http.