You should store your wallet offline and only transfer bitcoins to an exchange at the instant you need to exchange them, and then empty the account. For purposes of this discussion, there are no "reputable" sites.
Well, you can as well use multiple wallets with different security/usage goals. For example, I use for my daily usage easywallet.org on my Android/iPhone/Computer, but for larger sums I have better storage.