The "shards" parameter does not have a corresponding white list mechanism, so it can request any URL, and the content of the HTTP response will be returned.
For legacy master/slave clusters, there is no Zookeeper to keep track of all the nodes and shards in the cluster. So users manage the 'shards' parameter manually for distributed search. This issue will add the option of configuring a list of what shards can be requested.
Users will then get an explicit error response if the request includes a shard which is not in the preconfigured whitelist, e.g. due to a typo. I think all shards logic is handled by HttpShardHandler already so the logic should fit nicely in that one class, configured in solr.xml.
With SolrCloud this whitelist is auto managed to match nodes in the cluster. It is possible to disable the whitelist feature for backward compatibility. Please see Reference Guide chapter Distributed Requests.