Attempts to download (or even just a HEAD request) a file from cdn.zabbix.com with an automated test tool that uses PycURL in the user-agent fails.
The Saltstack salt-winrepo-ng repository uses a Travis test script that checks that referenced URLs are valid. This worked fine using the older https://www.zabbix.com/downloads/ urls, but fails with the cdn.zabbix.com URLs. The travis script doesn't actually download the whole file, but uses a RANGE (c.setopt(curl.RANGE, "0-2047")) to check that the file exists and is an actual binary file as expected (checking the initial bytes downloaded).
We are happy to set a custom user-agent that identifies the project (salt-winrepo-ng) and that it's a CI Travis script making the requests if that's desirable. Spoofing another browsers user-agent would allow the requests through, but we'd like to come to an understanding with Zabbix before we do that.
Steps to reproduce:
- curl -A "PycURL" -v https://cdn.zabbix.com/zabbix/binaries/stable/5.2/5.2.0/zabbix_agent-5.2.0-windows-amd64-openssl.msi
HTTP 403 error code, HTML body of "error code: 1010" (which refers to https://support.cloudflare.com/hc/en-us/articles/360029779472-Troubleshooting-Cloudflare-1XXX-errors#error1010)
HTTP 200 code with the Zabbix Agent MSI downloaded.