There are apparently some new regulations in Canada to protect job seekers from this, but it's not a clean line in the sand. It seems like companies won't likely be held accountable unless it is a pattern of hiring like this, but how do people establish a pattern when most people still won't discuss salaries?
There's nothing you can do about the dishonest ones.