It's a shame virtual cards never got more traction through the CC industry. For those who aren't familiar, some banks/cards offer you a tool that let's you set an arbitrary spend and expiration date (+2-12 months usually) and then generate a credit card number (with CVC) with those attributes (Bank of America branded theirs "SafeShop" for one example). Since it's a fully backed card number it'll transparently work on any site a normal CC would, but it cannot be charged more then the small limit (so you can set it just to the checkout price of one item and it's done), it can be trivially cancelled at will (useful for fighting dark pattern subscription services), etc (some of them can bind to merchant too). It's very effective for preventing misuse from online purchases. However for whatever reason it never seems to have spread or evolved really. BoA never added it to their mobile app for example, which seems like the most logical place, but rather kept it as a little Flash tool tucked away in their website. Plenty of banks do not offer it at all, and it never got much PR. It is more work to use and while that could have been reduced through better UIs (mobile again could really help there) it would always have been somewhat more work.
Maybe options like Apple Pay/Google Pay will ultimately fill that role, since they're essentially an automated version of the above (tolkenized per-purchase card numbers). It'd be nice if the industry would work harder though on some standards for the hardware ecosystem needed.