The ansewer of this is in the Quran. Some people say that you should never give money to beggars on the road, as they will buy drugs, alcohol or they are rich and don't need it. They may well buy alcohol or drugs but this is not your sin, this is their sin. You are giving them money because they have said they are hungry, have no money for the bus for example, etc... Your intentions are good, you are doing a good deed. In the Quran it says many times "no barer of burden can bare the burden of another". Thus their sin is their sin and your good deed is your good deed, you will not be held account for the sins they do. They Quran mentions a long list of people that you should give charity and this includes "those who ask".
But the Quran also mentions that you should try to get your charity to those most in need, so that it does not merely circulate among the rich,