@Craigie Re: Card numbers
Actually there is a product you can get for online purchases.
The other thing that there is a company that tokenizes the CC details so that companies like Marriot doesn't store the CC # and stuff.
There's more, but the real problem is that we have the Mongol horde of programmers who really don't know what they are doing behind the scenes. (Or you could use Vandals too ... )