Recently I was asked what are good practices for developing web applications and web sites. The reality is that this is something, which very often gets overlooked and unfortunately a lot of companies don’t pay enough attention to the security aspect until it is too late. In fact, that the moment you publish you app online to the world, you automatically open a pandora box where everything that is possible to happen, and will likely happen one way or another and it is only matter of time.
Depending on how serious you are about security you might end up doing a lot of work, but end of the day it is a lot about balance of cost and benefit. The two extremes are “rapid development with no security” or “maximum security, but much slower development”. And the reality is that there is no correct answer for everyone. Every organization has different priorities and different goals. For example if you are a bank, anything you develop better be absolutely secure and bullet proof and hopefully everything is done by the book, but lets if you are a start up and if you have to deliver something within a week or else you you are out of business, rapid development is priority number one. The reality is that both extremes have pros and cons.
I believe in the balance and that you still could have pretty secure applications without significant additional development time. But it is important to mention that no matter what if you want to have secure software you should write your software with security in mind every step on the way instead wrapping some security on the very end of the development cycle.
With all that said, one of the most important concepts that everyone should be aware is multi layered security. And the idea is really simple. You have to make each layer as secure as possible and with the idea that even if all other layers get compromised, this layer will not be compromised no matter what, and if you use this simple principle in your development you are mostly guaranteed to have very high security on your system.
Here is a compiled list of tips everyone should follow when designing a secure system:
Recent Comments