Control: CORS should not allow every resource to access your Web Applications
Description
Cross-Origin Resource Sharing (CORS) should not allow all domains to access your web application. Allow only required domains to interact with your web app.
Usage
Run the control in your terminal:
powerpipe control run terraform_azure_compliance.control.appservice_web_app_cors_no_star
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_azure_compliance.control.appservice_web_app_cors_no_star --share
SQL
This control uses a named query:
select address as resource, case when (attributes_std -> 'site_config') is null then 'alarm' when (attributes_std -> 'site_config' -> 'cors' -> 'allowed_origins') @> '["*"]' then 'alarm' else 'ok' end status, split_part(address, '.', 2) || case when (attributes_std -> 'site_config') is null then ' ''site_config'' not defined' when (attributes_std -> 'site_config' -> 'cors' -> 'allowed_origins') @> '["*"]' then ' CORS allow all domains to access the application' else ' CORS does not all domains to access the application' end || '.' reason , path || ':' || start_linefrom terraform_resourcewhere type = 'azurerm_app_service';