1. Don't take the bait!
A personal attack is their way of getting their intended victim to play their game. Think of a personal attack as someone tossing a baited fishing line out to you, hoping that you will bite.
Once you take the bait, then its GAME OVER--they win by default because now the victim has become an easy target for additional attacks.
Even if the victim is quick-lipped, they are still fighting an uphill battle because they are on the defensive rather the offensive.
Make a conscious deciscion not to take the bait and not to play their game. Make them play yours by not reacting emotinally.
2. Avoid the "YOU" word
It's really easy to tell when someone is getting angry at another because they start throwing out "YOU" statements all over the place. "YOU" statements are very accusatory in nature. "You are (blank)", "You did (blank)", "You said (blank)".
It signals to the other person that a criticism is coming their way and they get on the defensive, just like if someone bladed their stance and put up their fists for a fight. If you need common examples of this, just look at some of the posts on any Internet forum....there are alwaya a lot of angry "YOU" statements being tossed around.
Instead, reflect on your own statements by using "I" or pull them closer to you by using "WE."
3. Empathize with them
When you find yourself getting angry at another person for the stuff they did, try for a moment to place yourself in their shoes and see things from their perspective. Often, we assume mistakes are done against us personally, when it was unitentional.
Once, as a new employee at a company, I was contantly berated by my boss for making common newbie mistakes--after all, mistakes are how we all learn and improve, right?
After one particularly bad case of my boss screaming at me--in front of my fellow coworkers, I simply asked him if he made similar mistakes when he first began working and how I could improve so that the same thing would not happen again.
This made him change his tune real quick because he was viewing me through the eyes of someone who had 20 years of experience on his hands. I had 5 days of experience. I made him view the situation through my perspective and this changed his view on the whole thing.
So try to empathize with them first and see if it was an honest mistake. And if it was done deliberately, then its time to disconnect and move forward.
4. Don't fight back - educate them
Assertiveness can be good and is what many people will tell you to be assertive instead of aggressive, but the problem with being assertive is that it still breeds conflict between both people.
Assertiveness is basically getting the same point across, only in a polite fashion so that the other side feels obligated not to fight back.
While this might work to avoid further attacks, it does very little to satisfy the underlying resentment that lingers underneath because they will still harbor ill-feelings towards you even though you exhibited calm assertiveness.
When harsh criticisms, sniping, or abuse take place....what I've found to work better is to tell them how their words makes me feel. The theory behind this is that it offers no target for them to strike at.....it makes them consciously aware that their words are hurting you.....and it will often make them feel sorry or guilty (assuming they do not have socipathic behavior) for what they have said.
So tell them something like, "It makes me feel (blank) when I get shouted at." or pose it as an innocent question such as, "Why would you say something that's hurtful to me?"
If you offer no resistance to their attack and instead use their attack to educate them, then its not backing down, or submitting to them, but rather it is empowering you with taking control and it is educating them as what not to do.