"Leeching" (or whatever you want to call it), is essentially joining a battle right before it ends to get the rewards while not doing anything to earn them. These are especially common in boss battles, where turning the join mode to friends or private is not allowed.
A good way to remedy this would be to determine card and gear drop based on damage. That way, people who don't do much to help the battle also don't get as much rewards.
Sample value: each mob has a 5% chance to drop a card/gear, and each point of damage on that mob will increase it's chance by .5%. Card/gear boosts activate after the values have been calculated (so it will increase the final percentage by its respective boost).
It will also make corrupt farming easier (so less searching), and promote solo over multi-player battles.