This works well in India, with 2-factor auth — Indian companies can't charge my debit or credit card just because they have the card number, expiry and CVV. I have to approve each transaction with my bank.
I'm wary of giving my card information to companies outside India because I don't have this protection.