Cześć!
1.Jeśli odpalamy aplikacje ładują nam się wszystkie pliki js które możemy podejrzeć w których jest link do api w które można wejść i podając parametry url z js ciągnąć z bazy danych wszystkie dane lub ich cześć. Dobrze rozumiem ?
Dokładnie tak
2. Jeśli aplikacja ma login i hasło to użytkownik podobnie może ściągnąć całą bazę. Dobrze rozumiem ?
Czy całą? To od ciebie zależy co Twoje metody API udostępnią. Jeśli dasz w wyniku zawartość określonej tabeli to tak, użytkownik otrzyma wszystkie dane. Zazwyczaj jakieś globalne informacje to są dane słownikowe (kategorie produktów itp.).
3. Jak można najlepiej zabezpieczyć aplikacje SPA i API. Jak wy to robicie?
Zazwyczaj wykorzystuje się token (JWT) który udostępnia się klientowi na podstawie logowania. Chodzi o to, aby nie robić wielokrotnych zapytań na tabeli użytkowników przy udostępnianiu danych, a jedynie bazować na tokenie. Bardziej zaawansowane metody to pewnie weryfikacja IP, certyfikatów itp. - nie stosowałem, nie wypowiem się.
4. Korzystacie ze stronicowania żeby nie była wysyłana cała tabela w json tylko np 10 rekordów. i jak to obsłużyć w angular js?
Zazwyczaj stronicowanie odbywa się po stronie klienta przykład. Nie miałem potrzeby implementowania paginacji uwzględniającej jakieś bardzo duże ilości danych (Allegro itp.), tak aby były one porcjowane przez serwer, ale pewnie da się coś takiego zrobić. Poza tym stosuj najnowszego Angulara czyli wersję 5 obecnie - warto!
Edit: odnośnie porcjowania danych przez serwer wydaje się to proste do wykonania. Mając wiedzę ile elementów wyświetla strona pobierasz z serwera dane dotyczące strony przeglądanej przez użytkownika. Jakie dane przypadają na stronę i ile jest tych stron łatwo policzyć, mając informację o całkowitej ilości rekordów (odpowiadających jakimś kryteriom lub nie) - ot cała filozofia.
5.Czy jest możliwość skopiowania takiej aplikacji na inny serwer i podać link do jsona na innym serwerze(zakładając, że możemy się logować loginem i hasłem i taki login będzie miał ktoś inny w posiadaniu)?
Jest to możliwe, jak się zna adresy metod API i posiada token albo dane uwierzytelniające użytkownika (login, password) można dostać się do danych - zresztą w ten sposób testuje się API np. programami typu Postman.
M.