Here are my thoughts:
Lying: As others have said, don't provide opportunities for lying if you can help it. Instead of "who did this", focus on the factual situation, such as "Yuck, this toy is slimy. I need you to help me clean it up". She knows she spit on it; she knows you know. And now she needs to deal with the consequences - washing the toy. The same goes for most lies (assuming you know the truth) - you take a non-judgemental approach, and deal with fixing whatever it is - something broken, someone hurt, a mess to clean up. Ask her "What do you think needs to happen now?" If she doesn't come up with an appropriate answer (it needs to be cleaned up, her brother needs a hug), you can offer suggestions. The key is to try to do it without getting mad.
She does need to understand that lying is a bad habit, and that people can only trust her is she tells the truth.
Spitting - she is old enough to understand that spitting is a bad habit. My sons chewed their fingernails, and we worked together to find ways to break the habit - finding alternative things to do with their hands, working out a signal to let them know they were doing it. I like the idea of getting your dd to spit into something else (as a temporary fix), but getting her to stop completely would be better. Is it something she started when the teeth started coming in, and it turned into a habit, or is she still generating a lot of saliva she needs to get rid of?
Learning ho to turn bad habits into good ones at this age is a very useful tool later in life!