Pagini Web – Aspecte DE Securitate
Cuprins
Cuprins
Introducere
Capitolul 1 – Partea practică – Partea teoretică
Capitolul 2. INTERNETUL; WORLD WIDE WEB
2.1.Scurt istoric
2.2.Tipuri de gazduire web
2.3. Pagina HTML
2.4. Setarea proprietăților documentului
Capitolul 3 – PHP
3.1 Ce sunt variabilele?
3.2 Declararea variabilelor
3.3 Utilizarea variabilelor globale
3.4 Utilizarea variabilelor locale
3.5 Utilizarea variabilelor statice
3.6 Utilizarea referintelor
Capitolul 4 – Eludarea restricțiilor de autorizare (authorization bypass
4.1 Atacul
4.2 Metode de prevenire a atacurilor de tip Authorisation Bypass
Capitolul 5. METODE DE ATAC ȘI DE APĂRARE
Capitolul 6 – Captcha
Capitolul 7 – Dreamweaver
Concluzie
Bibiografie
Introducere
Tema aleasă pentru lucrarea de licența este PAGINI WEB – ASPECTE DE SECURITATE.În aceasta lucrare prezint pas cu pas cum se va crea un site web , în primul si primul rând avem nevoie de un WebHost adică de un site tip server pentru upload-area site-ului vostru , după care urmează instalarea programelor de care ne folosim dacă nu cumva le avem instalate.
Crearea site-ului se face cu ajutorul programului numit DREAMWEAVER ADOBE 6 există de asemenea și alte versiuni dar eu am folosit ADOBE 6.In prin plan avem detaliile pas cu pas pentru crearea site-ului scris dar și cu poze pentru întelegerea mai amplă a ceea ce trebuie sa faceți.Puteți folosii coduri scrise sau cu ajutorul forumurilor sau prin setăriile programului , fiecare după bunul lui plac.
Aspectele de securitate folosite in această lucrare este folosirea codului CAPTCHA CODE si a condițiilor puse in cod pentru utilizarea si crearea USERNAME AND PASSWORD fară a importa o bază de date , alegerea mai simplă.
Pentru a intra in site-ul creat prima dată trebuie sa treceți prin partea de securizare adică ceea ce am spus ulterior , toate datele trebuie trecute corect deoarece dacă sunt trecute greșit nu vă veți putea loga.Username este ADMIN iar parola este ADMIN cu acest username si acestă parolă ne vom loga.
După logarea in site vom aștepta 5 secunde pentru a intra pe pagina web creată , ceea ce am creat este o pagină simplă cu muzică de diferite genuri plus filme care se pot download-a care este partea frumoasă a acestui site , muzică si filme noi aparute la zi cu toate.De ce zic la zi cu toate? Pentru că dănd click pe link-urile de download ne va trimite pe site-ul de unde se va download-a si frumusețea este că intrând pe pagina respectivă aceasta ne va arata cele mai noi melodii.
Multe alte teorii sunt explicate in paginiile de mai jos dar care nu sunt toate inserate în site , cum ziceam este o parte teoretică care dacă doriți să folosiți anumite lucruri în plus aveți parte teoretică și stiți de unde să începeți si aveți o idee ce anume doriți să faceți sau să implementați pe parcurs sau chiar la început.
Astea fiind spuse pe scurt în acestă mică prezentare sau introducere mai jos va începe partea practică si detaliată in privința site-urilor web si securizarea sau atacarea acestora.
Capitolul 1 – Partea practică – Partea teoretică
Crearea unei pagini WEB folosind ADOBE DREAMWEAVER 6 plus folosirea codurilor pentru aspectele de securitate exemplu CAPCHA CODE si Autentificarea pe pagină (Logarea pe cont).
In ceea ce va urma există un cuprins cu etapele care trebuie urmarite pentru formarea paginilor web.
Cînd Dreamweaver 6 se deschide apare toate modurile de lucru și de creare a paginilor web.
Pentru aceasta licență am folosit modul PHP prezentînd si partea practică explicînd pas cu pas crearea acestui site.
Se va alege PHP dupa care va aparea o fereastra noua(New page)
in partea de sus există taburile file,edit,view,insert …etc(conturat) ,
vom apăsa file după care ne apare o listă cu ce anume vrem să folosim.
Alegem new după care ne apare o fereastră cu modurile in care se poate creea acest site gen: Mobile , desktop , tablet , selectăm BLANK PAGE dupa care ne va apărea in fereastră modurile in care se poate crea site-ul după cum se poate vedea in imagini , După realizarea unei pagini noi se pot deschide mai multe pagini(depinde de cîte pagini ai nevoie pentru site) dar etapele de sus nu se vor repeta deoarece Dreamweaver iți va lua in considerare pagina creeată și o va deschide gen copy – paste.
aicea este simplu putem alege ce vrem să facem în ce mod , în ce limbaj.La final după ce alegem ne va aparea o pagină goală.În partea de sus unde avem file,edit …etc sub ele avem 3 taburi numite CODE,Split,design,live.
CODE
In această fereastră se scriu codurile pentru creea site-ului , pentru scrierea corectă a codurilor se poate scrie si vedea in NOTEPAD ++ sau cautînd pe internet ceea ce vă interesează sau consultînd forumurile în domeniul despre care vă intereseaza.
Split
Aicea apar 2 ferestre nu doar una cum apare în Tabul code . Avem în partea stangă CODE iar în dreapta DESIGN ceea ce este mult mai usor pentru cei care folosesc doar coduri deoarece in timpul scrierii codurilor pot vedea ce rezulta și pot modifica după dorința
Design
Aicea este din nou o singură fereastră dar de data aceasta doar cu modul design,nu vom vedea codurile doar designul , pentru a vedea codurile și a le scrie sau rescrie va trebui sa dam click pe CODE.
LIVE
Aicea se poate vedea LIVE ceea ce sa creat fară a consulta browser-ul.
2.Crearea linkurilor de transfer
Pentru a creea linkuri de transfer de pe o pagină pe alta este cat se poate de simplu , pentru a afla urmariți pașii descriși mai jos:
În primul și în primul rînd scriem ce vrem , după care selectăm tot cîmpul sau cît ne înteresează , apoi selectăm si ținem apăsat butonul incercuit mai sus.Acesta este butonul ce face legătura LINK între ceea ce am selectat și unde anume vrem șă ne trimită.Cum spuneam ținem apăsat butonul și trasăm exact unde vrem să ne trimită(vezi poza de jos)
Ceea ce vedeți se găsește in partea dreaptă jos și sunt fișierele create (fiecare după cîte a creat), aicea vom ajunge cu săgeata de la butonul de LINK și logic că de aicea vom alege unde dorim să ne trimită.
Aceeași pași se fac ori de cîte ori dorim sa avem link-uri de trimitere în altă pagină.
La fel se procedează și pentru link-urile de download exemplu ceea ce am în fișierul music.dwt Music-New.dwt.
Pentru modificarea fontului , scrisului , culorii … etc în partea de jos a paginii avem Page Properties … (vezi poza 1)dînd click ne va aparea o pagină cu diferite taburi(vezi poza 2) de aicea după cum se vede putem modifica ceea ce am descris mai sus , plus pentru ca pagina noastră să nu arate urît sau să fie aiurea gen:
Scrisul împrăștiat
Neordonat
Poze aliniate aiurea
Link-urile să nu arate STAS ( Culoare albastră,subliniat)
… etc.
De aicea putem modifica după dorință.
(Fig. 1)
(Fig. 2)
Vorbeam de link-uri pentru a arăta ca un text normal într-o pagină normală vom face așa:
Dăm click pe Links(CSS) deja selectat in poza 2
Modificăm la Link font , după dorința fiecăruia
Mărimea la Size , la fel dupa dorința fiecăruia
Link color , aicea alegem coloarea dorită
Visited links , aicea este culoarea după ce linkul a fost accesat(Dînd click pe el)
Si finalul este Underline style , aicea avem 4 caracteristici in imaginea de jos.
Pentru ca linia linkului să nu ne apară decît dacă ajungem cu cursorul acolo selectăm al trei-lea sau dacă nu vrem deloc să apară selectăm al doilea.
După toate astea dăm click pe APPLY – OK
Si aceeași pași se fac pentru fiecare link în parte sau linie de linkuri.
Folosirea background-ului
Pentru a insera un background vom intra la Page Properties exact ca și in pașii descriși mai sus doar că in loc sa intrăm la Links(CSS) vom intra la Appearance(HTML).
Aicea avem precum in Fig. 3 mai multe setări:
Background image , aicea vom alege poza dorită accesînd datele noastre dând click pe Browse
Dacă nu dorim să avem o imagine de fundal anume , putem oricând să alegem varianta simplă Background , unde alegem culoarea sau colorile pe care le dorim
Text , alegem culoarea sau fontul dorit
Links , alegem culoarea link-ului , pașii descriși mai sus.(Links(CSS))
Left margin, top … etc , aicea fixăm distanța la stânga , dreapta , sus , jos a paginii noastre.
După toate astea dăm click pe APPLY – OK
(Fig. 3)
Username and password and Captcha
Pentru crearea username and password s-a folosit Notepad ++ și cu ajutorul tutorialelor am reușit să creez un cont prin care trebuie logare obligatorie , inclusiv complectare captcha code .
In codul de mai jos sa lucrat si prelucrat in Notepad ++ , condiția pusă a fost ca complectând username and password nu va putea intra pe site dacă nu se complectează obligatoriu Captcha.
<?php
session_start();
include("simple-php-captcha.php");
$_SESSION['captcha'] = captcha();
$user["admin"] = "admin";
$cod = $_SESSION['captcha']['code'];
if (!isset($_SESSION['logged_in']))
{
//echo '<h1>Logare</h1>';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (empty($_POST['username']) || empty($_POST['password']) || empty($_POST['captcha']))
{
echo '<span style="color:red; font-weight: bold">Te rog completeaza toate campuriile</span>';
}
elseif ($user[$_POST['username']] != $_POST['password'])
{
echo '<span style="color:red; font-weight: bold">User sau parola gresite</span>';
}
else
{
//header("Refresh: 1");
header( "refresh:5;url=acasa.html" );
$_SESSION['ingelogd'] = true;
echo '<span style="color:green; font-weight: bold">Ai intrat! Asteapta 5 secunde…</span>';
}
}
else
{
exit('<center>Trebuie sa te autentifici!<br /><br />
<form method="POST" action="" OnSubmit="return CheckForm()"><p>
Username:<br />
<input type="text" name="username" /><br /><br />
Parola:<br />
<input type="password" name="password" /><br /><br />
<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" /><br>
Cod captcha:<br>
<input type="text" name="captcha" /><br />
<input type="submit" value="Intra!" /> <input type="reset" value="Curata campuri" />
</form>
<script language=javascript type="text/javascript">
if (!(navigator.userAgent.substring(0,11) == "Mozilla/2.0"))
document.forms[0].elements[0].focus();
function CheckForm()
{
if (document.forms[0].captcha.value != "'.$cod.'")
{ alert("Verifica captcha ");
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}
return true;
}
</script></center>');
}
}
?>
Aceasta este doar codul care a creat contul cu username and pasword , plus condițiile afișate sau cerute.
Complectarea greșită te va alerta că nu ai făcut ceva bine
Nu ai complectat Captcha
In logare te va ruga să aștepți 5 secunde pentru ca site-ul să se încarce
Condițiile legate de username and password plus captcha
Codul captcha
}
// Default values
$captcha_config = array(
'code' => '',
'min_length' => 5,
'max_length' => 5,
'png_backgrounds' => array(dirname(__FILE__) . '/default.png'),
'fonts' => array(dirname(__FILE__) . '/times_new_yorker.ttf'),
'characters' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
'min_font_size' => 24,
'max_font_size' => 30,
'color' => '#000',
'angle_min' => 0,
'angle_max' => 15,
'shadow' => true,
'shadow_color' => '#CCC',
'shadow_offset_x' => -2,
'shadow_offset_y' => 2
);
// Overwrite defaults with custom config values
if( is_array($config) ) {
foreach( $config as $key => $value ) $captcha_config[$key] = $value;
}
// Restrict certain values
if( $captcha_config['min_length'] < 1 ) $captcha_config['min_length'] = 1;
if( $captcha_config['angle_min'] < 0 ) $captcha_config['angle_min'] = 0;
if( $captcha_config['angle_max'] > 10 ) $captcha_config['angle_max'] = 10;
if( $cacharacters' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
'min_font_size' => 24,
'max_font_size' => 30,
'color' => '#000',
'angle_min' => 0,
'angle_max' => 15,
'shadow' => true,
'shadow_color' => '#CCC',
'shadow_offset_x' => -2,
'shadow_offset_y' => 2
);
// Overwrite defaults with custom config values
if( is_array($config) ) {
foreach( $config as $key => $value ) $captcha_config[$key] = $value;
}
// Restrict certain values
if( $captcha_config['min_length'] < 1 ) $captcha_config['min_length'] = 1;
if( $captcha_config['angle_min'] < 0 ) $captcha_config['angle_min'] = 0;
if( $captcha_config['angle_max'] > 10 ) $captcha_config['angle_max'] = 10;
if( $captcha_config['angle_max'] < $captcha_config['angle_min'] ) $captcha_config['angle_max'] = $captcha_config['angle_min'];
if( $captcha_config['min_font_size'] < 10 ) $captcha_config['min_font_size'] = 10;
if( $captcha_config['max_font_size'] < $captcha_config['min_font_size'] ) $captcha_config['max_font_size'] = $captcha_config['min_font_size'];
// Use milliseconds instead of seconds
srand(microtime() * 100);
// Generate CAPTCHA code if not set by user
if( empty($captcha_config['code']) ) {
$captcha_config['code'] = '';
$length = rand($captcha_config['min_length'], $captcha_config['max_length']);
while( strlen($captcha_config['code']) < $length ) {
$captcha_config['code'] .= substr($captcha_config['characters'], rand() % (strlen($captcha_config['characters'])), 1);
}
}
// Generate image src
$image_src = substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT'])) . '?_CAPTCHA&t=' . urlencode(microtime());
$image_src = '/' . ltrim(preg_replace('/\\\\/', '/', $image_src), '/');
$_SESSION['_CAPTCHA']['config'] = serialize($captcha_config);
return array(
'code' => $captcha_config['code'],
'image_src' => $image_src
);
}
if( !function_exists('hex2rgb') ) {
function hex2rgb($hex_str, $return_string = false, $separator = ',') {
$hex_str = preg_replace("/[^0-9A-Fa-f]/", '', $hex_str); // Gets a proper hex string
$rgb_array = array();
if( strlen($hex_str) == 6 ) {
$color_val = hexdec($hex_str);
$rgb_array['r'] = 0xFF & ($color_val >> 0x10);
$rgb_array['g'] = 0xFF & ($color_val >> 0x8);
$rgb_array['b'] = 0xFF & $color_val;
} elseif( strlen($hex_str) == 3 ) {
$rgb_array['r'] = hexdec(str_repeat(substr($hex_str, 0, 1), 2));
$rgb_array['g'] = hexdec(str_repeat(substr($hex_str, 1, 1), 2));
$rgb_array['b'] = hexdec(str_repeat(substr($hex_str, 2, 1), 2));
} else {
return false;
}
return $return_string ? implode($separator, $rgb_array) : $rgb_array;
}
}
// Draw the image
if( isset($_GET['_CAPTCHA']) ) {
session_start();
$captcha_config = unserialize($_SESSION['_CAPTCHA']['config']);
unset($_SESSION['_CAPTCHA']);
// Use milliseconds instead of seconds
srand(microtime() * 100);
// Pick random background, get info, and start captcha
$background = $captcha_config['png_backgrounds'][rand(0, count($captcha_config['png_backgrounds']) -1)];
list($bg_width, $bg_height, $bg_type, $bg_attr) = getimagesize($background);
// Create captcha object
$captcha = imagecreatefrompng($background);
imagealphablending($captcha, true);
imagesavealpha($captcha , true);
$color = hex2rgb($captcha_config['color']);
$color = imagecolorallocate($captcha, $color['r'], $color['g'], $color['b']);
// Determine text angle
$angle = rand( $captcha_config['angle_min'], $captcha_config['angle_max'] ) * (rand(0, 1) == 1 ? -1 : 1);
// Select font randomly
$font = $captcha_config['fonts'][rand(0, count($captcha_config['fonts']) – 1)];
// Verify font file exists
if( !file_exists($font) ) throw new Exception('Font file not found: ' . $font);
//Set the font size.
$font_size = rand($captcha_config['min_font_size'], $captcha_config['max_font_size']);
$text_box_size = imagettfbbox($font_size, $angle, $font, $captcha_config['code']);
// Determine text position
$box_width = abs($text_box_size[6] – $text_box_size[2]);
$box_height = abs($text_box_size[5] – $text_box_size[1]);
$text_pos_x_min = 0;
$text_pos_x_max = ($bg_width) – ($box_width);
$text_pos_x = rand($text_pos_x_min, $text_pos_x_max);
$text_pos_y_min = $box_height;
$text_pos_y_max = ($bg_height) – ($box_height / 2);
$text_pos_y = rand($text_pos_y_min, $text_pos_y_max);
// Draw shadow
if( $captcha_config['shadow'] ){
$shadow_color = hex2rgb($captcha_config['shadow_color']);
$shadow_color = imagecolorallocate($captcha, $shadow_color['r'], $shadow_color['g'], $shadow_color['b']);
imagettftext($captcha, $font_size, $angle, $text_pos_x + $captcha_config['shadow_offset_x'], $text_pos_y + $captcha_config['shadow_offset_y'], $shadow_color, $font, $captcha_config['code']);
}
// Draw text
imagettftext($captcha, $font_size, $angle, $text_pos_x, $text_pos_y, $color, $font, $captcha_config['code']);
// Output image
header("Content-type: image/png");
imagepng($captcha);
}
?>
Cele două usename and password și captcha sunt făcute separat fără legătură intre ele , pentru a face legătura intre ele am folosit programul FILEZILLA special creat pentru astfel de cazuri , pentru a nu necesita bază de date și injectări … etc.
Se crează un folder cu o denumire indiferentă si se intră in el , documentele apar si pentru a le insera pe site-ul vostru trebuie să dați dublu click pe fiecare php,txt,html … etc in parte.Programul automat inserează pe server tot ceea ce iați cerut sa facă.
Inainte de astea trebuie sa aveți un sever ON si toate fișierele transformate din PHP in HTML(ceea ce ați facut in dreamweaver) obligatoriu altfel FILEZILLA nu va recunoște nimic din ceea ce ați făcut.
Transformarea este simplă , trebuie doar sa dați SAVE AS și să alegeți extensia HTML iar apoi salvată unde vă este proiectul.SIMPLU!
Mai jos aveți informații teoretice despre programe și exemple sau alte exemple cum sar mai putea securiza sau sparge site-ul vostru.
Capitolul 2. INTERNETUL; WORLD WIDE WEB;
Toata lumea foloseste internetul , dar majoritatea nu stie ce se “ascunde” in spatele internetului:istoria,constructia,codurile,moduri de aparare … etc.
Termenul World Wide Web (abreviat WWW; numit scurt și web, care în engleză înseamnă “rețea” este un sistem de documente și informații de tip hipertext legate ele între ele care pot fi accesate prin rețeaua mondială de Internet.
2.1.Scurt istoric:
Webul a fost inventat în 1989 la Centrul European de Cercetări Nucleare (CERN)în Geneva (Elveția). Propunerea inițială de creare a unei colecții de documente având legături între ele a fost făcută de Tim Berners-Lee în martie 1989. Această propunere a apărut în urma problemelor de comunicare pe care le întâmpinau echipele de cercetători ce foloseau centrul, chiar și folosind poșta electronică.
Primul prototip al acestei colectii (mai întâi în format de text simplu) a aparut nu mult înainte de decembrie 1991, când s-a facut prima lui demonstratie publica. Studiul a fost continuat prin aparitia primei aplicatii grafice Mosaic, în februarie 1993, realizata de cercetatorul Marc Andreessen de la centrul universitar National Center for Supercomputing Applications (NCSA) din orasul Urbana-Champaign din statul federal Illinois, SUA. Apoi webul a evoluat pâna la ceea ce este astazi, un serviciu integrativ si multimedial, având ca suport fizic Internetul.
Tim Berners-Lee si echipa sa au realizat primele versiuni pentru patru componente cheie necesare serviciului web, si anume:
* protocolul de intercomunicatie HTTP;
* limbajul de descriere a hipertextului HTML;
* serverul de web;
* browserul.
Pentru ca un site sa fie prezent pe internet are nevoie in primul rand de urmatoarele:
1. numele site-ului; acesta poate fi un domeniu(ex: nume.com), un subdomeniu(ex: nume.domeniu.com) sau o adresa de ip(ex: 92.168.1.5)
2. Furnizor de gazduire web; ai nevoie de un server web conectat tot timpul la internet pentru ca site-ul tau sa fie disponibil mereu.
2.2.Tipuri de gazduire web:
Gazduire gratuita (Free Web Hosting):
Acest plan de gazduire este oferit de unele firme de hosting cu scopul de a oferi clientilor posibilitatea testarii serviciilor oferite. Planurile de gazduire gratuita au multe limitari fata de planurile de gazduire platita si le ofera clientilor posibilitatea de a trece la un plan de gazduire platit.
Dezavantajele gazduirii gratuite sunt:
– nu ofera nici o garantie a serviciilor oferte;
– au foarte multe limitari;
– unele firme de hosting plaseaza unele bannere in pagini;
– securitatea este foarte slaba;
– de obicei, nu ofera back-up automat al datelor.
Gazduire web la comun (Shared Web Hosting):
Acest plan de gazduire este utilizat de majoritatea site-urilor. Fiecare site are propriul “loc” pe server si este separat de celelalte site-uri de pe server. Acest plan de gazduire este cel mai ieftin deoarece costurile de intretinere a serverului sunt impartite intre toti oamenii care folosesc acest plan de gazduire al firmei respective de hosting.
Acest plan de gazduire utilizeaza in mod normal un sistem de administrare bazat pe panoul de control, cum ar fi cPanel , Ensim , DirectAdmin , Plesk , InterWorx , H-Sphere sau unul din multe altele panouri de control existente. Cele mai multe companii mari folosesc propriul panou de control particularizat. Resursele disponibile ale serverului(spatiu, trafic etc.) sunt impartite intre clienti.
Gazduire dedicata (Dedicated Web Hosting):
Acest plan de gazduire va ofera un server unic exclusiv pentru site-ul dvs. Veti avea un nivel de control superior fata de celelalte planuri de gazduire, dar costul este mult mai mare datorita complexitatii servicilor oferite. Este folosit de majoritatea site-urilor mari si de site-uri cu foarte multi vizitatori. La achizitionarea unui plan de gazduire dedicata, va puteti alege server-ul pe care sa fie gazduit site-ul dumneavoastra(memoria RAM, spatiul hard disk-ului, traficul lunar alocat etc.). Un alt avantaj al gazduirii dedicate, la majoritatea firmelor de hosting, este acela ca puteti sa gazduiti si alte site-uri pe serverul dvs. sau chiar puteti sa creati conturi de reseller. Acest lucru este disponibil si la unele firme care ofera VPS hosting.
Gazduire partitionata (VPS Web Hosting):
Acest plan de gazduire va ofera un server virtual privat(Virtual Private Server) care se comporta ca un server individual. Serverele private sunt facute prin partitionarea unui server dedicat, fiecare partitie putand rula ca un server cu propriile sale individualitati. Acest plan de gazduire este mai scump decat gazduirea la comun(shared hosting), dar mai ieftin decat gazduirea dedicata si este recomandat celor care vor o solutie mai ieftina pentru gazduire web dedicata.
2.3. Pagina HTML:
Orice pagina incepe cu : <HTML> si poate cuprinde diferite tag-uri; de exemplu comanda care indica unde incepe si unde se termina scriptul html este:
<html>
</html>
de exemplu pentru a scrie cu caractere ingrosate bold de foloseste
<b>
iar pentru a inchide acesta se foloseste
</b>
de exemplu:
<b>acesta este primul fiser </b> html va rezulta asa acesta este primul fisier html
<b>acesta este primul fiser <b> html va rezulta asa acesta este primul fiser html
Daca nu ati observat in al 2 lea exemplu tag-ul <b> nu a fost inchis facand astfel toata propozitia ingrosata.
Structura unei pagini (de obicei de aici se porneste la crearea unei pagini html):
<html>
<head><title>Titlul pagini vine aici</title></head>
<body> aici vine continutul pagini respective</body>
Heading-uri… acestea dau marimea textului in pagina respectiva acestea sunt prescurtate sub forma : <hx> unde x este o valoare intre 1 si 6 in functia de marimea dorita a textului 1 generand cel mai mare font.
Linile orizontale sunt prescurtate ca <hr> si nu trebuiesc inchise ca tag-urile prezentate anterior. Folosind acesta se generaza o linie orizontala de latimea pagini web aceasta poate fii schimbata prin specificarea latimi dorite de exemplu
<hr width=x> inlocuind x cu numarul de pixelei pe care se va extinde linia sau
<hr width=x%> specificand cat la suta din latimea pagini sa fie linia orizontala
iar grosimea acesteia se poate specifica prin atributul size:
<hr size=3> iar prin adaugarea atributului "noshade" se optine o linie mai rotunjita la capete;
În tag-uri <hr> se pot folosi mai multe argumente ca aproape in orice tag de exemplu:
<hr width=60% size=12 noshade>
Paragrafele care se folosesc si in multe carti reviste etc se folosesc destul de des si in html acestea se deschid cu <p> si se inchid cu </p>
Formatul textului un site fara o formatare a textului bine pusa la punct este plictisitor si greu de citit pentru acestea sa folosesc :
<b> pentru bold (ingrosat)
<i> pentru italic (inclinat)
<u> pentru underline <sublineat>
Pentru marirea/micsorarea textului se foloseste tag-ul <font>
de exemplu <font size=2></font>
Alinierea textului in pagina se face folosind tag-urile <hx> despre care am vorbit mai devreme de exemplu:
<h2 align=left>
<h2 algin=center>
<h2 align=right>
Cum se trece de pe un rand pe altul ?
Se folosește tag-ul <br> acesta nu se inchide ci se aduga la fiecare sfarsit de rand de exemplu:
Sursa:
primul rand de text<br>
al 2 lea rand de text<br>
al 3 lea rand de text<br>
Rezultat:
primul rand de text
al 2 lea rand de text
al 3 lea rand de text
Daca nu ar fi fost folosit acest cod rezultatul ar fii aratat asa:
primul rand de text al 2 lea rand de text al 3 lea rand de text.
Centrarea pagini se face cu tag-ul <center> de exemplu
<center>Bun venit!</center>
2.4. Setarea proprietăților documentului
– Proprietatile documentului pot fi controlate de atributele elementului BODY, de exemplu cum ar fi culorile pentru fondul paginii, pentru text si diferite faze ale link-urilor.
Culorile sunt setate folosind culorile de baza: rosu, verde si albastru; expresia folosita RGB (Red, Green, Blue), acestea sunt reprezentate ca valori hexadecimale si sunt scrise intre ghilimele (" "), la inceput trebuie adaugat caracterul '#'. Fiecare 2 unitati ale codului reprezinta una din culorile RGB.
De exemplu: #00aa11 reprezinta o culoare care nu are Rosu (00), are Verde (aa) si Albastru mai putin
Elementul BODY
– Acestui element ii puteti adauga informatii care sa defineasca culoarea sau imaginea din fondul paginii, textul si culoarea link-urilor.
– Daca elementul BODY nu este completat cu alte atribute atunci browser-ul va prezenta culorile standard, de obicei fondul este alb.
– Pentru a seta culoare fondului paginii adaugati in eticheta <BODY> atributul BGCOLOR.
– Urmatorul exemplu va prezenta un document a carui fond este de culoare albastra:
<body bgcolor="#0000ff"></body>
Culoarea textului
– Atributul TEXT controleaza culoarea textului normal din document.
– Acesta va afecta tot textul din document care nu este colorat de alte elemente, cum ar fi link-ul.
– Culoarea standard pentru text este Negru.
– Iata un exemplu in care culoarea fondului va fi albastru si culoarea textului va fi rosu, atributul TEXT va fi adaugat astfel:
<body bgcolor="#0000ff" text="#ff0000"></body>
Link-uri (LINK, VLINK si ALINK)
– Aceste atribute controleaza culoarea link-ului in diferite stari
1. LINK – culoarea initiala a link-ului. Standard este albastru
2. VLINK – culoarea unui link vizitat. Standard este purpuriu.
3. ALINK – culoarea link-ului in momentul activarii. Standard este rosu.
– Modul de setare al acestor atribute este urmatorul:
<body bgcolor="#ffffff" text="#ff0000" link="#0000ff" vlink="#ff00ff" alink="#ffff00"></body>
Rezultatul va fi o pagina cu fondul alb, textul rosu, link-urile albastre, link-urile vizitate vor avea culoarea roz iar culoarea link-urilor in momentul activarii va fi galben.
Folosirea unei imagini ca fond pentru pagina (background)
– Elementul body ofera posibilitatea înlocuiri fondului paginii cu o imagine (Background image). Daca imaginea este mai mica decât dimensiunile paginii atunci imaginea va fi multiplicata pana va acoperi întreg cadru documentului. Este indicat ca imaginea sa fie in format *.gif sau *.jpg. Folosirea unei imagini va da un aspect placut documentului. Pentru a vedea cum arata un document al carui fond este o imagine
– Un exemplu de cod HTML cu imagine pentru background este urmatorul:
<body background="imagine.gif" bgcolor="#ffffff"></body>
In acest exemplu fondul pagini va fi dat de imaginea fisierului "imagine.gif" si de asemenea am setat BGCOLOR astfel incat in timpul procesului de încarcare a imaginii culoarea fondului va fi alba.
Dupa ce a-ti creat baza de început a unui document si a-ti setat proprietatile, trebuie sa salvati fisierul. Salvarea trebuie facuta intr-un format pe care browser-ul îl poate recunoaste. Extensia standard pentru un fisier care reprezinta o pagina web este ".htm" sau ".html". De obicei folosesc (".html").
– Pentru a salva documentul ca sa arate ca o pagina web, in NotePad alegeti din meniul File comanda Save si salvati fisierul cu orice nume doriti dar cu extensia html (sau "htm") – (La File name: scrieti si numele si extensia ".html", exemplu: index.html). Daca nu scrieti extensia, NotePad va salva documentul in format "txt".
– Pentru a vedea documentul ca o pagina web, duceti-va in directorul in care a-ti salvat fisierul si deschideti-l pur si simplu (cu Enter sau dublu-click la mouse), acesta va fi deschis automat de browser-ul pe care-l folositi (Mozilla Firefox, Internet Explorer, Opera). Sau deschide-ti browser-ul si din comanda Open deschideti documentul pe care l-ati salvat.
– Pentru a continua munca, a face modificari paginii sau pentru a adauga altceva in documentul HTML, deschideti documentul cu NotePad. Una din metode este sa deschideti aplicatia NotePad si din meniul File alegeti Open apoi gasiti fisierul pe care vreti sa-l modificati si dati clic pe butonul Open. Dupa ce terminati modificarile salvati, astfel daca redeschideti documentul ca o pagina web acesta va fi deschis cu noul format.
Capitolul 3 – PHP
Pe scurt, ce este PHP? Ca idee generala, PHP reprezinta un limbaj de programare ce permite modificarea paginilor web inainte ca acestea sa fie transmise de server catre browserele utilizatorilor.
Pentru ce se utilizeaza PHP-ul.
Site-uri web și aplicații web (scripting de partea server-ului)
Scripting pentru linia de comandă
Aplicații de birou cu interfață grafică (GUI)
PHP poate genera continut HTML pe baza unor fisiere existente sau pornind de la zero, poate sa afiseze o imagine sau orice alt continut accesibil prin web, sau sa redirectioneze utilizatorul catre alte pagini. In cadrul acestui proces, PHP poate consulta baze de date, fisiere externe sau alte resurse, poate trimite email-uri sau executa comenzi ale sistemului de operare. Intrucat procesarea se realizeaza la nivelul serverului web, inainte ca paginile web sa ajunga in browser, PHP este considerat un limbaj de programare server-side.
Modul in care PHP genereaza continut pentru o pagina ce va fi afisata de browser este prin instructiunile delimitate de etichetele <?php si ?>. Astfel, orice se afla intre aceste tag-uri va fi considerat cod-sursa si va fi executat de interpretorul PHP si inlocuit cu rezultatul executiei. Ce este in afara tag-urilor ramane neschimbat si este transmis catre browser.
3.1 Ce sunt variabilele?
Variabilele sunt elemente ce au o anumita valoare la un moment dat. Valoare unei variabile se poate schimba de-a lungul executiei unui script.
Lucrul cu variabile in PHP este foarte usor. Nu trebuie specificat un tip pentru ele (de genul "variabila text", "variabila numerica") ci acesta este determinat in mod automat.
Variabilele sunt diferentiate de celelalte elemente ale limbajului prin caracterul $. Astfel, o variabila are forma $nume. Numele variabilei poate fi orice identificator valid (un text ce contine doar litere, cifre si underscore, fara spatii sau alte caractere; un identificator nu poate incepe cu o cifra).
3.2 Declararea variabilelor
In PHP declararea variabilelor se realizeaza in acelasi timp cu initializarea lor (cu atribuirea unei valori de inceput). Atribuirea unei valori se realizeaza cu ajutorul instructiunii de atribuire ce are forma <nume variabila> = <valoare>;
Variabilele functiilor in PHP sunt de doua tipuri principale:
Variabile globale
Variabile locale
Variabilele globale sunt create în exteriorul functiei, în timp ce variabilele locale sunt create în interiorul unei functii.
3.3 Utilizarea variabilelor globale
Asa cum s-a explicat anterior, variabilele globale sunt cele declarate în afara oricarei functii.
Totalitatea locurilor unde este accesibila o variabila se numeste "domeniu de existenta al variabilei". Variabilele globale nu pot fi accesibile din interiorul corpului unei functii; cu alte cuvinte, domeniul de existenta al unei variabile globale, nu include corpurile functiilor. Daca doriti sa obtineti accesul la o variabila globala în cadrul unei functii, puteti extinde domeniul de existenta al variabilei prin specificarea in functie a numelui variabilei, în cadrul unei instructiuni GLOBAL.
Instructiunea GLOBAL are urmatoarea forma:
GLOBAL variabila1, variabila2, variabila3;
3.4 Utilizarea variabilelor locale
Variabilele locale sunt create in interiorul functiei si sunt distruse cand se încheie apelul la functia respectiva. În consecinta, variabilele locale sunt disponibile numai pe durata executiei functiei asociate.
Argumentele functiilor constituie un tip important de variabila locala. Cu toate acestea, puteti crea o variabila locala prin simpla atribuire a unei valori unei variabile din interiorul unei functii.
Pentru a ilustra deosebirea dintre variabilele locale si cele globale, iata un script care defineste o variabila locala denumita "$x" si o variabila globala cu acelasi nume:
3.5 Utilizarea variabilelor statice
Uneori este nevoie ca o variabila locala sa-si pastreze valoarea de la un apel al functie asociate la altul. Altfel spus, nu doriti ca variabila sa fie distrusa la încheierea apelului la functie.
Pentru acest lucru puteti folosi instructiunea STATIC (la fel cu "static").
Forma instructiunii STATIC este similara cu aceea a instructiunii GLOBAL.
STATIC $var1, $var2, $var3;
3.6 Utilizarea referintelor
In mod prestabilit, argumentele transferate unei functii PHP sunt transmise prin valoare, ceea ce înseamna ca valorile argumentelor sunt copiate si functiile utilizeaza copii ale valorilor argumentelor lor, nu argumentele în sine. Ca o consecinta, o functie PHP nu poate modifica valorile argumentelor sale.
Totusi, puteti stabili ca o functie sa aiba posibilitatea de a modifica valoarea unui argument, specificând ca argumentul sa fie transferat prin referinta.
Când un argument este transferat prin referinta, valoarea sa nu este copiata; functia lucreaza cu valoarea argumentului si are libertatea de a modifica acea valoare.
Pentru a specifica faptul ca un argument urmeaza a fi transferat prin referinta, inaintea argumentului va fi adaugat un caracter ampersand (&). Puteti atasa acest caracter la argument în antetul functiei sau în apelul la functie.
Exemple de php:
<?php
$variabila = 1;
$numar = 0;
// variabile text (stringuri)
$text = "Salut";
$text2 = 'Ce faci?';
// variabile logice (boolean)
$stiuPHP = true;
$uitRepede = false;
// vector
$vectorGol = array();
$vectorS = array( 10,11,12,13 ); // vector simplu
// vector asociativ
$vector = array(
'luni' => 'Monday',
'marti' => 'Tuesday',
'miercuri' => 'Wednesday'
);
// definirea unei noi componente a unui vector asociativ
$vector[ 'joi' ] = 'Thursday';
// vector simplu definit ca asociativ, echivalentul lui $vectorS
$vectorS2 = array(
0 => 10,
1 => 11,
2 => 12,
3 => 13
?>
<?php
//Variabile numerice
$variabila = 1;
$numar = 0;
//Variabile text (stringuri)
$text = "Salut";
$text2 = "Ce faci?";
//Variabile logice (boolean)
$StiuPHP = true;
$NuStiuPHP = false;
?
Capitolul 4 – Eludarea restricțiilor de autorizare (authorization bypass)
Vulnerabilitățile ce țin de autorizare și acces pot apărea oriunde în aplicația web și se referă la ce se întâmplă atunci când un atacator are acces la o resursă la care în mod normal au acces doar utilizatorii autentificați sau care dețin anumite privilegii în acele aplicații.
Cele mai folosite tehnici pentru eludarea restricțiilor referitoare la autorizare:
– Traversarea de directoare (directory traversal);
– Evitarea unor mecanisme de autorizare;
– Escaladarea privilegiilor.
Serverele restricționează utilizatorii care navighează pe un site la documentul rădăcină al acestuia, a cărui localizare depinde de sistemul de operare instalat pe server, și adițional în funcție de permisiunile de citire/scriere/execuție pe care le are utilizatorul respectiv asupra fișierelor de pe server.
Subminarea unui script de execuție pentru a traversa directoarele serverului și a citi fișiere protejate cum ar fi /etc/passwd este cunoscută ca atac cu traversare de directoare.
Cum aproape toate aplicațiile web folosesc roluri (ex: utilizator neautentificat / utilizator autentificat / administrator) care pot avea diferite nivele de acces, un atacator poate reuși să acceseze un privilegiu restricționat nivelului lui de acces și să evite mecanismul de autorizare, acest lucru se face de obicei prin schimbarea rolului într-unul superior.
4.1 Atacul
Avem sursa:
http://www.exemplu.com/index.php?page=login.
Un atac de tip traversare de directoare al cărui scop este de a afișa fișierul /etc/passwd poate fi realizat prin a schimba URL-ul în:
http://www.exemplu.com/index.php?page=../../../../../../../etc/passwd.
Luați în considerare o cerere HTTP făcută unui administrator pentru a reseta parola unui utilizator:
Post / admin / resetPassword.jsp HTTP/1.1
Realizator: www.examplu.com
[HTTP Headers]
utilizator = admin & newpassword = parolă
Dacă atacatorul poate face o cerere identică și aplicația web resetează parola unui cont de administrator, atacatorul evită mecanismul de autentificare, deoarece această funcție era gândită pentru a fi folosită doar de administratorii aplicației, într-un sens este o creștere a privilegiilor deoarece un non-administrator poate folosi funcția de resetare a parolelor și obține acces la contul de administrator cu noua parolă.
4.2 Metode de prevenire a atacurilor de tip Authorisation Bypass
Cele mai simple metode de protecție împotriva acestui tip de atac sunt validarea datelor introduse de utilizatori și urmărirea metodelor de proiectare sigură. Este important să fie identificată din timp orice parte a aplicației web care poate fi folosită într-un eventual atac informatic, acest lucru nereferindu-se doar la câmpurile în care utilizatorul poate introduce date, ci și la orice valoare pe care utilizatorul o poate modifica și trimite prin intermediul unui proxy, cum ar fi datele din cookie-uri, câmpurile ascunse etc.
Aceste date ar trebui validate corespunzător, înainte de a putea trece mai departe. Utilizați de asemenea principiul de a da cu atât mai puține privilegii utilizatorului, cu cât scad șansele de a putea duce la capăt un atac asupra aplicației web.
Capitolul 5. METODE DE ATAC ȘI DE APĂRARE:
Securitatea web și în același timp securitatea informației a devenit un punct ce își lasă amprenta în viața de zi cu zi. În acest capitol voi prezenta o inițiere în securitatea informației, riscurile și daunele ce pot fi provocate de acestea, cât și moduri în care ne putem apăra.
5.1.Atacurile SQL-injection
5.1.1. Bazele SQL-injection
Pentru a întelege materialul de mai jos este nevoie de a cunoaste cel putin bazele limbajului de interogare SQL si realizarea lucrului cu bazele de date în PHP/ASP. Sa presupunem ca avem o baza de date ce contine relatia (tabelul) users de urmatoarea structura:
O interogare ce extrage datele din baza de date poate avea forma:
SELECT *
FROM users
WHERE name = '$name'
În acest caz valorile din cîmpul “name” sunt comparate cu valoarea variabilei “$name”. Daca valoarea aceastei variabile a fost obtinuta din parametrii URL sau cookie si nu se prelucreaza la simboluri speciale atunci interogarea la baza de date este vulnerabila. Voi aduce un exemplu simplu cum raufacatorul poate modifica interogarea.
Daca variabila $name primeste valoarea su, atunci cerea la baza de date va fi urmatoarea:
SELECT *
FROM users
WHERE name = 'su'
Interogarea este corecta. Însa daca valoarea variabilei va primi valoarea aaa' interogarea va deveni incorecta din punct de vedere sintactic, deoarece este prezent un simbol ' în plus:
SELECT *
FROM users
WHERE name = 'aaa''
Simbolul ' permite de a modifica cererea la baza de date, si nu este unicul simbol ce permite acest lucru (dupa cum veti vedea mai jos). Sa presupunem ca cerea de mai sus o foloseste o aplicatie web pentru a afisa datele private a utilizatorului curent logat. Utilizînd simbolul ' raufacatorul cu usurinta poate vedea datele private a tuturor utilizatorilor înregistrati, transmitînd una din urmatoarele valori pentru parametrul $name (presupunem ca în sistem sunt înregistrati utilizatorii admin, su si lma0):
random_data' OR name='admin
random_data' OR name='su
random_data' OR name='lma0
Cererile SQL la baza de date vor fi:
SELECT * FROM users WHERE name='random_data' OR name='admin'
SELECT * FROM users WHERE name='random_data' OR name='su'
SELECT * FROM users WHERE name='random_data' OR name='lma0'
Înjectarea permite de a extrage datele private a unui utilizator. Raufacatorul la dorinta poate sa obtina datele despre toti utilizatorii transmitind parametrului $name valoarea:
random_data' OR '1'='1
Cererea cu codul injectat:
SELECT * FROM users WHERE name='random_data' OR '1'='1'
va întoarce toate tuplurile (înregistrarile) din tabelul users.
5.1.2. Proceduri de testare a aplicatiilor web la SQL-injection
Procedurile de testare a aplicatiilor web la SQL-injection se reduc la formarea unei liste de parametri cu care lucreaza aplicatia (atît parametrii GET cît si POST), incluzînd si parametrii cookie. Apoi acesti parametri se testeaza individual la prelucrarea simbolurilor speciale sau a cuvintelor cheie (de genul WHERE) care ar ajuta la exploatarea vulnerabilitatii.
5.2. Metode de atac
Sa presupunem ca raufacatorul a gasit un parametru vulnerabil. Pentru a exploata vulnerablitatea raufacatorul ar trebui aproximativ sa cunoasca tipul cererii SQL în care va fi injectat codul malicios. Cel mai des în aplicatiile-web sunt utilizate 4 tipuri de cereri SQL:
1. SELECT
2. INSERT
3. UPDATE
4. DELETE
Care dintre acestea este folosit într-un caz concret, poate fi determinat analizînd logica si semantica scriptului vulnerabil.
Daca scriptul afiseaza date ce corespund unui identificator anumit, atunci cu o mare probabilitate cererea este de tipul SELECT.
Daca scriptul adauga unele date în baza de date, spre exemplu adaugarea unui comentariu, sau un post în forum – cererea este de tipul INSERT.
Daca scriptul modifica informatia, spre exemplu schimbarea parolei, redactarea postului în forum – cererea este de tipul UPDATE.
Daca are loc stergerea informatiei, spre exemplu anularea accountului, posibil ca cererea este sau de tipul DELETE sau de tipul UPDATE.
Cel mai des sunt întîlnite vulnerabilitati în cereri SELECT.
5.2.1. Injectarea UNION SELECT
Deoarece cel mai des vulnerabile sunt cererile la baza de date de tipul select, raufacatorii în primul rînd vor încerca de a injecta clauze UNION SELECT, deoarece în caz de succes raufacatorul va obtine acces la toate tabelele de sistem. În aceste tabele se contine informatia despre structura tuturor bazelor de date de pe server. Mai jos este prezentata lista tabelelor de sistem pentru diferite SGBD:
1. MS SQL Server
INFORMATION_SCHEMA
sysobjects
syscolumns
2. MySQL
mysql.user
mysql.host
mysql.db
3. Oracle
SYS.USER_OBJECTS
SYS.USER_TABLES
SYS.USER_VIEWS
SYS.USER_TAB_COLUMNS
SYS.TAB
SYS.ALL_TABLES
Înainte de a efectua injectarea UNION SELECT raufacatorul ar trebui sa afle numarul de atribute în cererea SQL, tipul fiecarui atribut si denumirea unor tabele de sistem ceea ce se considera greu de realizat în cazurile cînd nu se afiseaza erorile în browser. Mai jos este demonstrat ca exista unele tehnici simple care ar solutiona problemele date. Cererea UNION SELECT trebuie sa contina acelasi numar de atribute, iar atributele trebuie sa fie de acelasi tip.
5.1.. Metode de aparare
Pentru a evita o posibila exploatare a vulnerabilitatii SQL Injection în aplicatia web, este necesar de a prelucra toate datele ce parvin de la utilizatori la urmatoarele simboluri:
1) Ghilimelele atit simple cît si duble (‘, “, `). Cu ajutorul acestora în majoritatea cazurilor se efectuiaza injectarea codului SQL.
2) Simbolurile de comentarii specifice SGBD anumit (/*,–). Cu ajutorul acestora poate fi omisa o parte din interogare.
3) Simbolurile ce împart instructiunile SQL (;). Prezenta acestui simbol permite de a forma mai multe cereri la baza de date.
4) Deasemenea datele ar trebui sa fie verificate la prezenta si la alte simboluri (_,%,*).
5) În cazul cînd în cererea SQL se utilizeaza date numerice primite de la utilizatori, înainte de a le plasa în cererea SQL acestea ar trebui aduse la tipul numeric:
$id=(int)$id;
6) În cazul cînd în cererea SQL se utilizeaza date de tip sir de caractere primite de la utilizatori, înainte de a le plasa în cererea SQL acestea ar trebui prelucrate la simboluri speciale. Cea mai buna practica – este formarea expresiilor regulate.
5.2. Scripting XSS
Cross Site Scripting (prescurtat XSS) este o vulnerabilitate web ce permite utilizatorului sa introduca un cod personal intr-o pagina web. Acest cod poate afecta ceilalti utilizatori ce vizualizeaza pagina infectata (vulnerabilitate client-side). Aceasta vulnerabilitate este periculoasa doar atunci cand codul se foloseste de prajiturele sau de sesiuni.
Cap 6 – Captcha
CAPTCHA este un tip de provocare-răspuns de testare utilizat în calcul,ca o încercare de a se asigura că răspunsul este generat de o ființă umană.Procesul implică, de obicei intervenirea utilizatorului pentru a finaliza un test simplu care computerul este capabil de a clasa. Aceste teste sunt concepute pentru a fi ușor pentru un computer pentru a genera dar dificil pentru un computer pentru a rezolva, dar din nou ușor pentru un om. În cazul în care o soluție corectă este primit, se poate presupune că au fost introduse de către un om. Un tip comun de CAPTCHA cere utilizatorului să tastați litere și / sau cifre de la o imagine distorsionată care apare pe ecran. Astfel de teste sunt utilizate în mod obișnuit pentru a preveni impotriva nedorite pe site-uri de internet care accesează, din moment ce un om normal poate citi cu ușurință un CAPTCHA, în timp ce bot nu poate procesa scrisorile de imagine și, prin urmare, nu poate răspunde în mod corespunzător, sau deloc.
Deși cele mai multe sunt imagini CAPTCHA generate aleator, mulți dintre ei au devenit dificil chiar și pentru un om să-l citeasca.pozele CAPTCHA au fost create pentru utilizatori,doar un test simplu pentru a afișa o imagine a unui anumit animal , care este simplu pentru o ființă umană pentru a procesa, și, prin urmare, ușor de a alege, în timp ce un bot nu poate procesa si rezolva problema, deoarece, deși se poate analiza imaginii, acesta nu poate ghici cu ușurință de animale.
Termenul "CAPTCHA" a fost inventat în 2000 de către Luis von Ahn, Blum Manuel, Nicholas J. Hopper, și Langford Ioan (toate Carnegie Mellon University). Acesta este un acronim bazată pe cuvântul "captare" și în picioare pentru "complet automatizat de testare publică Turing să-i spun și Calculatoare Oamenii Apart". Carnegie Mellon University a încercat să marca termen lung, dar cererea a fost abandonat marca la 21 aprilie 2008.
Un CAPTCHA este descris uneori ca un test Turing inversă, deoarece este administrat de o mașină și care vizează un om, spre deosebire de testul Turing standard de care de obicei este administrat de către un om și care vizează o mașină.
Cap 7 – Dreamweaver
Adobe Dreamweaver (cunoscut anterior ca Macromedia Dreamweaver) este o aplicație de dezvoltare web a companiei americane Adobe Systems, disponibilă atât pentru MS Windows, cât și pentru Apple Mac OS. Versiunile recente includ suport pentru tehnologii web cum ar fi CSS, JavaScript, PHP, Cold Fusion, cât și cadre ASP.
Dreamweaver s-a bucurat de un larg succes încă de la sfârșitul anilor 1990 și momentan deține aproximativ 80 % din piața editoarelor HTML. Produsul poate fi rulat pe variate platforme software: Mac OS, Windows, dar suportă în același timp și platforme UNIX cu ajutorul unor emulatoare software cum ar fi Wine.
Ca orice alt editor WYSIWYG, Dreamweaver poate ascunde detaliile de implementare a paginilor HTML, făcând astfel posibilă crearea cu ușurință a acestora și de către utilizatorii neexperimentați.
Unii creatori de pagini web critică aceste tipuri de editoare deoarece produc pagini de dimensiuni mult mai mari decât ar fi necesar, ceea ce conduce la o funcționare neperformantă a browserelor web. Această afirmație este în mare parte adevarată deoarece paginile web produse folosesc designul pe bază de tabel. În plus, produsul a mai fost criticat în trecut și pentru producerea de coduri care adesea nu erau conform standardelor W3C, dar acest aspect a fost mult îmbunătățit în versiunile recente. Cu toate acestea, compania Macromedia a îmbunătățit suportul pentru tehnologia CSS precum și alte modalități de design, fără a fi necesară folosirea designului pe bază de tabel.
Dreamweaver permite folosirea majorității browserelor instalate pe calculatorul utilizatorului, pentru a previzualiza situl web creat. De asemenea conține și câteva utilitare pentru administrarea siturilor, cum ar fi cele pentru a găsi și modifica un paragraf sau o linie de cod, în întregul sit, pe baza oricăror parametri specificați de către utilizator. Cu ajutorul panourilor de stare se poate crea cod JavaScript fără a avea cunoștințe de programare.
Odată cu apariția versiunii MX, Macromedia a încorporat utilitare de generare dinamică a conținutului. De asemenea este oferit suport pentru conectarea la baze de date (cum ar fi cele de tip MySQL și Microsoft Access) pentru a filtra și afișa conținutul folosind scripturi de genul PHP, ColdFusion, Active Server Pages (ASP) și ASP.NET, fără a avea nevoie de o prealabilă experiență în programare.
Un aspect foarte lăudat al Dreamweaver-ului îl reprezintă arhitectura sa extensibilă. Extensiile sunt mici programe pe care orice dezvoltator le poate scrie (de obicei în HTML și JavaScript) și pe care oricine le poate desAdobe Dreamweaver (cunoscut anterior ca Macromedia Dreamweaver) este o aplicație de dezvoltare web a companiei americane Adobe Systems, disponibilă atât pentru MS Windows, cât și pentru Apple Mac OS. Versiunile recente includ suport pentru tehnologii web cum ar fi CSS, JavaScript, PHP, Cold Fusion, cât și cadre ASP.
Dreamweaver s-a bucurat de un larg succes încă de la sfârșitul anilor 1990 și momentan deține aproximativ 80 % din piața editoarelor HTML. Produsul poate fi rulat pe variate platforme software: Mac OS, Windows, dar suportă în același timp și platforme UNIX cu ajutorul unor emulatoare software cum ar fi Wine.
Ca orice alt editor WYSIWYG, Dreamweaver poate ascunde detaliile de implementare a paginilor HTML, făcând astfel posibilă crearea cu ușurință a acestora și de către utilizatorii neexperimentați.
Unii creatori de pagini web critică aceste tipuri de editoare deoarece produc pagini de dimensiuni mult mai mari decât ar fi necesar, ceea ce conduce la o funcționare neperformantă a browserelor web. Această afirmație este în mare parte adevarată deoarece paginile web produse folosesc designul pe bază de tabel. În plus, produsul a mai fost criticat în trecut și pentru producerea de coduri care adesea nu erau conform standardelor W3C, dar acest aspect a fost mult îmbunătățit în versiunile recente. Cu toate acestea, compania Macromedia a îmbunătățit suportul pentru tehnologia CSS precum și alte modalități de design, fără a fi necesară folosirea designului pe bază de tabel.
Dreamweaver permite folosirea majorității browserelor instalate pe calculatorul utilizatorului, pentru a previzualiza situl web creat. De asemenea conține și câteva utilitare pentru administrarea siturilor, cum ar fi cele pentru a găsi și modifica un paragraf sau o linie de cod, în întregul sit, pe baza oricăror parametri specificați de către utilizator. Cu ajutorul panourilor de stare se poate crea cod JavaScript fără a avea cunoștințe de programare.
Odată cu apariția versiunii MX, Macromedia a încorporat utilitare de generare dinamică a conținutului. De asemenea este oferit suport pentru conectarea la baze de date (cum ar fi cele de tip MySQL și Microsoft Access) pentru a filtra și afișa conținutul folosind scripturi de genul PHP, ColdFusion, Active Server Pages (ASP) și ASP.NET, fără a avea nevoie de o prealabilă experiență în programare.
Un aspect foarte lăudat al Dreamweaver-ului îl reprezintă arhitectura sa extensibilă. Extensiile sunt mici programe pe care orice dezvoltator le poate scrie (de obicei în HTML și JavaScript) și pe care oricine le poate descărca și instala, acestea aducând un spor de performanță și funcționalitate îmbunătățită programului. Există o comunitate de dezvoltatori care produc aceste extensii și le publică (atât comercial cât și gratuit) pentru probleme de dezvoltare web, de la simple efecte rollover până la soluții complete de vânzare online, în Internet.cărca și instala, acestea aducând un spor de performanță și funcționalitate îmbunătățită programului. Există o comunitate de dezvoltatori care produc aceste extensii și le publică (atât comercial cât și gratuit) pentru probleme de dezvoltare web, de la simple efecte rollover până la soluții complete de vânzare online, în Internet.
Concluzie …
Paginiile web se pot face după dorința fiecaruia , trebuie doar sa pui pe foaie ceea ce vrei să faci pas cu pas , poze , securitate , autentificare , link-uri , legături de pagină … etc .Sunt foarte multe de aceea trebuie să știi ceea ce vrei să faci , să realizezi.
Există un număr mare de modele și stiluri fiecare aparte si speciale in felul lor.
Vă mulțumesc pentru răbdarea acordată si timpul pentru a citi si asculta si normal a vedea ceea ce am realizat pentru lucrarea mea de licența.
Bibliografie
www.wikypedia.com
http://www.marplo.net/
http://ideone.com/MPSs9
http://php.punctsivirgula.ro
http://php.punctsivirgula.ro/variabile/
http://php.net/
http://www.cert-ro.eu/files/doc/578_20120226130257069249700_X.pdf
http://www.marplo.net/html/crearea_pagini.html
http://www.e-phorum.net/pagina-html-generalitati
Bibliografie
www.wikypedia.com
http://www.marplo.net/
http://ideone.com/MPSs9
http://php.punctsivirgula.ro
http://php.punctsivirgula.ro/variabile/
http://php.net/
http://www.cert-ro.eu/files/doc/578_20120226130257069249700_X.pdf
http://www.marplo.net/html/crearea_pagini.html
http://www.e-phorum.net/pagina-html-generalitati
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Pagini Web – Aspecte DE Securitate (ID: 107498)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
