Perhaps this site should have a policy like meta's that upvotes and downvotes indicate agreement or disagreement.
If a spammer starts recommending his product, his product may initially have few votes, but if it's a truly bad product, eventually will get lots of downvotes.
Let's say you also limit people to naming one product per post, with a motivation for why it satisfies the requirements stated by the original poster.
A spammer should then also get downvoted for the low quality of his post if they just say "XYZ is great!", because they have not posted a motivation for recommending the product.
Of course, this also assumes that the original poster stated a good set of requirements:
"What is the best operating system?" would probably be closed as far too broad, because it has no requirements.
"What is the most secure open source operating system for internet servers?", with an additional set of requirements in the body of the question, is a lot better.
A good question must have a fairly specific set of requirements for the product, so that a good answer is possible.