Tu masz opis czym jest API
http://forum.pasja-informatyki.pl/1256/co-to-jest-api//===============================================================
// INFORMACJE O API
//===============================================================
Rozwiązań tego problemu jest całkiem sporo, np.:
* Zastosowanie protokołu HTTPS
* Zastosowanie wcześniej wspomnianego JSON'a
* połączenie powyższych
* WebSockets -
http://www.merixstudio.pl/blog/websockets-jak-dziala-i-gdzie-stosowac/* wiele innych sposobów na wymianę danych - pamiętaj na wymianę danych
Ogólnie rzecz biorąc, chodzi o to, aby nie dopuścić do sytuacji, gdzie każdy może mieć dostęp do bazy danych.
Wyobraź sobie Twitter lub Facebook, który udostępnia swoją BD całemu światu xD Oni udostępniają swoje API, czyli programowanie obiektowe (choć nie koniecznie - wtedy tworzysz bibliotekę), za pomocą, którego udostępniasz struktury/klasy/funkcje tylko te, które chcesz udostępnić.
Wewnątrz każdego API/biblioteki parsujesz HTTP(S) i/lub JSON'a, ale nie pozwalasz zwykłemu użytkownikowi na podejrzenie JSON'a, tylko może zobaczyć to co Ty chcesz aby było publiczne.
Użyteczny w tym przypadku jest wzorzec architektoniczny MVC(Model-View-Controller) lub MVVM, czyli dzielisz kod na warstwy. Nie jest to konieczne, ale z czasem warto się z nim zapoznać. Idea jest taka, że Controller lub ViewModel udostępnia gotową strukturę z danymi, która ma służyć do wypełnienia czegoś, np. tabeli. Dla przykładu jeżeli twoja tabela ma kolumny:
[ID] [nazwa_użytkownika] [Imię] [Nazwisko] [inne rekordy]
To twój Controller/ViewModel udostępnia tylko te dane, nic innego. Nie ma mowy o pokazaniu czystego JSON'a otrzymanego od serwera.
//===============================================================
// INFORMACJE O SQL Injection
//===============================================================
W dolnym linku spójrz na rozdział
Technical implementationshttps://en.wikipedia.org/wiki/SQL_injectionlub
http://www.w3schools.com/sql/sql_injection.aspDzięki temu otrzymujesz wszystkie dane jakie zawiera dana tabela. O zgrozo jeśli trzymasz w tej tabeli dosłownie wszystkie dane nawet hasła niezaszyfrowane/hash'owane :/
//===============================================================
// PODSUMOWANIE
//===============================================================
Reasumując, Nie musisz stosować programowania obiektowego(OOP) oraz wzorca architektonicznego aby zbudować coś na wzór API/biblioteki. Jednakże zastosowanie chociaż OOP ułatwi Ci implementację oraz rozwijanie funkcjonalności. Stosują to tak wielkie korporacje jak Twitter API czy Facebook API/Platform. Nie warto spoczywać na laurach nawet jeśli nie udostępnisz BD światu, gdyż warto ustrzec się w ogóle przed tak sformułowanymi zapytaniami do bazy danych. Oczywiście pomijam fakt, że
im więcej będziesz miał logiki/funkcjonalności na stronie tym bardziej powinieneś zastanowić się nad .NET ASP lub Java EE( Spring Framework ).