RSA w PHP: chronimy nasze dane przy użyciu kryptografii asymetrycznej

Wielkość: px
Rozpocząć pokaz od strony:

Download "RSA w PHP: chronimy nasze dane przy użyciu kryptografii asymetrycznej"

Transkrypt

1 RSA w PHP: chronimy nasze dane przy użyciu kryptografii asymetrycznej Kamil Karczmarczyk Stopień trudności: Zabezpieczenie aplikacji PHP przed włamaniami to nie wsystko: jeżeli przesyłamy dane czystym tekstem, zawsze może się znależć ktoś, kto je przechwyci podsłuchując transmisję w Internecie. Aby zadbać o bezpieczeństwo danych, musimy więc sięgnąc po kryptografię asymetryczną RSA, która daje obecnie największą pewność jego ochrony i zastosować ją zarówno po stronie serwera, jak i klienta. W SIECI 1. Crypt_RSA/ klasa Crypt_RSA (PHP) 2. Crypt_Blowfish/ klasa Crypt_Blowfish (PHP) 3. Implementacja RSA (JS) 4. RSA Opis algorytmu RSA 5. Blowfish_(cipher) Opis algorytmu Blowfish 6. Obiekt advancedajax Nieodłączną częścią każdego mechanizmu logowania użytkowników jest przesyłanie hasła wpisanego na komputerze klienta (w przypadku aplikacji webowych w przeglądarce internetowej) na serwer, na którym (przeważnie w bazie danych) przechowywane są skróty MD5 haseł (zob. Ramka Podstawy MD5). Ponieważ te skróty są jednokierunkowe i odtworzenie haseł na ich podstawie nie jest możliwe, więc kradzież bazy nie da sprawcy wielu możliwości włamania. Poważnym problemem jest natomiast wspomniane już przesyłanie hasła jako czystego tekstu: wystarczy, aby intruz podsłuchał transmisję pomiędzy klientem a serwerem (np. za pomocą sniffera), a będzie mógł bez problemu dokonać agresji. W poprzednim numerze PHP Solutions, w artykule Kryptografia w PHP prezentowaliśmy rozwiązanie tego problemu przy użyciu algorytmu HMAC-MD5 po stronie klienta na wpisywanym haśle. Algorytm ten (w naszym przypadku zaimplementowany w języku JavaScript i działający na przeglądarce internetowej) zamienia hasło na specjalny hash, podczas generowania którego używany jest również tajny klucz. Następnie, otrzymany skrót jest wysyłany do serwera, gdzie podobnie jak przy sprawdzaniu hasła przesyłanego czystym tekstem jest porównywany z hashami zapisanymi w bazie danych. Korzystając z tej metody wyeliminujemy ryzyko Co należy wiedzieć... Należy znać podstawy programowania w PHP oraz AJAX. Przydatna będzie też podstawowa wiedza na temat kryptografii. Co obiecujemy... Pokażemy zasadę działania algorytmu asymetrycznego RSA i zademonstrujemy, jak przy jego użyciu stworzyć system bezpiecznego logowania. 2

2 podsłuchu (nie przesyłamy samego hasła, lecz jego skrót), ale możemy jej użyć wyłącznie wobec już istniejących haseł, których skróty zostały utworzone i zapisane w bazie na serwerze. W jaki sposób więc przeprowadzimy proces rejestracji nowego konta na serwerze? Musimy w końcu przesłać na serwer informacje o nowym haśle: z oczywistych powodów nie chcemy tego robić przy użyciu czystego tekstu; przesyłanie skrótu takiego hasła również nie uchroni nas przed niebezpieczeństwem podsłuchu: ktoś, kto w tym momencie przechwyci ten skrót (rozpozna, że chodzi o dodawanie nowego konta np. po danych wysyłanych z formularza), będzie mógł go potem zwyczajnie wykorzystać przy logowaniu się na serwerze. Szyfrowanie danych za pomocą klucza symetrycznego (np.3des lub twofish) również nie wchodzi w grę, gdyż taki klucz musiałby być znany zarówno klientowi, jak i serwerowi, co oznacza konieczność jego transmisji przez Internet i czyni go podatnym na podsłuch. Jedynym sensownym rozwiązaniem problemu zabezpieczenia hasła będzie użycie asymetrycznego algorytmu szyfrującego RSA. Algorytm ten działa w oparciu o dwa klucze: publiczny (który jest ogólnie dostępny) i prywatny (dostępny wyłącznie na serwerze). Więcej informacji na temat algorytmu RSA zamieściliśmy w Ramce RSA: Zasada działania. Podstawy MD5 MD5 jest algorytmem haszującym, zwanym również jednokierunkową funkcją skrótu. W wyniku jego działania, w oparciu o podstawione dane powstaje unikalny 128-bitowy skrót. Odtworzenie danych na jego podstawie nie jest możliwe. Unikalność i jednokierunkowość działania MD5 umożliwia jego zastosowanie np. przy sprawdzaniu haseł (na serwerze zamieszczane są jedynie skróty haseł, aby uniemożliwić przechwycenie samych haseł w razie kradzieży danych), podpisywaniu plików umieszczanym w wielu repozytoriach plikom towarzyszą skróty MD5: obliczając skrót pobranego pliku i porównując go z tym zamieszczonym na serwerze możemy sprawdzić, czy archiwum nie jest uszkodzone (to samo da się zastosować np. przy porównywaniu zawartości wypalonej płyty CD lub DVD z jej obrazem, choć trwa to dość długo). Rysunek 1. Schemat działania RSA Tworzymy system bezpiecznego logowania dla aplikacji Notatki osobiste Pokażemy teraz, jak wykorzystać algorytm szyfrujący RSA w PHP, tworząc system bezpiecznego logowania dla aplikacji Notatki osobiste, która będzie służyła jako nasz osobisty notatnik online. Założenia Chcemy, aby nasza aplikacja posiadała system logowania poszczególnych użytkowników oraz możliwość dodawania nowych kont. Każdy posiadacz konta będzie mógł wyświetlać swoje notatki, a także dodawać nowe. Cała komunikacja pomiędzy klientem a serwerem będzie szyfrowana. Przygotowania Tworząc nasz system bezpiecznego logowania skorzystamy z gotowych implementacji algorytmów szyfrowania, zarówno tych działających po stronie serwera (w PHP), jak i klienta (w języku JavaScript). W pierwszym przypadku, do szyfrowania za pomocą RSA posłuży nam klasa Crypt_RSA z repozytorium PEAR (pear.php.net). Po stronie klienta użyjemy natomiast implementacji algorytmu RSA w języku JavaScript umieszczonej na stronie Musimy z niej pobrać pliki: BigInt.js, Barrett.js oraz RSA.js. Wymianę danych będziemy obsługiwać przy pomocy technologii AJAX, a konkretnie projektu advajax (zarówno o tym projekcie, jak i o technologii AJAX pisaliśmy w numerze 1/2006). Pobieramy więc plik advajax.js ze strony i zabieramy się do pracy. Rejestracja kont Obsługą procesu rejestracji nowych kont zajmą się trzy pliki: register.php będzie odpowiadał za wyświetlenie formularza zakładania konta wraz z wygenerowanym wcześniej kluczem publicznym, RSA: Zasada działania RSA to pierwszy (wynaleziony w 1977 roku) i obecnie najpopularniejszy algorytm szyfrowania asymetrycznego, używany powszechnie np. w handlu elektronicznym czy w celu podpisywania i. Zasadę działania algorytmu RSA przedstawiamy na Rysunku 1. Jego idea (jak każdego szyfru asymetrycznego) polega na użyciu dwóch k luczy: publicznego i prywatnego. Oba z nich są generowane przez odbiorcę wiadomości, po czym klucz publiczny jest jawnie przesyłany nadawcy wiadomości, może też być zamieszczony np. na stronie WWW do pobrania. Nadawca szyfruje tekst za pomocą klucza publicznego i wysyła go odbiorcy. Zaszyfrowany tekst można z kolei odszyfrować tylko kluczem prywatnym, który posiada odbiorca. Nie wnikając w teorię matematyczną, która leży u podstaw RSA, warto zapamiętać, że klucz publiczny składa się z dwóch części: wykładnika publicznego (ang. public exponent) i modułu (ang. modulus), a klucz prywatny z wykładnika prywatnego (ang. private exponent) i tego samego modułu te informacje będą nam potrzebne później, gdy będziemy korzystali z klas PEAR-owych do obsługi RSA. 3

3 Listing 1. Plik register.php generowanie kluczy i wyswietlenie formularza <?php session_start(); // generowanie pary kluczy require_once 'Crypt/RSA.php'; $key_pair = new Crypt_RSA_KeyPair(512); $public_key = $key_pair->getpublickey(); $private_key = $key_pair->getprivatekey(); $enc_exp = $public_key->getexponent(); $dec_exp = $private_key->getexponent(); $modulus = $public_key->getmodulus(); // zapamiętanie danych do późniejszego dekodowania $_SESSION['rsa']=serialize($key_pair); // konwersja danych do szyfrowania na kod szesnastkowy (heksadecymalny) $enc_exponent = bin2hex($enc_exp); $mod = bin2hex($modulus);?> <html> <head> <title>mynotes - registration</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script type="text/javascript" src="advajax.js"></script> <script type="text/javascript" src="bigint.js"></script> <script type="text/javascript" src="barrett.js"></script> <script type="text/javascript" src="rsa.js"></script> <!-- skrypt obsługujący formularz za pomocą AJAX --> <script type="text/javascript" src="register.js"></script> <script type="text/javascript"> var enc_exp = "<?=$enc_exponent?>"; var modulus = "<?=$mod?>"; </script> </head> <body onload="updateobjects()"> <b>mynotes - Registration</b><br/> <form method="post" action="register2.php" id="registerform"> <label for="username">login: <input type="text" name="username" id="username" /><br/> <label for="password">password: <input type="password" name="password" id="password" /><br/> <label for="name"> <input type="text" name=" " id=" " /><br/> <label for="name">name: <input type="text" name="name" id="name" /><br/> <label for="surname">surname: <input type="text" name="surname" id="surname" /><br/> <input type="submit" value="register" id="submitbtn" /> </form> <div style="margin-top: 10px" id="response"></div> </body> </html> register.js będzie w nim następowało szyfrowanie danych zawartych w formularzu oraz ich wysyłanie na serwer, register2.php w tym pliku nastąpi odszyfrowanie danych i założenie konta. Generowanie kluczy Spójrzmy na Listing 1, na którym zamieściliśmy plik register.php. Zaczniemy od wygenerowania pary kluczy (publicznego i prywatnego) poprzez utworzenie obiektu $key_pair klasy Crypt_RSA_KeyPair oraz użycie jej metod getpublickey() i getprivatekey(). Oba wygenerowane klucze stanowią osobne obiekty, z których następnie wydobywamy oba wspomniane wcześniej (zob. Ramka RSA: zasada działania) wykładniki (getexponent()) oraz moduł (getmodulus()). Następnie serializujemy (serialize()) i zapisujemy w sesji obiekt $key_pair do późniejszego wykorzystania oraz konwertujemy klucz publiczny (a właściwie jego wykładnik i moduł) z postaci binarnej na wartość szesnastkową (bin2hex()), ponieważ algorytm RSA, z którego będziemy korzystać po stronie przeglądarki, wymaga podania danych dotyczących klucza właśnie w takim formacie. Po wykonaniu tych operacji przechodzimy do generowania formularza dodawania konta (kod HTML). Jedynym dynamicznym elementem, który umieścimy w tym kodzie, będzie osadzony w prezentowanym pliku fragment skryptu JavaScript, który odpowiada za dołączenie plików: advajax.js, BigInt.js, Barrett.js i RSA.js oraz utworzenie zmiennych Java- Script enc_exp i modulus, przechowujących wartość wykładnika publicznego (szyfrującego) i modułu. Szyfrowanie Spójrzmy teraz na Listing 2, na którym przedstawiamy napisany w języku Java- Script obiekt updateobjects() (pamiętajmy, że w JavaScript nie ma klas, tylko pojedyncze obiekty, definiowane analogicznie, jak funkcje). Będzie on wywoływany przy wystąpieniu zdarzenia onload zdefiniowanego w znaczniku <body>, czyli po każdym załadowaniu strony WWW umieszczonej pomiędzy <body> a </body>. Wewnątrz updateobjects() tworzymy parę kluczy RSA, czyli obiekt RSAKeyPair, na podstawie publicznego wykładnika i modułu. Prywatny wykładnik nie jest nam potrzebny, więc wpisujemy 0. Następnie wdrażamy 4

4 obsługę formularza za pomocą obiektu advajax. Metoda assign pobiera (jako parametr) nazwę formularza oraz obiekt zawierający metody jego obsługi. Funkcja OnInitialization jest wykonywana jeszcze przed wysłaniem formularza. To w niej następuje szyfrowanie przesyłanych danych, czyli wartości wszystkich pól formularza (nazwy użytkownika, hasła, adresu , imienia i nazwiska) Listing 2. Plik register.js szyfrowanie i wysyłanie danych function updateobjects() { var key; key = new RSAKeyPair(enc_exp,0,modulus); function $(id) { return document.getelementbyid(id); advajax.assign($("registerform"), { oninitialization : function(obj) { // szyfrowanie danych z formularza obj.parameters["username"]=encryptedstring( key,obj.parameters["username"]); obj.parameters["password"]=encryptedstring( key,obj.parameters["password"]); obj.parameters[" "]=encryptedstring(key,obj.parameters[" "]); obj.parameters["name"]=encryptedstring(key,obj.parameters["name"]); obj.parameters["surname"]=encryptedstring(key,obj.parameters["surname"]);, $("response").innerhtml=obj.responsetext;, onerror : function() { alert("can't connect to server."); ); Listing 3. Plik register2.php deszyfrowanie i zapisanie danych nowego usera <?php session_start(); require_once 'Crypt/RSA.php'; // odczytanie przechowywanego obiektu (kluczy) $rsa_keys = unserialize($_session['rsa']); $priv = $rsa_keys->getprivatekey(); $rsa_obj = new Crypt_RSA; // deszyfrowanie $username=$rsa_obj->decryptbinary(hex2bin($_post['username']),$priv); $password=$rsa_obj->decryptbinary(hex2bin($_post['password']),$priv); $ = $rsa_obj->decryptbinary(hex2bin($_post[' ']),$priv); $name = $rsa_obj->decryptbinary(hex2bin($_post['name']),$priv); $surname = $rsa_obj->decryptbinary(hex2bin($_post['surname']),$priv); // tworzenie nowego konta $user = new user; $result = $user->register($username,$password,$ ,$name,$surname); if ($result) { echo "Your account are successfully created."; else { echo "error: your account can't created!";?> Listing 4. Funkcja hex2bin function hex2bin($hex) { $str=""; for($i=0;$i<strlen($hex);$i=$i+2) { $str.=chr(hexdec(substr($hex,$i,2))); return $str; za pomocą algorytmu RSA. Funkcja onsuccess wyświetla wewnątrz znacznika <div> (o id= response ) dane zwrócone przez plik register2.php, do którego wysłaliśmy wprowadzone w formularzu wartości. Deszyfrowanie i tworzenie konta Przejdźmy do omówienia zawartości wspomnianego już pliku register2.php (Listing 3). Otrzymuje on przekazane za pomocą advajax dane z formularza, które musimy teraz odszyfrować. Posłużymy się do tego zapisanym wcześniej w sesji jako rsa obiektem $key_pair, który nazwiemy $rsa_keys i zdeserializujemy (unserialize()). Następnie wydobędziemy z tego obiektu klucz prywatny, który także będzie obiektem o nazwie $priv. Potem utworzymy nowy obiekt $rsa_obj klasy Crypt_RSA i wywołujemy jego metodę DecryptBinary() odpowiedzialną za deszyfrowanie danych (każdego z przesłanych pól formularza z osobna). Metoda ta przyjmuje dwa parametry: zaszyfrowany tekst oraz utworzony przez nas wcześniej klucz prywatny $priv (obiekt klasy Crypt_RSA_ KeyPair). Ponieważ dane pochodzące z formularza zostały po zaszyfrowaniu przekonwertowane na system szesnastkowy, więc musimy je przywrócić do formy binarnej przy użyciu funkcji hex2bin(), którą napiszemy sami (Listing 4), gdyż nie została ona zaimplementowana w PHP. Mając odszyfrowane dane użytkownika, możemy przystąpić do jego rejestracji w serwisie. Robimy to np. przy pomocy klasy user, której implementację pominęliśmy, gdyż nie jest ona istotna dla ukazania technik kryptograficznych. Kryptografia hybrydowa Jako kryptografia hybrydowa rozumiane jest jednoczesne użycie kryptografii symetrycznej i asymetrycznej. Dotychczas szyfrowaliśmy dane tylko w jednym kierunku: od użytkownika do serwera. Aby zrealizować nasz projekt, będziemy jednak potrzebowali szyfrowania dwukierunkowego, gdyż w jedną stronę będziemy wysyłali nasz login i hasło oraz dodawali nowe notatki, a w drugą wyświetlali istniejące notatki. Zabezpieczenie danych przy tych czynnościach za pomoca samego RSA byłoby trudne, wykorzystamy więc dodatkowo symetryczny algorytm blowfish. Przygotowania Będziemy więc potrzebowali implementacji algorytmu blowfish. W PHP posłużymy się do tego klasą Crypt_Blowfish z repozytorium PEAR. Po stronie przeglądarki internetowej, obsługą blowfisha zajmie się plik encrypt.js, który możemy pobrać ze strony lub 5

5 Listing 5. Formularz logowania //... <script type="text/javascript" src="encrypt.js"></script> //... <body onload="updateobjects()"> <b>mynotes - Your own on-line notices</b><br/> <div id="html"> <form method="post" action="index2.php" id="loginform"> <label for="username">login: <input type="text" name="username" id="username" /><br/> <label for="password">password: <input type="password" name="password" id="password" /><br/> <input type="hidden" name="blowfish" id="blowfish" value="" /> <input type="submit" value="login" id="submitbtn" /> </div> Listing 6. index.js obsługa AJAX function updateobjects() { // tworzenie klucza publicznego var key; key = new RSAKeyPair(enc_exp,0,modulus); // tworzenie klucza symetrycznego var blowfishkey = ""; var chars="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz " var i; for (i=0; i<25; i++) { blowfishkey += chars.charat(math.floor(math.random()*62)) document.forms["loginform"].elements["blowfish"].value=blowfishkey; function $(id) { return document.getelementbyid(id); advajax.assign($("loginform"), { oninitialization : function(obj) { // szyfrowanie danych z formularza (RSA)) obj.parameters["username"] = encryptedstring(key, obj.parameters["usernam e"]); obj.parameters["password"] = encryptedstring(key, obj.parameters["passwor d"]); obj.parameters["blowfish"] = encryptedstring(key, blowfishkey);, // deszyfrowanie blowfish $("html").innerhtml = securedecrypt(obj.responsetext, blowfishkey); ); advajax.assign($("addnoteform"), { oninitialization : function(obj) { // szyfrowanie blowfish obj.parameters["title"] = secureencrypt(obj.parameters["title"], blowfishkey); obj.parameters["note"] = secureencrypt(obj.parameters["note"], blowfishkey);, $("html").innerhtml = obj.responsetext; ); function goto(page, pageid=0) { advajax.post({ url : "index2.php?page="+page+"&pageid="+pageid, $("html").innerhtml = securedecrypt(obj.responsetext, blowfishkey); ); bezpośrednio z encrypt.js. Cała nasza aplikacja, podobnie jak to było w przypadku rejestracji, będzie się składała z trzech plików: index.php, index.js i index2.php, których zadanie jest analogiczne do plików z poprzedniego przykładu. Logowanie Spójrzmy na Listing 5. Przedstawiamy na nim fragment pliku index.php w miejscu, w którym różni się on od register.php. Dołączamy w nim też skrypt encrypt.js w języku JavaScript, który odpowiada za szyfrowanie i deszyfrowanie algorytmem blowfish. Tym razem zagnieździmy nasz formularz wewnątrz znacznika <div>, któremu nadamy id html: później będziemy dynamicznie zastępowali ten fragment kodu inną treścią. Obsługa AJAX Różnice między plikiem index.js a register.js są znacznie większe, niż pomiędzy index.php a register.php. Na Listingu 6 prezentujemy obsługę praktycznie całej szyfrowanej wymiany pomiędzy plikami index.php i index2.php. Tworzymy w nim zarówno klucz asymetryczny dla algorytmu RSA, jak i losowy ciąg znaków będący kluczem symetrycznym blowfish. Następnie korzystamy ze znanego już nam obiektu advajax, który występuje trzykrotnie. Pierwszy raz odwołuje się do formularza loginform (advajax.assign) i za pomocą RSA szyfruje login, hasło oraz dodatkowo wygenerowany klucz blowfish, a następnie przekazuje je do pliku login2.php. Od tej pory, po otrzymaniu klucza blowfish przez serwer, wymiana szyfrowanych danych odbywa się przy pomocy algorytmu symetrycznego. RSA było potrzebne jedynie do przesłania symetrycznego klucza. Gdy teraz będziemy chcieli wyświetlić wszystkie nasze notatki, wywołamy funkcję goto() z parametrem note, aby w odpowiedzi z pliku index2.php otrzymać zaszyfrowany fragment kodu odpowiedzialny za ich wyświetlenie. To, w jaki sposób plik index2.php szyfruje dane, widzimy na Listingu 7. Aby odpowiednio zaszyfrować i odszyfrować dane, po stronie przeglądarki używamy w skrypcie JavaScript funkcji secureencrypt() i securedecrypt(), natomiast w PHP wykorzystujemy PE- AR-ową klasę Crypt_Blowfish, która 6

6 Listing 7. Zawartość pliku index2.php <?php session_start(); require_once 'Crypt/RSA.php'; require_once 'Crypt/Blowfish.php'; echo "<a href=\"javascript:goto('notes')\">my notes</a> "; echo "<a href=\"javascript:goto('addnote')\">add note</a> "; echo "<a href=\"javascript:goto('logout')\">logout</a><br/><br/>"; if(!isset($_get['page'])) { // logowanie $rsa_keys = unserialize($_session['rsa']); $priv = $rsa_keys->getprivatekey(); $rsa_obj = new Crypt_RSA; $username = $rsa_obj->decryptbinary(hex2bin($_post['username']),$priv); $password = $rsa_obj->decryptbinary(hex2bin($_post['password']),$priv); $blowfishkey = $rsa_obj->decryptbinary(hex2bin($_post['blowfish']),$priv); $_SESSION['username'] = $username; $_SESSION['password'] = $password; $_SESSION['blowfishKey'] = $blowfishkey; $user = new user($username, $password); $notes = $user->getnotes(); $html=""; foreach ($notes as $note) { $html.="<a href=\"javascript:goto('note','".$note['id']."')\">"; $html.=$note['title']."</a><br/>"; $blowfish = new Crypt_Blowfish($blowfishKey); echo(base64_encode($blowfish->encrypt($html))); else if ($_GET['page']=="addnote") { // wyświetlanie formularza $html = <<<heredochtml <form method="post" action="index2.php=addnote2" id="addnoteform"> <label for="title">title: <input type="text" name="title" id="title" /><br/> <textarea name="note" id="note"></textarea><br/> <input type="submit" value="add" id="submitbtn" /> </form> heredochtml; $blowfish = new Crypt_Blowfish($_SESSION['blowfishKey']); echo(base64_encode($blowfish->encrypt($html))); else if ($_GET['page']=="addnote2") { // dodawanie notatki $user = new user($_session['username'], $_SESSION['password']); jest bardzo intuicyjna i prosta w użyciu. Z listingów możemy wywnioskować, że sam proces przesyłania nowej notatki w formie zaszyfrowanej (obiekt advajax z parametrem odwołującym się do formularza AddNoteForm) oraz jej deszyfrowanie z poziomu PHP jest praktycznie identyczny, jak w przypadku pobierania istniejącej notatki z serwera, tyle że kolejność wykonywania czynności jest odwrotna. Podsumowanie W przedstawionej aplikacji pokazaliśmy, w jaki sposób można skorzystać z dwóch metod kryptograficznych (asymetrycznej i symetrycznej) i podaliśmy przykładowe zastosowanie tych technik. Potęga RSA w połączeniu z prostotą języka PHP oraz całkiem niezłą funkcjonalnością Java- Scriptu umożliwia tworzenie naprawdę bezpiecznych aplikacji, które będą odporne na podsłuch i przechwytywanie danych. Zachęcamy do korzystania z kryptografii we własnych projektach zwłaszcza tam, gdzie poufność przesyłanych i gromadzonych danych jest szczególnie istotna, poczynając od aplikacji do gromadzenia prywatnych notatek i systemów przekazywania wiadomości osobistych, poprzez narzędzia używane wewnątrz firmy (np. do zarządzania projektem, danymi księgowymi czy biznesplanem), po dostępne dla tysięcy użytkowników jednocześnie systemy e-commerce, takie jak sklepy internetowe czy pasaże aukcyjne. Na pohybel intruzom! // ustawienie klucza blowfish $blowfish = new Crypt_Blowfish($_SESSION['blowfishKey']); //deszyfrowanie blowfish $title = $blowfish->decrypt(base64_decode($_post['title'])); $notetext = $blowfish->decrypt(base64_decode($_post['note'])); //dodawanie notki $user->addnote($title,$notetext); echo "new note added"; else if (($_GET['page']=="note")&&(isset($_GET['pageid']))) { // wyświetlanie notki $user = new user($_session['username'], $_SESSION['password']); $note = $user->getnotebyid($_get['pageid']); $html = "<b>".$note['title']."</b><br/>"; $html.= "<p>".$note['text']."</p>"; $blowfish = new Crypt_Blowfish($_SESSION['blowfishKey']); echo(base64_encode($blowfish->encrypt($html)));?> O autorze Kamil Karczmarczyk jest uczniem Liceum Ogólnokształcącego. Od kilku lat hobbystycznie zajmuje się programowaniem, między innymi w PHP. Interesuje się bezpieczeństwem sieci, kryptografią oraz matematyką. Kontakt z autorem: limak@mmj.pl 7

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Baza danych do przechowywania użytkowników

Baza danych do przechowywania użytkowników System logowania i rejestracji jest bardzo przydatną funkcjonalnością na każdej stronie. Umożliwia sprawną identyfikację i zarządzanie użytkownikami. Strona ze skryptem logowania nabiera dużej wartości.

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl wersja.2.9 data 2014-11-21 Opis usług: P24 KOD P24 KLUCZ P24 WAPA SEND SMS Strona 1 z 8 P24 KOD Przebieg transakcji Operacje po stronie Sprzedawcy

Bardziej szczegółowo

Wprowadzenie do Internetu Zajęcia 5

Wprowadzenie do Internetu Zajęcia 5 Zajęcia 5 Formularze w PHP Przekazywanie danych ze strony do skryptu PHP Dane ze strony WWW do skryptu PHP można przekazać za pomocą formularzy. W tym celu należy stworzyć formularz (znacznik ),

Bardziej szczegółowo

Dokumentacja smsapi wersja 1.4

Dokumentacja smsapi wersja 1.4 Dokumentacja smsapi wersja 1.4 1. Wprowadzenie Platforma smsapi została skierowana do użytkowników chcących rozbudować swoje aplikacje o system wysyłania smsów. Aplikacja ta w prosty sposób umożliwia integrację

Bardziej szczegółowo

Przewodnik użytkownika

Przewodnik użytkownika STOWARZYSZENIE PEMI Przewodnik użytkownika wstęp do podpisu elektronicznego kryptografia asymetryczna Stowarzyszenie PEMI Podpis elektroniczny Mobile Internet 2005 1. Dlaczego podpis elektroniczny? Podpis

Bardziej szczegółowo

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp. Bezpieczeństwo w sieci I a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp. Kontrola dostępu Sprawdzanie tożsamości Zabezpieczenie danych przed podsłuchem Zabezpieczenie danych przed kradzieżą

Bardziej szczegółowo

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa

Bardziej szczegółowo

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 1 Wprowadzenie do PHP Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,

Bardziej szczegółowo

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 4 Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Protokół SSL do zabezpieczenia aplikacji na poziomie protokołu transportowego

Bardziej szczegółowo

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna 1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 11 Spis treści 16 Zarządzanie kluczami 3 16.1 Generowanie kluczy................. 3 16.2 Przesyłanie

Bardziej szczegółowo

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi. Spis treści: Czym jest szyfrowanie Po co nam szyfrowanie Szyfrowanie symetryczne Szyfrowanie asymetryczne Szyfrowanie DES Szyfrowanie 3DES Szyfrowanie IDEA Szyfrowanie RSA Podpis cyfrowy Szyfrowanie MD5

Bardziej szczegółowo

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Laboratorium nr 5 Podpis elektroniczny i certyfikaty Laboratorium nr 5 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

Przykładowa integracja systemu Transferuj.pl

Przykładowa integracja systemu Transferuj.pl Krajowy Integrator Płatności Spółka Akcyjna z siedzibą w Poznaniu, przy ul. Św. Marcin 73/6, wpisana do rejestru przedsiębiorców Krajowego Rejestru Sądowego prowadzonego przez Sąd Rejonowy Poznań Nowe

Bardziej szczegółowo

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym) Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo

Rejestracja i Logowania - PHP/MySQL

Rejestracja i Logowania - PHP/MySQL Artykuł pobrano ze strony eioba.pl Rejestracja i Logowania - PHP/MySQL Opis skryptu służącego do rejestrowania oraz logowania się użytkowników z użyciem bazy danych. Aby w pełni zrozumieć poniższy artykuł

Bardziej szczegółowo

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Laboratorium nr 3 Podpis elektroniczny i certyfikaty Laboratorium nr 3 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

Przykładowa integracja systemu tpay.com KIP S.A. ul. Św. Marcin 73/ Poznań.

Przykładowa integracja systemu tpay.com KIP S.A. ul. Św. Marcin 73/ Poznań. KIP S.A. ul. Św. Marcin 73/6 61-808 Poznań www.kipsa.pl www.tpay.com 1 Przesyłanie parametrów transakcji Poniżej przedstawiono kod przykładowej strony HTML, której zadaniem jest przekierowanie klienta

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika

Bardziej szczegółowo

WSIZ Copernicus we Wrocławiu

WSIZ Copernicus we Wrocławiu Bezpieczeństwo sieci komputerowych Wykład 4. Robert Wójcik Wyższa Szkoła Informatyki i Zarządzania Copernicus we Wrocławiu Plan wykładu Sylabus - punkty: 4. Usługi ochrony: poufność, integralność, dostępność,

Bardziej szczegółowo

MVC w praktyce tworzymy system artykułów. cz. 2

MVC w praktyce tworzymy system artykułów. cz. 2 MVC w praktyce tworzymy system artykułów. cz. 2 W drugiej części artykułu o wzorcu MVC stworzymy część skryptu, odpowiedzialną za obsługę kategorii. Tworzymy kontroler kategorii Na początek stwórzmy plik

Bardziej szczegółowo

14. POZOSTAŁE CIEKAWE FUNKCJE

14. POZOSTAŁE CIEKAWE FUNKCJE 14. POZOSTAŁE CIEKAWE FUNKCJE Funkcji jest cała masa, których nie poruszono w tym kursie. Bardziej ciekawe postaram się właśnie w tej lekcji omówić. Na pewno wielu z Was, czeka z niecierpliwością na funkcję

Bardziej szczegółowo

Wykład 03 JavaScript. Michał Drabik

Wykład 03 JavaScript. Michał Drabik Wykład 03 JavaScript Michał Drabik Język programowania wykorzystywany na stronach internetowych głównie w celu umożliwienia interakcji z użytkownikiem. Kod JavaScript może być umieszczany w kodzie XHTML

Bardziej szczegółowo

Zajęcia 4 - Wprowadzenie do Javascript

Zajęcia 4 - Wprowadzenie do Javascript Zajęcia 4 - Wprowadzenie do Javascript Co to jest Javascript Javascript jest językiem skryptowym pozwalającym na dołączanie dodatkowej funkcjonalności do stron WWW. Jest ona najczęściej związana z modyfikacją

Bardziej szczegółowo

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia Dane - pobieranie, przekazywanie i przechowywanie dr Beata Kuźmińska-Sołśnia Definicja funkcji function nazwa (lista parametrów) { blok instrukcji Użycie instrukcji return wartość kończy działanie funkcji

Bardziej szczegółowo

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

Bardziej szczegółowo

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH Serwer SSH Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH - Wprowadzenie do serwera SSH Praca na odległość potrzeby w zakresie bezpieczeństwa Identyfikacja

Bardziej szczegółowo

Dokumentacja Skryptu Mapy ver.1.1

Dokumentacja Skryptu Mapy ver.1.1 Dokumentacja Skryptu Mapy ver.1.1 2 Dokumentacja Skryptu Mapy ver.1.1 Spis treści Dokumentacja skryptu... 3 Dodatkowe informacje i kontakt... 7 3 Dokumentacja Skryptu Mapy ver.1.1 Dokumentacja skryptu

Bardziej szczegółowo

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Grzegorz Bobiński Uniwersytet Mikołaja Kopernika Toruń, 22.05.2010 Kodowanie a szyfrowanie kodowanie sposoby przesyłania danych tak, aby

Bardziej szczegółowo

Bezpieczeństwo usług oraz informacje o certyfikatach

Bezpieczeństwo usług oraz informacje o certyfikatach Bezpieczeństwo usług oraz informacje o certyfikatach Klienci banku powinni stosować się do poniższych zaleceń: nie przechowywać danych dotyczących swojego konta w jawnej postaci w miejscu, z którego mogą

Bardziej szczegółowo

Technologia Internetowa w organizacji giełdy przemysłowej

Technologia Internetowa w organizacji giełdy przemysłowej Technologia Internetowa w organizacji giełdy przemysłowej Poruszane problemy Handel elektroniczny - giełda przemysłowa Organizacja funkcjonalna giełdy Problemy techniczne tworzenia giełdy internetowej

Bardziej szczegółowo

Authenticated Encryption

Authenticated Encryption Authenticated Inż. Kamil Zarychta Opiekun: dr Ryszard Kossowski 1 Plan prezentacji Wprowadzenie Wymagania Opis wybranych algorytmów Porównanie mechanizmów Implementacja systemu Plany na przyszłość 2 Plan

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ www.e-awizo.pl BrainSoft sp. z o. o. ul. Bolesława Chrobrego 14/2 65-052 Zielona Góra tel.68 455 77 44 fax 68 455 77 40 e-mail: biuro@brainsoft.pl

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 7 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Sesje i stan aplikacji w kategorii czasu okres

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1) Maciej Zakrzewicz Platformy softwarowe dla rozwoju systemów intra- i internetowych Architektura Internetu (1) Internet jest zbiorem komputerów podłączonych do wspólnej, ogólnoświatowej sieci komputerowej

Bardziej szczegółowo

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

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.

Bardziej szczegółowo

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.

Bardziej szczegółowo

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.

Bardziej szczegółowo

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI SPIS TREŚCI 1.Dwie metody przekazu danych do serwera 2 2.Metoda GET przykład 3 3.Metoda POST przykład 4 4.Kiedy GET a kiedy POST 5 5.Szablony po co je stosować 7 6.Realizacja szablonu własną funkcją 8

Bardziej szczegółowo

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http Dokumentacja interfejsu HTTPD Platforma BSMS.PL Instrukcja podłączenia po przez http Dokumentacja interfejsu httpd (strona 2) SPIS TREŚCI 1. Zawartość dokumentu str.3 2. Informacje ogólne 2.1 Zastosowanie

Bardziej szczegółowo

Dokumentacja techniczna - PBL

Dokumentacja techniczna - PBL Dokumentacja techniczna - PBL Spis treści 1. Wprowadzenie... 2 2. Formularz płatności... 2 3. Rejestracja konta w HotPay... 3 4. Rejestracja serwisu... 4 5. Pojedyncza płatność... 5 5.1 Konfiguracja serwisu...

Bardziej szczegółowo

INSTRUKCJA AKTYWACJI I INSTALACJI CERTYFIKATU ID

INSTRUKCJA AKTYWACJI I INSTALACJI CERTYFIKATU ID Instrukcja jak aktywować certyfikat BASIC ID oraz PROFESSIONAL ID znajduje się na stronie www.efpe.pl dla zalogowanych użytkowników. Login i hasło do strony efpe.pl znajduje się wewnątrz twojego identyfikatora

Bardziej szczegółowo

Laboratorium 6 Tworzenie bloga w Zend Framework

Laboratorium 6 Tworzenie bloga w Zend Framework Laboratorium 6 Tworzenie bloga w Zend Framework Przygotowanie bazy danych 1. Wykonaj skrypt blog.sql, który założy w bazie danych dwie tabele oraz wpisze do nich przykładowe dane. Tabela blog_uzytkownicy

Bardziej szczegółowo

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

Technologie informacyjne lab. 4

Technologie informacyjne lab. 4 Technologie informacyjne lab. 4 Cel ćwiczenia: Zapoznanie się z komunikacją ze zdalnym serwerem w sieci na przykładzie bezpiecznego serwera SSH. Wstępne zapoznanie się z ideą certyfikatów. Praca z edytorem

Bardziej szczegółowo

Integracja frameworku Wicket z serwisem Platnosci.pl.

Integracja frameworku Wicket z serwisem Platnosci.pl. Integracja frameworku Wicket z serwisem Platnosci.pl. Paweł Wąsowski, 157702 1. Wprowadzenie Niniejszy dokument powstał w trakcie realizacji projektu SzukamNeta.pl. Dokument zawiera praktyczne wskazówki

Bardziej szczegółowo

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Założenia projektowe systemu NETDOC. część 1: założenia ogólne i funkcjonalność rdzenia systemu Założenia ogólne Celem projektu jest

Bardziej szczegółowo

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

Bardziej szczegółowo

Podstawy Secure Sockets Layer

Podstawy Secure Sockets Layer Podstawy Secure Sockets Layer Michał Grzejszczak 20 stycznia 2003 Spis treści 1 Wstęp 2 2 Protokół SSL 2 3 Szyfry używane przez SSL 3 3.1 Lista szyfrów.................................... 3 4 Jak działa

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140402 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Limity zapytań... 3 1.5. Odpowiedzi

Bardziej szczegółowo

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie

Bardziej szczegółowo

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna PuTTY Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP Marcin Pilarski PuTTY emuluje terminal tekstowy łączący się z serwerem za pomocą protokołu Telnet, Rlogin oraz SSH1 i SSH2. Implementuje

Bardziej szczegółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu

Bardziej szczegółowo

Zdarzenia Zdarzenia onload i onunload

Zdarzenia Zdarzenia onload i onunload Zdarzenia Zdarzenia onload i onunload Ćwiczenie 1. Rysunek 1. Okno powitalne wykorzystujące zdarzenie onload Na stronie mogą zachodzić różne zdarzenia, np. użytkownik kliknie myszą lub zacznie wprowadzać

Bardziej szczegółowo

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja KAMELEON.CRT Funkcjonalność szyfrowanie bazy danych 42-200 Częstochowa ul. Kiepury 24A 034-3620925 www.wilksoft..pl Wtyczka kryptograficzna do KAMELEON.ERP Wymagania : KAMELEON.ERP wersja 10.10.0 lub wyższa

Bardziej szczegółowo

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Podstawy systemów kryptograficznych z kluczem jawnym RSA Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych

Bardziej szczegółowo

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //... JQuery jquery (jquery.com) to jedna z najbardziej popularnych bibliotek/frameworków do javascript. Jej popularność oczywiście znikąd się nie bierze. Dzięki tej bibliotece jesteśmy w stanie o wiele szybciej

Bardziej szczegółowo

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 3 PHP PHP - cechy PHP (Hypertext Preprocessor) bardzo łatwy do opanowania, prosta składnia, obsługuje wymianę danych z różnymi systemami baz danych pozwala na dynamiczne generowanie

Bardziej szczegółowo

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81 Spis treści Wstęp 5 Rozdział 1. Praca z AJAX-em 9 Pierwszy przykład 9 Obiekt XMLHttpRequest 12 Transmisja danych 21 Model DOM 34 Obsługa wielu żądań 45 Rozdział 2. Współpraca ze skryptami PHP 55 Odbieranie

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Aplikacje internetowe

Aplikacje internetowe Laboratorium 6 ZAKŁAD SYSTEMÓW ROZPROSZONYCH LABORATORIUM Aplikacje internetowe PHP + MySQL + biblioteka GD 1. Sprawdź czy istnieją pliki z poprzedniego laboratorium: cw_2.php, cw_3.php i cw_4.php. Przypomnij

Bardziej szczegółowo

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac?

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac? Płace Optivum Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac? Program Płace Optivum umożliwia wysyłanie pracownikom pasków z list płac drogą elektroniczną.

Bardziej szczegółowo

Szablon główny (plik guestbook.php) będzie miał postać:

Szablon główny (plik guestbook.php) będzie miał postać: Skrypt: Księga gości Skrypt generujący księgę gości będzie się składał z trzech części: szablonu głównego, który należy zapisać pod nazwą guestbook.php, formularza służącego do dodawania wpisów, który

Bardziej szczegółowo

Strategia gospodarki elektronicznej

Strategia gospodarki elektronicznej Strategia gospodarki elektronicznej Andrzej GRZYWAK Poruszane problemy Modele gospodarki elektronicznej Handel elektroniczny - giełda przemysłowa Organizacja funkcjonalna giełdy Problemy techniczne tworzenia

Bardziej szczegółowo

Bezpieczna poczta i PGP

Bezpieczna poczta i PGP Bezpieczna poczta i PGP Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2010/11 Poczta elektroniczna zagrożenia Niechciana poczta (spam) Niebezpieczna zawartość poczty Nieuprawniony dostęp (podsłuch)

Bardziej szczegółowo

Szyfrowanie RSA (Podróż do krainy kryptografii)

Szyfrowanie RSA (Podróż do krainy kryptografii) Szyfrowanie RSA (Podróż do krainy kryptografii) Nie bójmy się programować z wykorzystaniem filmów Academy Khana i innych dostępnych źródeł oprac. Piotr Maciej Jóźwik Wprowadzenie metodyczne Realizacja

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego

Bardziej szczegółowo

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca Uwierzytelnianie w PHP 01 Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca stron internetowych, jest identyfikacja i uwierzytelnienie uprzywilejowanego użytkownika. Od zaprojektowania

Bardziej szczegółowo

WorkshopIT Komputer narzędziem w rękach prawnika

WorkshopIT Komputer narzędziem w rękach prawnika WorkshopIT Komputer narzędziem w rękach prawnika Krzysztof Kamiński, Sąd Okręgowy we Wrocławiu, Wrocław, 16 listopada 2006r. Agenda Bezpieczeństwo przepływu informacji w systemach informatycznych Hasła

Bardziej szczegółowo

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Wersja 3.0 02-03-2017 Spis treści Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów

Bardziej szczegółowo

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach Zasady tworzenia stron w PHP z jednym plikiem głównym Aplikacje oraz strony WWW bardzo często tworzy się tak, że do jednego dokumentu

Bardziej szczegółowo

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA RSA Symetryczny system szyfrowania to taki, w którym klucz szyfrujący pozwala zarówno szyfrować dane, jak również odszyfrowywać je. Opisane w poprzednich rozdziałach systemy były systemami symetrycznymi.

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Uwierzytelnianie użytkowników, Obiekt session, Silniki

Bardziej szczegółowo

SSL (Secure Socket Layer)

SSL (Secure Socket Layer) SSL --- Secure Socket Layer --- protokół bezpiecznej komunikacji między klientem a serwerem, stworzony przez Netscape. SSL w założeniu jest podkładką pod istniejące protokoły, takie jak HTTP, FTP, SMTP,

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza HTML z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed wysłaniem

Bardziej szczegółowo

Publikowanie strony WWW

Publikowanie strony WWW Danuta ROZPŁOCH-NOWAKOWSKA Strona 1 2007-10-11 Moduł 2 (1. część) Publikowanie strony WWW Do publikowania stron WWW wykorzystywany był dotychczas w ramach zajęć wydziałowy serwer WWW. Kroki publikacji

Bardziej szczegółowo

Personal Home Page PHP: Hypertext Preprocessor

Personal Home Page PHP: Hypertext Preprocessor Języki, które już znacie Wykład9PodstawyPHP,str1 język polski język angielski język C język preprocesora C język bash-a język HTML kolejny język: PHP Język PHP Wykład9PodstawyPHP,str2 Personal Home Page

Bardziej szczegółowo

Sieci Komputerowe. Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014

Sieci Komputerowe. Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014 Sieci Komputerowe Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014 1. SSH SSH (Secure Shell) jest protokołem umożliwiającym zdalną pracę terminalową oraz transfer plików. Zapewnia

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

SMS Kod Automatyczny

SMS Kod Automatyczny Dokumentacja 1.0.0 SMS Kod Automatyczny Dokumentacja dla SMS Kod Automatyczny CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa Górnicza Tel.: +48 032 764-18-42 Fax: +48 032 764-18-40 Infolinia: 0

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Zawartość specyfikacji:

Zawartość specyfikacji: Zawartość specyfikacji: Wielkość, waga i kodowanie Umieszczanie obrazków w kreacji Elementy niedopuszczalne Nazewnictwo plików Stopka mailingu Nie spełniam wymagań pracodawcy Waga, wielkość i kodowanie

Bardziej szczegółowo

Usługi sieciowe systemu Linux

Usługi sieciowe systemu Linux Usługi sieciowe systemu Linux 1. Serwer WWW Najpopularniejszym serwerem WWW jest Apache, dostępny dla wielu platform i rozprowadzany w pakietach httpd. Serwer Apache bardzo często jest wykorzystywany do

Bardziej szczegółowo

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie Laboratorium Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie programowalnym FPGA. 1. Zasada działania algorytmów Algorytm Vernam a wykorzystuje funkcję

Bardziej szczegółowo

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo