I use a simple and foolproof strategy when asked for my current or expected compensation: "sorry I'm not willing to disclose my current comp, but I am looking for around X", where X is the amount you would need if there are no other bonuses or perks.
Then they can talk you down from there if they want to proceed, you have anchored the conversation appropriately, and demonstrated you are negotiating from a position of strength, not weakness - which is the key to not getting pushed around.
If they push on current comp just stand firm and politely refuse - you likely don't want to work anywhere that won't talk to you if you refuse to disclose your current comp, and there are plenty of other options besides. Save your time and energy for good companies willing to negotiate in good faith, there are lots around.
The only hard part is determining what your labour is really worth - this can take a fair bit of effort, research and soul-searching, but is an absolutely essential prerequisite to negotiation.