Bank of America has the ShopSafe program. I have been using it for over 10 years. It's great for all online shopping.
https://www.bankofamerica.com/privac...ds/shopsafe.go
It allows you to generate virtual card numbers, so your real card number is never revealed. You set the dollar amount and the expiry date. When the number is used it becomes tied to that one merchant, so cannot be used elsewhere. You can also close a number at any time.