How to design a secure network?

What are the best steps to follow to build a decent and secure social network platform from scratch?

  • please notify me if my question is too general  in which case i will change it. this is what i am planning to do : - study design patterns in PHP - study how to store and process large amounts of data. -  take a look on the best practices for building large scale PHP applications - study the architecture of some PHP social network frameworks - designing the architecture of the s.n framework - implement a basic and secure social networking website i have no experience with building big projects, so what do you thing and advice me to do, read, test, tools to use, how to organize ? etc ... i am asking the best methodologies and steps you have followed to build something big,  even if it's not a social network

  • Answer:

    My first impression notices that the question is dictated around some presumptions that should be eliminated. I see the questions are asking pretty specific questions on technology stack (PHP, assuming you meant LAMP stack) I see the questions are thinking design around good code will win over product decisions Product decisions always win at the start.  Feedback / Data from users via traffic patterns trump everything else. Good design patterns would usually apply to any web site or service, not necessarily social networks Great design eyes will inherently factor in security by scrutinizing that eliminate race conditions, curbing DDoS attacks, avoiding SQL injections, etc. Surround yourself with experienced folks from each area (tech ops, product, financing, etc.) and don't be afraid to ask in person.  Good luck!

Jack Chan at Quora Visit the source

Was this solution helpful to you?

Other answers

At first you should think about: "What kind of data you will store?", "What kind of logic the social network will have?" Than you can think about data base engine. If your project isn't successful existing project what need changes for architecture in order to get benefits like speed, less servers traffic and other things, just build your project standard way. What are differences? Now you don't know nothing about people behavior, you don't know which parts of platform have the biggest traffic. Design patterns? If you don't have to big knowledge about it, don't be worry. If you make a right choice for framework, you will have architectural rules as a base for your work. Modern frameworks have good secure libraries for authentication and authorisation and managing users permissions. SQL injection secure is resolved in layer of orm. Every well maid framework serve a lot of protection but "the biggest enemy is in us". Every developer can do few wrong implementations, make a wrong choice. If you are looking for good solutions dedicated for large scale application i can recommend for you: PHP: symfony2 (+doctrine2). Well designed. Help you manage server side architecture. Many clear rules. Very advanced. Big community open for help. Great documentation.. javascript: backbone(+jquery) help you manage your javascript in order to get well designed and clear architecture. Can help to split your project for separated areas  managing requests by ajax. Template system like underscode(default backbone templates system) help you reduce data consumption tranferring between client and server (just json raw data). database: depend on kind of data and system logic.

Roman Piekarski

Big means scaling and scaling means latency.  Everything is about latency, so you should design to compensate for latency.  What I mean is, big sites use clusters of machines, or sharded databases, and you have to account for things like replication lag, or job queuing, or race conditions due to sub-millisecond processes clashing. At scale, saving milliseconds in your app could mean the difference between staying up or going down.

Jeremy Wilson

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.