I feel like it would help a lot to require cashiers or gift cards give warnings, something like, "gift cards should be bought for people you know and not as payment." Sort of like the "Don't drink and drive" at liquor stores.
There are no legitimate businesses that take gift card payments. Even trading/buying gift cards locally is risky because one could take a picture of the gift card and use the code before the buyer.