Most countries in the world have signed on to protect refugees
International law says nothing about where, or from what country, a refugee must ask for protection. Refugees do whatever they can to reach a country they hope will be safe – and that country has an obligation to protect any refugees on their territory.
In the case of many refugees in Asia, almost none of the countries in their own region have signed the Convention relating to the Status of Refugees and many of them offer little or no protection to refugees. In Thailand, for example, Sri Lankan refugees face at best a precarious life without status, or else arrest, detention and possible return to Sri Lanka. Staying in Thailand is not a solution.
Since Canada is far from most places that refugees are fleeing, very few refugees can make it here. It would be unfair to suggest that even those few should not come here, but rather go to other countries that already receive many more refugees than Canada.