Actually, there is another way -- remove most of the motivation for bribery.
Influence peddling is the root of the problem. If a wealthy donor believes that Senator Jones can pull some strings on an important issue in exchange for $5 million, then that donor will find a way to get that money into Senator Jones' pocket, campaign finance laws be damned; just as water finds a way to flow downhill.
So attack the first cause of all this nonsense and reduce the amount of influence which can be peddled, by reducing the size and scope of government (particularly at the federal level). The less power a government official holds, the less attractive he becomes as a potential recipient of bribes or campaign financing.
Of course, actually doing this is much harder than simply passing another campaign finance law, but it's also more effective, and has less impact on everyone's rights to boot. The current situation of stratifying political speech based on completely arbitrary criteria is ridiculous in the extreme.