Sr. Web Developer
mediabistro.com
US-NY-New York

Justtechjobs.com Post A Job | Post A Resume

Fundamentals of Web Application Development
Security
When you're discussing the Internet, security should be the first thing that comes to mind. Unfortunately, security is an extremely complicated issue - even security experts cannot be 100% sure that their network is secure. At most, you can hope to reach a state where you feel comfortable about your network's security.
Now, granted that security poses a distinct challenge, it clearly becomes the priority in your network and application design. Security can be divided into three categories: 1) network, 2) server, and 3) application. For network and server security, installing a quality firewall and hiring a competent system administrator can go a long way towards making you feel comfortable.
Application security, however, is not so easy. Generally software must undergo a series of audits and "trial by fire" before it can be considered anywhere near safe. And even then, some exploits or bugs in the software may go undiscovered for years.
The point is that it takes years for application software to gain the comfortable level of security that is appointed the most secure applications. With that in mind, it makes sense to base your design on fundamental security concepts.
Some quick rules of thumb:
  • Always verify any data sent from a client for size and type.

  • Be extra careful with scripts that talk to databases - don't give the web server any more permissions that it needs.

  • Any file operations done by the web server are high risk. Verify that your permission structure does not grant any unnecessary permissions which could be exploited to damage the system.

  • Avoid executing shell commands at all costs.

  • Never send clear-text passwords over the network. Use encrypted connections, with ssh or ssl, whenever sending important information.
OK, more on that later, next, we'll talk about maintainability, or, where you are going to spend your time and money.
Maintainability
What's the number one cost in web design? Is it planning the application? Is it building the application for the first time? Is it the cost of the server or the connectivity?
Actually, it's none of these things. The highest cost will be maintaining the application. This is in contrast to traditional systems design, where a majority of expense is in the systems understanding and analysis.
Why the difference? With traditional systems, an application has a typical lifetime of 2 to 4 years. Once the application has reached a stable configuration the design effort is all but finished.
On the other hand, the dynamic aspect of the web makes most applications outdated in months rather than years. Improvements in existing applications are continuous, new content is expected, new technologies appear on a regular basis. A web application must improvise or be replaced. Another way to put it is that web software is in a continual prototyping process - user feedback and design demands are much more prevalent than in their traditional counterparts.
The fact remains that your software must be frequently modified and updated. Realizing this at an early point in the design phase is crucial to making maintenance easier in the future. Trust me, I've learned the hard way.
Build customization variables into your code. Separate code and content. Use templates. Use style sheets. Make the language of your site customizable. Develop a common coding style and stick with it. Comment your code well.
To put it simply, you can do what we do, and build everything for distribution. It may seem like an unnecessary investment of time and resources if you a designing for one customer only, but, trust me, when the client starts asking you to make changes, you'll thank me.
Next, we'll take a trip to the other side of the application: the user ...

[ Next Page ]

[Page 1]  [Page 2]  


Comments:
Thanks, that was a fantastic overview!David Byrd06/05/09 14:14
Need help from PHP developersmalvern12/13/05 10:24
Web Application DevelopmentTrista Kim11/16/05 18:58
EquilibriumKarl Bloedorn05/02/05 00:13
Need help from PHP developersBahadur11/26/04 05:40
About this Articlesaikumar10/21/04 02:31
Missed the pointBarry Steele07/30/03 18:30
RE: That's two different parts of site!!!Bertrand Potier10/09/02 07:32
Priorities prioritiesMichael08/29/02 10:46
RE: best of both worldsJean-Marc Molina08/12/02 20:23
RE: That's two different parts of site!!!Jean-Marc Molina08/12/02 20:03
Virtual ConferenceKevin07/31/02 04:00
RE: what i've learned ....anotherAnon05/22/02 11:12
best of both worldsScottishDude05/21/02 09:38
RE:Graphic design: Artsists vs GeeksPAS0792004/30/02 16:59
RE: Graphical design no priority??Cathy04/17/02 10:03
the realityjosh sisk03/11/02 12:42
RE: Usability in General.benjamin03/05/02 08:44
grapic is the limmitMichael02/06/02 16:28
RE: only techies agree with youmogmios01/14/02 18:53
graphic design is (not) very importatntSafak Ebesek12/28/01 13:24
Counting queries ?headcore12/20/01 09:29
RE: One large table or lots of small ones?Jerome12/13/01 18:03
About web deisgnM.Murtaza12/03/01 17:56
One large table or lots of small ones?toyama11/15/01 09:12
RE: Graphical design no priority??Dave6909/24/01 23:57
RE: How was this forum built?Mikko Harju06/18/01 23:01
is Stored procedures are better?Minhaz06/13/01 05:16
How was this forum built?Alf Berndt05/28/01 16:37
thank for your ArticleJames Ho05/21/01 08:25
RE: Designers mostly suck...Neil J. McLeish05/08/01 04:34
Usability in General.Neil J. McLeish05/08/01 04:30
RE: Great article - Expound plzKen04/30/01 13:26
Great article - Expound plzTroy T. Hall04/25/01 23:52
Answer: the target audienceBrandon Blackmoor04/23/01 09:32
Depends fully on clientNiraj Dave04/21/01 04:50
RE: Graphical design no priority??Patrick04/18/01 15:41
depends on the clientSheryl McMillan04/11/01 09:48
RE: Graphical design no priority??Alihsan04/11/01 03:49
RE: Graphical design no priority??Dave04/09/01 11:59
RE: only techies agree with youDave04/09/01 11:57
RE: How many queries ?Matt04/06/01 14:26
RE: How many queries ?John Willemin03/29/01 15:58
RE: only techies agree with youEric Blade03/26/01 12:32
RE: Performance of include() and require()Eric Blade03/26/01 12:29
RE: Graphical design no priority??Eric Blade03/26/01 12:21
RE: How many queries ?Eric Blade03/26/01 12:20
Designers mostly suck...Ran03/26/01 05:12
Design vs. Code, Live at the Superdome!DolphinSnot03/20/01 00:22
RE: only techies agree with youbens03/18/01 01:54
Scalability!Jim03/17/01 10:16
RE: Graphical design no priority??Jesse Nutter03/15/01 20:49
RE: only techies agree with youTerence03/13/01 21:10
Yes but...py lemaire03/13/01 20:33
maintainability & UI & performanceMorphy03/13/01 12:36
Designing the PHPPete03/13/01 10:51
only techies agree with youmark harold03/13/01 08:04
Awesome article!!!!!Parry 03/12/01 16:02
RE: what i've learned ....Scott Molinari03/11/01 17:00
That's two different parts of site!!!McUrex03/11/01 02:00
Thanks.. great articleThimal03/09/01 22:30
RE: Performance of include() and require()Angus D Madden03/09/01 21:01
RE: Graphical design no priority??Gozer03/09/01 12:57
fundamental of Webjahns Leopold03/08/01 22:15
Performance of include() and require()Wayne Abbott03/08/01 15:59
RE: what i've learned ....Pete Ferzoco03/08/01 14:14
thank you, please post codeJamison03/08/01 10:18
RE: what i've learned ....L1003/07/01 14:19
RE: what i've learned ....Chris03/07/01 00:01
RE: Graphical design no priority??LordLobo03/06/01 12:12
RE: How many queries ?Tom Anderson03/06/01 11:10
RE: Graphical design no priority??bmpc03/06/01 10:29
Graphical design no priority??Edsko de Vries03/06/01 08:05
How many queries ?maykos03/06/01 06:19
RE: preloading imagespmoney03/06/01 04:56
RE: preloading imagesDominic morton03/05/01 18:55
RE: preloading imagesmark03/05/01 18:44
Excellent ArticleJonathan Younger03/05/01 18:34
RE: what i've learned ....Tom Anderson03/05/01 14:50
what i've learned ....anon03/05/01 11:28
typo funfoo03/05/01 05:21
preloading imagesWill Macdonald03/05/01 02:45
 

If you are looking for help, please post on the appropriate forum here. Your questions will be answered much more quickly.

Add A Comment:

Name:

Email:

Subject:

Message:

To reduce spam posts, messages are now manually approved

You are not [logged in]. That means your account will not get credit for this post.