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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], SELF_IP) > -1)
|
if($_SERVER[API_SELF_IP_LOOKUP_KEY] === SELF_IP)
|
||||||
{
|
{
|
||||||
return true;
|
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
|
try
|
||||||
{
|
{
|
||||||
@ -2764,7 +2764,7 @@ switch($PARAM_1)
|
|||||||
{
|
{
|
||||||
if(checkRequestIsLocal())
|
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"]);
|
$auth = (array) \Bitrix\Main\Web\JWT::decode($token, $secret, ["HS256"]);
|
||||||
|
|
||||||
$user = new \CUser;
|
$user = new \CUser;
|
||||||
|
|||||||
@ -6,4 +6,10 @@ SELF_IP - публичный IPv4 адрес сервера
|
|||||||
MODE_PRODUCTION - включен ли production режим
|
MODE_PRODUCTION - включен ли production режим
|
||||||
DEBUG_IBLOCK_CYCLE - позволять ли сохранять дамп структуры элемента инфоблока при Add/Update операциях на подверженных рекламе инфоблоках
|
DEBUG_IBLOCK_CYCLE - позволять ли сохранять дамп структуры элемента инфоблока при Add/Update операциях на подверженных рекламе инфоблоках
|
||||||
ADVERTISING_IBLOCK_ARRAY - Массив идентификаторов инфоблоков, формата КОНСТАНТА => строковое значение из проекта evolution-advertiser
|
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