This is a question that can’t be answered well unless astro comes back and provides more details. Are we talking about home safety? Keeping something in the car? A weapon for taking with you while you take out the trash? What?
Assuming we’re talking about security in the home, we also need to know whether we’re talking about an apartment, or a house. What kind of neighborhood is it? What’s the major threat? Is it gangs? Lone thieves? Rapists? Defense against an ex-husband who’s looking for revenge?
The nature of the threat makes a difference. For example, if the problem is gang activity, you really, really don’t want a weapon that bruises someone up but leaves them alive. Even if you deter the initial attack, he’ll come back with his buddies and bring the freakin’ apocalypse down on you. If you’re worried about rape, then pepper spray is also not the best idea - it will just enrage your attacker and make the encounter that much more violent.
If you’re worried about random thievery, the best defense is a VISIBLE defense. Get an alarm system, and put the sign for it in the window. Bar the windows if you have to. Make sure the doors have deadbolts and the windows have very secure locks. Thieves look for easy pickings, and if your house looks like a hard target, the thieves will just move on to the next one.
If she’s scared lying in bed at night, one option would be to replace her bedroom door with a solid-core door, and put a deadbolt on it. Keep a cell phone in the bedroom. If she hears a strange noise in the house, she can lock the door and call the cops. Kind of like a cheaper version of a ‘panic room’.
Another good defense is to not have visible signs of opulence. Don’t give thieves a reason to believe that there’s treasure behind your locked doors.
A dog is the best anti-burglar protection there is. It doesn’t even have to be a big dog - any dog that barks works just fine. Again, it’s all about making your house a harder target than the neighboring houses - all things being equal, a thief is going to seek out a house where merely approaching it doesn’t trigger frenzied barking that the whole neighborhood can hear.
For women who are afraid to walk to their car after work and such, here’s the best advice I can offer: take running shoes to work with you. Put your high heels in a bag and wear your runners into the office. Change into your heels once there. Put your runners on again before you leave. Because your best defense against a male attacker is to run like hell. Walking to your car in high heels makes you a more attractive target in the first place because you look more feminine, and then it hinders your ability to get away if you’re confronted.
This is a form of passive safety, as opposed to learning how to be a badass. Other examples include improving your situational awareness (park your vehicle under a lamp if possible, don’t get into a parkade elevator alone if you can help it, keep your eyes swiveling when walking alone, etc)
I also highly recommend one of the new technology CREE-LED flashlights. These things will fit on a keychain so you always have it with you. They are as bright as the old-style ‘D’ cell police flashlights, and will light up a dark parking garage like you wouldn’t believe. They can also be used to flag down police or other help. If you’re walking down a dark street at night, you can illuminate the shadows.
While you’re at it, get her a couple of Security Whistles - one for her keychain, and one to keep in her nightstand. These things are loud enough to hurt your ears. Guaranteed to wake the neighbors and scare the bejeebers out of a routine thief who doesn’t want to get caught.
So forget the Rambo stuff. Don’t buy a gun unless you’re committed to using it and believe you’re capable of pulling the trigger when necessary. But learn to make yourself a harder target, to avoid bad situations, and improve your situational awareness. Little things matter.
A dog is probably the single most effective thing mentioned, but you shouldn’t own a dog unless you want one for other reasons and are willing to take good care of it.