250 likes | 260 Views
Architecture. Stuff to memorise…. "A method tells an object to perform an action. A property allows us to read or change the settings of the object.". Architecture. Planning and designing a successful system Use tried and tested techniques Easy to maintain Robust and long lasting.
E N D
Stuff to memorise… "A method tells an object to perform an action. A property allows us to read or change the settings of the object."
Architecture • Planning and designing a successful system • Use tried and tested techniques • Easy to maintain • Robust and long lasting
The DVD Swap Shop • Written in VB.NET • Suffers from much poor design • Available for download from the module web site / blackboard • We shall look at a quick demo of what the program does
Security Issues • The standard login for the program is • User name mjdean@dmu.ac.uk • Password password123 • What happens if we use the following? • User name hi' or '1'='1 • User name hi' or '1'='1
SQL Injection Attacks • SQL is a language designed for querying database • It stands for Structured Query Language • Most commonly abbreviated to • SQL or Sequel (as in Sequel Server) • We are going to use SQL later in this module and you will be learning it in a parallel module so it won’t do any harm to show you a little SQL now
Concatenation • select * from Users where EMail = '" + Email + "' and UserPassword = '“ + Password + "'" • With the following account • mjdean@dmu.ac.uk • password123 • This concatenates to … • select * from Users where EMail = 'mjdean@dmu.ac.uk' and UserPassword = 'password123'
The Injection Attack • select * from Users where EMail = '" + Email + "' and UserPassword = '" + Password + "'" • With the following “account” • hi' or '1'='1 • This concatenates to … • select * from Users where EMail = 'hi' or '1'='1' and UserPassword = 'hi' or '1'='1'
How it Works • The single speech mark has terminated the string early • Since 1 always equals 1 we return all of the records • There are more than zero records so it logs the user in as the first account • The first user on any system is often the administrator • This is not a lesson on SQL injection attacks • it does server to illustrate the vulnerabilities of poor architecture
Maintenance • DVD Swap Shop built on Access • Not the best choice for an internet application • Change to another database e.g. SQL Server • DVD.MDB becomes DVD.MDF
Web page 1 Database Name Web page 2 Database Name Data Connection Class Database Web page 3 Database Name Web page 4 Database Name The Problem 100 page site with ten references to the database per page = 1000 changes to the code!
Scalability • How many of you have FaceBook or Twitter on your phone? • How would we modify the DVD swap shop so there is a phone app that does the same? • Re-design the pages • However what do we do about the functionality?
Other Issues to Think About • Dealing with International Markets • Dealing with Different Computer Platforms
Dealing with Different Computer Platforms • Mobile Apps - Apple/Android/Windows • PCs e.g. iOS / Windows/ Android • Linux machines • Servers running Apache / IIS • What is the technology that makes it possible to support such a range of platforms?
Presentation (Interface) Middle Tier Business Logic (Objects/Classes) Data Layer Database Simple Three Layered Architecture
Benefits : Change Database Technology without Changing the Interface • The interface has no knowledge of the structure of the database • Middle tier handles communication of data • Database technology may be changed with no impact on interface • All functionality in the middle tier • This means we may bolt on many different interfaces
Presentation (Interface) Web browser Data Layer Database Middle Tier Business Logic (Objects/Classes) Presentation (Interface) Mobile phone app Benefits : Attach Multiple Presentation Layers
Benefits : Code re-use and maintenance • All important code is stored in the middle layer • Any changes made here benefit all parts of the system using it • Code only created once so easier to find an maintain