Первое правило безопасных сделок: не работать с мутными клиентами. Если клиент всё время пытается сбить цену, добавить работы за бесплатно, и вообще выражает всем своим видом нежелание платить на самом первом этапе, то лучше с ним не работать.
С новыми клиентами предпочитаю работать только через Upwork. Крупные заказы только с почасовой оплатой, так Upwork вам гарантирует, что время будет оплачено. Небольшие заказы можно и fixed price, но очень желательно, чтобы у клиента был положительный рейтинг, верифицированный профиль и чтобы это был не индус/пакистанец и т.п.
Если говорить в общем, то гуглите "escrow". Это когда в сделке есть третья сторона. Сначала клиент платит ей деньги, затем она выдаёт их вам, когда убедится, что условия сделки выполнены. В интернете есть куча сервисов для сделок escrow. Сбербанк не так давно выкатил свой сервис, например.
В общем случае с иностранными клиентами никак не защититься, потому что если они захотят вас кинуть, то они кинут, и вряд ли вы будете судиться с ними в другой стране.
С российскими клиентами поможет грамотно составленный договор на самом начальном этапе. Тогда можно получить деньги через суд.