Programowanie. Dodatek - uzupełnienie wiadomości. mgr inż. Krzysztof Szwarc. Sosnowiec,

Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Programowanie Komponentowe WebAPI

PHP: bazy danych, SQL, AJAX i JSON

Specyfikacja implementacyjna aplikacji serwerowej

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Szczegółowy opis zamówienia:

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Komunikacja międzysystemowa

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

REFERAT PRACY DYPLOMOWEJ

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Database Connectivity

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

OpenLaszlo. OpenLaszlo

Tworzenie oprogramowania

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

OPIS PRZEDMIOTU ZAMÓWIENIA

Czym jest Ruby on Rails?

Praktykant Programista ios/android/windows Phone/Windows 8/PHP/.NET (do wyboru) Biuro w Warszawie

Wprowadzenie do Doctrine ORM

Informatyczne fundamenty

Program szkolenia: REST i Microservices w PHP

INŻYNIERIA OPROGRAMOWANIA

Podręcznik Integracji

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Wybrane działy Informatyki Stosowanej

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Pojęcie systemu baz danych

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

REFERAT PRACY DYPLOMOWEJ

Spring, Maven, Postman, Debugger

Automatyzacja Testowania w WEB 2.0

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

ZAPYTANIE OFERTOWE. Firma DOMSET Marcin Brochacki zwraca się z prośbą o przesłanie oferty cenowej na

ERDAS ADE Suite edytor baz danych Oracle Spatial

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

INŻYNIERIA OPROGRAMOWANIA

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Drobne błędy w portalach WWW

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Budowanie interfejsów do baz danych

Technologia informacyjna

Piotr Bubacz Cloud Computing

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

ActiveXperts SMS Messaging Server

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Programowanie obiektowe

Projektowani Systemów Inf.

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Paweł Rajba

Podstawowe wykorzystanie Hibernate

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Architektura aplikacji

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

PRZEWODNIK PO PRZEDMIOCIE

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Bezpieczeństwo systemów komputerowych

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Architektury Usług Internetowych. Laboratorium 2 RESTful Web Services

Wykład 5: PHP: praca z bazą danych MySQL

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

(Apache) CouchDB. Krzysztof Kulewski 2008

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Podstawy programowania III WYKŁAD 2

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Aspekty bezpieczeństwa aplikacji internetowych

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

Instrukcja laboratoryjna cz.3

Podstawy technologii WWW

Transkrypt:

Programowanie Dodatek - uzupełnienie wiadomości mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 45 mgr inż. Krzysztof Szwarc Programowanie

Informacje ogólne 2 / 45 mgr inż. Krzysztof Szwarc Programowanie

CRUD Opis CRUD (ang. create, read, update and delete) oznacza cztery podstawowe funkcje w aplikacji bazodanowej, które umożliwiają zarządzanie nią. http://www.codingerik.com/assets/images/crudblog.png 3 / 45 mgr inż. Krzysztof Szwarc Programowanie

ORM Opis Mapowanie obiektowo-relacyjne (ORM) jest sposobem odwzorowania obiektowej architektury systemu informatycznego na bazę danych (lub inny element systemu) o relacyjnym charakterze. https://www.fullstackpython.com/img/visuals/orms-bridge.png 4 / 45 mgr inż. Krzysztof Szwarc Programowanie

Aplikacje webowe 5 / 45 mgr inż. Krzysztof Szwarc Programowanie

Skąd brać darmowe obrazki? https://pixabay.com/ 6 / 45 mgr inż. Krzysztof Szwarc Programowanie

Darmowe szaty graficzne do Bootstrapa https://bootswatch.com/ Przykład www.szwarc.net.pl/sze 7 / 45 mgr inż. Krzysztof Szwarc Programowanie

Optymalizacja obrazków https://tinypng.com/ 8 / 45 mgr inż. Krzysztof Szwarc Programowanie

Optymalizacja obrazków - przykład https://tinypng.com/ 9 / 45 mgr inż. Krzysztof Szwarc Programowanie

Odpowiednie rozmiary obrazków Niezależnie od podanych wartości atrybutów width oraz height rozmiar pobieranego obrazka będzie taki sam, dlatego należy przechowywać - na serwerze - pliki o żądanych rozmiarach, aby przyspieszyć wczytywanie strony i zmniejszyć wielkość transferu plików do użytkownika (warto pamiętać o urządzeniach mobilnych). 10 / 45 mgr inż. Krzysztof Szwarc Programowanie

Minifikacja kodu Minifikacja Minifikacja (ang. minification) jest procesem polegającym na zmniejszenie kodu źródłowego poprzez usunięcie niepotrzebnych znaków (bez wpływu na funkcjonalność). http://minifier.org/ 11 / 45 mgr inż. Krzysztof Szwarc Programowanie

Minifikacja - przykład https://cdn.keycdn.com/ 12 / 45 mgr inż. Krzysztof Szwarc Programowanie

Obfuskacja kodu Obfuskacja Obfuskacja/zaciemnienie kodu (ang. obfuscation) jest techniką przekształcania kodu polegającą na zachowaniu semantyki przy znaczącym utrudnieniu jego zrozumienia. https://javascriptobfuscator.com/ 13 / 45 mgr inż. Krzysztof Szwarc Programowanie

Wykorzystanie CDN CDN Content delivery network (CDN) jest rozproszonym systemem dostarczania treści. Jego celem jest udostępnianie zawartości cechującej się wysoką dostępnością oraz wydajnością użytkownikom. CDN dla Bootstrapa - np. https://bootstrapcdn.com/. https://cdn.keycdn.com/ 14 / 45 mgr inż. Krzysztof Szwarc Programowanie

Testy aplikacji webowych https://developers.google.com/speed/pagespeed/insights/ 15 / 45 mgr inż. Krzysztof Szwarc Programowanie

Testy aplikacji webowych cz. 2 https://gtmetrix.com/ 16 / 45 mgr inż. Krzysztof Szwarc Programowanie

Testy aplikacji webowych cz. 3 https://validator.w3.org/ 17 / 45 mgr inż. Krzysztof Szwarc Programowanie

AJAX Opis AJAX (ang. Asynchronous JavaScript and XML) jest techniką tworzenia aplikacji internetowych, opierającą się na interakcji użytkownika z serwerem bez przeładowywania całego dokumentu (w sposób asynchroniczny). https://derivadow.files.wordpress.com 18 / 45 mgr inż. Krzysztof Szwarc Programowanie

JSON Opis JSON (ang. JavaScript Object Notation) jest tekstowym formatem wymiany danych, stanowiącym alternatywę dla XMLa. https://www.researchgate.net 19 / 45 mgr inż. Krzysztof Szwarc Programowanie

Heroku Opis Heroku jest platformą do tworzenia i hostowania aplikacji w chmurze. Aktualnie obsługuje ona Ruby, Javę, JS (Node.js), Scalę, Clojure, Pythona, PHP oraz Perla. https://blog.phusion.nl/ 20 / 45 mgr inż. Krzysztof Szwarc Programowanie

Zasada działania Heroku http://jr0cket.co.uk/ 21 / 45 mgr inż. Krzysztof Szwarc Programowanie

RESTful Webservices Opis REST (ang. Representational State Transfer) jest wzorcem dotyczącym tworzenia architektury aplikacji rozproszonych. Opis RESTful Webservices to usługa sieciowa stworzona w oparciu o HTTP oraz REST. Zakłada ona posiadanie zasobów (ang. resources), czyli pewnych adresów webservice ów. Komunikacja pomiędzy klientem, a serwerem jest bezstanowa - każde odpytanie serwisu jest traktowane jako niezależna transakcja. 22 / 45 mgr inż. Krzysztof Szwarc Programowanie

Idea RESTful Webservices Metoda Typ operacji GET pobranie danych POST dodanie danych PUT edycja danych DELETE usunięcie danych 23 / 45 mgr inż. Krzysztof Szwarc Programowanie

Przykład Zasób Metoda Typ operacji szwarc.net.pl/student GET pobranie wszystkich studentów szwarc.net.pl/student/1 GET pobranie studenta o id 1 szwarc.net.pl/student POST dodanie nowego studenta szwarc.net.pl/student PUT edycja danych studenta szwarc.net.pl/student/1 DELETE usunięcie studenta o id 1 24 / 45 mgr inż. Krzysztof Szwarc Programowanie

Aplikacje desktopowe 25 / 45 mgr inż. Krzysztof Szwarc Programowanie

Build w konfiguracji release, a debug https://12factor.net/ 26 / 45 mgr inż. Krzysztof Szwarc Programowanie

Darmowy kreator instalatora - Inno Setup http://jrsoftware.org/ 27 / 45 mgr inż. Krzysztof Szwarc Programowanie

Inżynieria wsteczna 28 / 45 mgr inż. Krzysztof Szwarc Programowanie

Kod pośredni, a inżynieria wsteczna http://www.howtodroid.com/ 29 / 45 mgr inż. Krzysztof Szwarc Programowanie

Mur chiński Mur chiński Mur chiński jest techniką opierającą się na utworzeniu dwóch niezależnych grup programistów, w którym jedna tworzy dokumentację na podstawie kodu źródłowego pozyskanego za pomocą inżynierii wstecznej, a druga pisze program (na podstawie otrzymanej - od pierwszego zespołu - dokumentacji). http://core0.staticworld.net/ 30 / 45 mgr inż. Krzysztof Szwarc Programowanie

Wybrane aspekty bezpieczeństwa aplikacji 31 / 45 mgr inż. Krzysztof Szwarc Programowanie

SQL Injection - zasada działania SQL Injection SQL Injection to metoda ataku opierająca się na wykorzystaniu nieodpowiedniego filtorwania lub typowania danych wprowadzonych przez użytkownika, które zostają wykorzystane w zapytaniu SQL. https://itswadesh.files.wordpress.com/ 32 / 45 mgr inż. Krzysztof Szwarc Programowanie

Ciekawy przykład SQL Injection http://notey.com/ 33 / 45 mgr inż. Krzysztof Szwarc Programowanie

Uniknięcie SQL Injection - podpinanie wartości $db = new PDO ( mysql : host = local ; dbname =db,, ); $st = $db -> prepare ( INSERT INTO user VALUES (:id,: name ) ); $id =6; $name = Ala ; $st -> bindvalue ( :id,$id, PDO :: PARAM_INT ); $st -> bindvalue ( : name,$name, PDO :: PARAM_STR ); $st -> execute (); 34 / 45 mgr inż. Krzysztof Szwarc Programowanie

Zadanie 1 Spróbuj włamać się na stronę http://szwarc.net.pl/zajecia/sql.html z wykorzystaniem SQL Injection. 35 / 45 mgr inż. Krzysztof Szwarc Programowanie

XSS - zasada działania XSS Cross-site scripting (XSS) jest sposobem ataku opierającym się na osadzeniu - przez atakującego - w treści strony kodu (zazwyczaj JS), który wyświetlony innym użytkownikom może doprowadzić do wykonania niepożądanych akcji. https://excess-xss.com/ 36 / 45 mgr inż. Krzysztof Szwarc Programowanie

Podstawowa ochrona przed XSS - filtrowanie wyświetlanych wartości echo htmlspecialchars ($txt, ENT_QUOTES, UTF -8 ); 37 / 45 mgr inż. Krzysztof Szwarc Programowanie

Zadanie 1 Spróbuj przekierować użytkownika na inną stronę z wykorzystaniem XSS (sprawdź różne przeglądarki internetowe). Link: http: //szwarc.net.pl/zajecia/xss.php?message=hello 38 / 45 mgr inż. Krzysztof Szwarc Programowanie

Zadanie 1 Spróbuj przekierować użytkownika na inną stronę z wykorzystaniem XSS (sprawdź różne przeglądarki internetowe). Link: http: //szwarc.net.pl/zajecia/xss.php?message=hello 2 Wykonaj zadanie 1 dla strony http://szwarc.net.pl/zajecia/xss2.html 38 / 45 mgr inż. Krzysztof Szwarc Programowanie

Automatyzacja wytwarzania oprogramowania 39 / 45 mgr inż. Krzysztof Szwarc Programowanie

Docker Opis Docker jest narzędziem umożliwiającym uruchomienie procesów w kontenerach (odizolowanych środowiskach) dostarczających procesowi niezbędnych zależności. http://dapperdeveloper.com 40 / 45 mgr inż. Krzysztof Szwarc Programowanie

Docker, a VM http://zdnet2.cbsistatic.com 41 / 45 mgr inż. Krzysztof Szwarc Programowanie

Gradle Opis Gradle jest narzędziem wykorzystywanym do automatycznego budowania projektów (z konkurencyjnych rozwiązań warto znać Ant oraz Mavena). Za jego pomocą następuje np. kompilacja kodu źródłowego, tworzenie pliku ze skompilowanymi klasami (np. JARa), uruchomienie wszystkich testów oraz zarządzanie zależnościami (zewnętrznymi bibliotekami). http://codecouple.pl/ 42 / 45 mgr inż. Krzysztof Szwarc Programowanie

Gradle, a konkurencja (2016 rok) http://codecouple.pl/ 43 / 45 mgr inż. Krzysztof Szwarc Programowanie

Ciągła Integracja Opis Ciągła Integracja (CI) jest praktyką zakładającą częste scalanie wyników pracy (przynajmniej raz dziennie) przez członków zespołu programistycznego, otrzymując każdego dnia kilka zintegrowanych wersji kodu, które są sprawdzane przez automatyczny proces budowania. http://namiekko.pl/tag/jenkins/ 44 / 45 mgr inż. Krzysztof Szwarc Programowanie

Dziękuję za uwagę 45 / 45 mgr inż. Krzysztof Szwarc Programowanie