security audit fixes: task ID 12, 14, 15: remote X-Forwarded-For headers key lookup, move IP lookup / auth key lookup to web-server generated keys
This commit is contained in:
parent
84296ecb3f
commit
272c8f9ceb
@ -89,7 +89,7 @@ function checkRequestIsLocal()
|
||||
return true;
|
||||
}
|
||||
|
||||
if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], SELF_IP) > -1)
|
||||
if($_SERVER[API_SELF_IP_LOOKUP_KEY] === SELF_IP)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -342,9 +342,9 @@ function setCompanyForUser($ID, $REQ, $replace = false)
|
||||
}
|
||||
}
|
||||
|
||||
if($_SERVER['REMOTE_USER'] && strpos($_SERVER['REMOTE_USER'], "Bearer") > -1)
|
||||
if($_SERVER[API_AUTH_LOOKUP_KEY] && strpos($_SERVER[API_AUTH_LOOKUP_KEY], "Bearer") > -1)
|
||||
{
|
||||
$token = str_replace("Bearer ", "", $_SERVER['REMOTE_USER']);
|
||||
$token = str_replace("Bearer ", "", $_SERVER[API_AUTH_LOOKUP_KEY]);
|
||||
|
||||
try
|
||||
{
|
||||
@ -2764,7 +2764,7 @@ switch($PARAM_1)
|
||||
{
|
||||
if(checkRequestIsLocal())
|
||||
{
|
||||
$token = str_replace("Bearer ", "", $_SERVER['REMOTE_USER']);
|
||||
$token = str_replace("Bearer ", "", $_SERVER[API_AUTH_LOOKUP_KEY]);
|
||||
$auth = (array) \Bitrix\Main\Web\JWT::decode($token, $secret, ["HS256"]);
|
||||
|
||||
$user = new \CUser;
|
||||
|
||||
@ -7,3 +7,9 @@ MODE_PRODUCTION - включен ли production режим
|
||||
DEBUG_IBLOCK_CYCLE - позволять ли сохранять дамп структуры элемента инфоблока при Add/Update операциях на подверженных рекламе инфоблоках
|
||||
ADVERTISING_IBLOCK_ARRAY - Массив идентификаторов инфоблоков, формата КОНСТАНТА => строковое значение из проекта evolution-advertiser
|
||||
```
|
||||
## Константы, зависящие от метода размещения - за CDN/без, используется ли контейнеризация
|
||||
### авторизация в методах API осуществляется посредством передачи JWT токена
|
||||
```
|
||||
API_SELF_IP_LOOKUP_KEY - ключ в заголовках http запроса/передаваемых параметрах веб-сервера, валидные значения: REMOTE_ADDR; при использовании CDN: HTTP_CF_CONNECTING_IP или иной ключ, не подверженный подмене первичным отправителем запроса
|
||||
API_AUTH_LOOKUP_KEY - ключ в заголовках http запроса/передаваемых параметрах веб-сервера, валидные значения: HTTP_AUTHORIZATION, REMOTE_USER
|
||||
```
|
||||
Loading…
x
Reference in New Issue
Block a user