kinshadow you are right about how to combat it.
The other main way is the best way, imho, which is to design in immunity from malicious attacks from the beginning. In a world where the source code is open, security through obfuscation (the main way commercial apps try to attain security) is impossible. Instead, we must make things inherently secure, through features like a thin client.
Even with smart design, having peer review and just getting attacked are the only ways to do it. Unlike commercial software, we can continue to improve the security indefinitely, just like Linux vs. Windows.
- Venge