Avoiding the top 10 software security design flaws