Набор Symfony 3 Nelmio cors обеспечивает правильное происхождение

Я хочу предоставить ограниченный доступ, разрешить доступ к моему успокоительному API только по некоторому адресу, я использую Symfony и Nelmio Cors.

это мой конфиг из документации:

nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api':
allow_origin: ['192.0.74.122']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'DELETE']
max_age: 3600
'^/':
origin_regex: true
allow_origin: ['^http://localhost:[0-9]+']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
hosts: ['^api\.']

Я хочу установить 192.0.74.122 разрешен только доступ к ^/api а также ^/api/*, но когда я тестирую вызовы ajax в браузере, почтальоне и jquery, это может быть от localhost или 127.0.0.1,

помогите пожалуйста как заблокировать другой адрес помимо разрешенных адресов?

0

Решение

Пакет Nelmio cors предназначен для установки заголовков CORS, а не для блокировки или ограничения доступа к определенным маршрутам.

использование access_control записи в вашем security.yml для этого.
Пример (не тестировался):

# config/security.yml
security:
# ...
access_control:
- { path: ^/api, role: IS_AUTHENTICATED_ANONYMOUSLY, ip: 192.0.74.122 }
- { path: ^/api, role: ROLE_NO_ACCESS }

Вы можете установить несколько IP-адресов или даже диапазоны. Увидеть официальная страница кулинарной книги для подробного объяснения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]