#23207) Flux HTTP and template fetching requests do not perform IP address checks for local addresses. This behavior on the one hand allows SSRF (Server Side Request Forgery) attacks via authenticated requests but on the other hand is useful for scenarios that have legitimate requirements to fetch from private addresses (eg, hosting templates internally or performing flux queries to local resources during development). To not break existing installations, the default behavior will remain the same but a new --hardening-enabled option is added to influxd to turn on IP address verification and limit both flux and template fetching HTTP requests to non-private addresses. We plan to enable new security features that aren't suitable for the default install with this option. Put another way, this new option is intended to be used to make it easy to turn on all security options when running in production environments. The 'Manage security and authorization' section of the docs will also be updated for this option. Specifically for flux, when --hardening-enabled is specified, we now pass in PrivateIPValidator{} to the flux dependency configuration. The flux url validator will then tap into the http.Client 'Control' mechanism to validate the IP address since it is called after DNS lookup but before the connection starts. For pkger (template fetching), when --hardening-enabled is specified, the template parser's HTTP client will be configured to also use PrivateIPValidator{}. Note that /api/v2/stacks POST ('init', aka create) and PATCH ('update') only store the new url to be applied later with /api/v2/templates/apply. While it is possible to have InitStack() and UpdateStack() mimic net.DialContext() to setup a go routine to perform a DNS lookup and then loop through the returned addresses to verify none are for a private IP before storing the url, this would add considerable complexity to the stacks implementation. Since the stack's urls are fetched when it is applied and the IP address is verified as part of apply (see above), for now we'll keep this simple and not validate the IPs of the stack's urls during init or update. Lastly, update pkger/http_server_template_test.go's Templates() test for disabled jsonnet to also check the contents of the 422 error (since the flux validator also returns a 422 with different message). Also, fix the URL in one of these tests to use a valid path.