I use POR-15. It was like 28 bucks a quart if i remember corretly. When i pulled up my carpet, i guess water had settled under the seats into the padding of the carpet, and caused some rust. I used a wire wheel and took as much off as i could, and then POR-15'd the hell out of it. That was last summer. I havent seen any trace of rust coming back yet, so im convinced. I spent last week with a wire wheel and i cleaned my differential, rear frame and gas tank, and POR-15'd that as well. The quart goes a long way, and unless you have a ton of stuff to paint, you should be fine with just a quart. Follow the instructions carefully, specifically when it pertains to resealing the can. It tells you to use a sheet of plastic or something between the lid and the can and to clean all the excess out of the lip of the can. I didnt and it took me about 10 minutes, a screwdriver and some pliers to get the lid back off. It states that it takes better to a surface that has a "tooth" meaning bare or scuffed metal.. something it can bite into. I think it recommends at least 3 coats for maximum coverage. I have painted everything listed above and still have about a half a quart left. I have taken pictures of before and after, i just havent had a chance to post them yet. ill try to do that later today.
Some people will say that there is no way to stop rust, but im just going on what i see as far as the rust not coming back so far.