RSA w PHP: chronimy nasze dane przy użyciu kryptografii asymetrycznej
|
|
- Mieczysław Bukowski
- 7 lat temu
- Przeglądów:
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 Ć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ółowoFunkcje 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ółowoBaza 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ółowoAplikacje 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ółowoSpecyfikacja 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ółowoWprowadzenie 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ółowoDokumentacja 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ółowoPrzewodnik 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ółowoBezpieczeń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ółowoAplikacje 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ółowoLaboratorium 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ółowoWykł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ółowoWprowadzenie 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ółowoKryptografia. 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ółowoZamiana 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ółowoLaboratorium 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ółowoPrzykł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ółowoZadanie 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ółowo2.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ółowoRejestracja 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ółowoLaboratorium 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ółowoPrzykł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ółowoZaawansowane 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ółowoWSIZ 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ółowoMVC 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ółowo14. 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ółowoWykł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ółowoZaję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ółowoDane - 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ółowoKomunikator 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ółowoSerwer 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ółowoDokumentacja 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ółowoZastosowanie 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ółowoBezpieczeń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ółowoTechnologia 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ółowoAuthenticated 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ółowoWprowadzenie 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ółowoPHP: 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ółowoe-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ółowoInternetowe 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ółowoPLAN 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ółowosystemó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ółowoAplikacje 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ółowoInstrukcja 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ółowoCertyfikat 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ółowoReferat 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ółowoDokumentacja 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ółowoDokumentacja 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ółowoINSTRUKCJA 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ółowoLaboratorium 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ółowo2 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ółowoTechnologie 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ółowoIntegracja 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ółowoSzczegół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ółowoKontrola 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ółowoPodstawy 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ółowoAPI 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ółowoTworzenie 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ółowoPuTTY. 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ółowoTechnologie 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ółowoZdarzenia 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ółowoKAMELEON.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ółowoPodstawy 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ółowoJQuery. $('#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ółowoSystemy 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ółowoSpis 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ółowoZPKSoft 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ółowoAplikacje 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ółowoPł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ółowoSzablon 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ółowoStrategia 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ółowoBezpieczna 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ółowoSzyfrowanie 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ółowoTworzenie 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ółowoAplikacje 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ółowoJednym 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ółowoWorkshopIT 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ółowoInstrukcja 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ółowoKomunikacja 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ółowoRSA. 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ółowoPodstawy 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ółowoBaza 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ółowoBazy 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ółowoProgramowanie 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ółowoSSL (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ółowoAplikacje 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ółowoPublikowanie 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ółowoPersonal 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ółowoSieci 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ółowoWybrane 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ółowoByć 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ółowoSMS 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ółowoObiektowy 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ółowoZawartość 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ółowoUsł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ółowoLaboratorium. 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ółowoPROBLEMATYKA 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ółowoPawel@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