Some credit-card companies support "virtual" card numbers--these are generated off the website and are only good for one purchase. Citibank is one that does this.
......
But as I said in another thread, nowadays most of the credit-card fraud that occurs is NOT "some person copying off the number when you pay for something in person", by far most of it is stolen over computer networks, by people who can be anywhere on Earth, as it moves between the dozens of companies that probably already know your CC#. Some of these companies are retailers you buy from and others are just processing companies involved in managing CC transactions.
And there's no way to get around the risk.
You just watch the charges, and call+cancel when something fraudulent gets put on.
There is nothing you can do, short of "not having any credit cards".
~~~~~