Toate articolele de Sandor Kovacs

Web Developer. My daily menu: Breakfast - Wordpress | Lunch - Symfony + Drupal | Dinner: CodeIgniter

Introducere format JSON

Cunosti formatul JSON? Te intereseaza mai multe informatii despre acesta?

IT-ul este un domeniu care a inceput sa se dezvolte pentru a usura viata oamenilor. Din acest motiv, IT-ul va fi mereu intr-o continua cautare pentru a gasi cele mai bune solutii spre satisfacerea clientilor.

Numele JSON este un acronim pentru JavaScript Object Notation. Acesta un format text pentru date care a fost conceput pentru a putea fi human-readable si usor de transmis intre un server si un client web. Sintaxa acestuia provine din JavaScript, dar chiar si asa poate fi folosit in majoritatea limbajelor de programare, incluzand C# si AS3.

Arrays

Ca si programator web cu experienta, cu siguranta intelegi ce inseamna aranjarea in formatul JSON, dar ca si programator web incepator notiunea s-ar putea sa nu iti fie atat de clara.

Good to know! Aranjarea se refera la o colectie de itemi, fiecare dintre acestia fiind atribuiti unui specific intreg.

De exemplu, in JSON, o etalare a primelor sase litere din alfabet ar putea fi reprezentate in acest fel:

["a", "b", "c", "d", "e", "f"]

Cu siguranta, programatorii web care au mai lucrat in JavaScript si AS3 vor gasi asezarea de mai sus familiara. De asemenea, si in cazul limbjaului de programare C# pentru definirea unui etalon, insiruirea se face in acelasi mod.

Remember! Parantezele drepte se folosesc pentru a descrie etalarea, iar virgulele sunt folosite pentru a separa elementele diferite.

Exista si o modalitate mai usoara pentru ca aceasta aranjare sa fie citita mai usor, si anume:

[
  "a", 
  "b", 
  "c", 
  "d", 
  "e", 
  "f"
]

PS: Se poate observa ca dupa ultimul element nu mai exista nicio virgula.
Etalarea JSON functioneaza si sub forma altor elemente precum false, true sau null, sau chiar numere. Nu exista o scriere tipica, ceea ce ofera libertate pentru a combina tipurile de valori de care ai nevoie. De exemplu:

[
 "apple",
 3,
 912,
 null,
 -7.2222202,
 "#",
 true,
 false
]

Good to know! Pentru a incadra fiecare insiruire ai nevoie de ghilimele duble (“), intrucat cele single (‘) nu sunt permise.

Objects

Un array reprezinta o colectie de elemente in care fiecare element este distribuit intr-o anumita unitate. Un obiect (object) este o colectie de elemente in care fiecare element este distribuit unui sir specific.

Elementele sunt numite valori, iar sirurile folosite pentru a le identifica sunt numite chei (keys). In anumite limbaje de programare aceasta structura de date poate fi gasita sub numele de hash map sau hash table.

Poti folosi objects pentru a utiliza sirurile ca si valori si nu doar keys. De exemplu:

{
 "PHP": 10,
 "CSS": 8,
 "HTML": 10,
 "JavaScript": 9
}

Folosirea JSON cu alte platforme

JSON este un format popular, motiv pentru care acesta functioneaza si cu platforme diferite. Acest mod de functionare este posibil datorita generators si parsers. Acestea sunt unelte si librarii (tool-uri si libraries) care ajuta colaborarea dintre JSON si alte platforme sa functioneze.

Mai exact, generatorii ajuta cu encodarea unui limbaj de programare intr-un altul, iar parsers decodeaza un limbaj de programare pentru a putea fi inteles de un alt limbaj de programare. Ambele optiuni sunt disponibile pentru aproape toate limbajele de programare.

Daca iti doresti sa inveti mai multe despre formatul JSON, sa inveti programare web de la zero, si nu numai, ma poti contacta aici!

 

Noul WooCommerce REST API se bazeaza pe WP REST API

Cauti mai multe informatii despre noul WooCommerce REST API?

In 2014, pe cand WooCommerce versiunea 2.1 se dezvolta, se vorbea despre WordPress care sa aibe propriul REST API. Insa, cererea a fost atat de mare pentru un REST API in WooCommerce incat a trebuit sa fie facut.

Dar, avand in vedere ca acum este face parte din nucleul WordPress-ului si tehnologia evolueaza pe zi ce trece, s-a inceput sa se lucreze la inlocuirea procesului API, cu ceea ce ofera WordPress.

Ce schimbari API vor aparea?

Una dintre primele schimbari ce vor aparea cu API sunt endpoints-urile, unde pentru a-ti aduce comenzile procesul va fi putin diferit.

A fost necesar sa se faca modificari in ceea ce privesc datele care sunt oferite prin API; date care reflecta schimbarile si progresul din nucleul WooCommerce-ului, dar totusi datele sa fie constante.

WP REST API foloseste documente pentru endpoints si scheme pentru a descrie. In acest fel, e mai usor procesul de crearea a obiectivelor, deoarece stii ce ai nevoie.

Ce fel de API ar trebui sa folosesc pentru aplicatii?

De indata ce este lansat, este recomandat sa folosesti noul WP API, intrucat este mult mai usor de folosit, este simplu si foloseste nucleul WordPress-ului pe cat de mult posibil.

Pentru ca toti utilizatorii WordPress sa aibe timp de a migra de la versiunea curenta de REST API la cea noua, inca se aproba utilizarea versiunii curente.

Ce ramane la fel?

Exista anumite puncte care raman la fel, cum ar fi:

  • Webhooks vor functiona in continuare;
  • Toate cheile WC REST API vor putea fi folositi in WP REST API;
  • Toata partea curenta de REST API va fi in continuare disponibila;
  • Autentificarea endpoint va functiona ca si pana acum.

In ceea ce priveste autentificarea este posibil sa se foloseasca oAuth1.0a si Basic Auth folosind cheile WC API. Nu sunt planuri pentru a elimina sistemul de chei API, tocmai pentru a facilita migrarea aplicatiilor folosind APIs.

Daca iti doresti sa inveti mai multe despre REST API, ce inseamna programarea in WordPress, si nu numai, ma poti contacta aici!

Introducere in WordPress REST API

WordPress a avut o crestere mare in ultimii ani, de la aparitia sa in 2003 cand era doar o platforma de blogging la una dintre cele mai populare sisteme de management al continutului. S-a maturizat destul pentru a sustine majoritatea audientei online.

Cand vine vorba despre dezvoltarea unui CMS, o parte importanta sta in functionalitatile pe care le prezinta si pe care le imbunatateste odata cu trecerea timpului. Una dintre cele mai noi functionalitati, este REST API care permite altor platforme sa interactioneze cu WordPress.

Aceasta functionalitate va fi de mare ajutor programatorilor web care dezvolta aplicatii personalitate si sisteme integrate cu WordPress. Mecanismul e posibil deoarece, WordPress ofera capacitatea de a adauga si a sterge continut de pe orice site web sau client, fara a fi necesar sa instalezi WordPress in acel site web.

Pentru a avea o imagine de ansamblu a ceea ce presupune REST API, iti voi prezenta conceptele de baza REST si JSON.

Inceputurile REST

In primul rand, REST este o abreviere pentru Representational State Transfer. REST este o tip de arhitectura. E necesar sa ii intelegi structura si conceptele, deoarece sunt esentiale in dezvoltarea unor aplicatii care folosesc tipul acesta de arhitectura.

Acest model de arhitectura ajuta la crearea si organizarea unui sistem distribuit. Vede web-ul ca o aplicatie hypermedia distribuita a carei link-uri surse sunt transmite prin schimbul de reprezentatii de stare de resurse.

Fundatia pe care se cladeste arhitectura REST sunt resursele, acestea fiind esentiale pentru web; web-ul fiind numit si un resource-oriented.

In ceea ce priveste WordPress, aceste resurse sunt entitati discrete la fel ca paginile, utilizatorii, postarile, postarile personalizate, comentariile, etc. Pentru a interactiona cu resursele, sunt folosite URI-le (Uniform Resource Identifier) care sunt identificatoare pentru resurse.

WP REST API suporta mai multe tipuri de resurse, precum: pagini, comentarii, utilizatori, postari, tipuri de postari personalizate, media, conditii, postari meta si revizii.

Codurile de raspuns HTTP

Raspunsul unui server in urma unei cereri se face prin reintoarcerea unui raspuns care contine un cod de raspuns HTTP. Aceste coduri sunt numere cu semnificatii predefinite. De exemplu, aproape orice persoana care are acces la internet cunoaste codul status 404, care inseamna ca ceea ce utilizatorul cauta nu poate fi gasit.

Good to know! Raspunsul server-ului este dependent de metoda folosita in solicitare sau de felul verbului HTTP.

Printre cele mai utilizate coduri de raspuns HTTP si care se gasesc atunci cand lucrezi cu WP REST API sunt:

  • 200 – OK: Acest cod arata ca solicitarea a fost completata cu succes si ca serverul a oferit un raspuns; de obicei apare dupa o solicitare de tipul GET care a fost realizata cu succes;
  • 201 – Created: Deobicei apare dupa o solicitare de tip POST care a fost finalizata cu succes;
  • 400 – Bad Request: Apare atunci o solicitare a fost trimisa cu parametrii invalizi sau cu ceva lipsa. Se regaseste deobicei in solicitarile de tip PUT si POST;
  • 405 – Method not Allowed: Se regaseste cand un verb HTTP a fost incarcat in solicitare si nu a fost suportat de catre resursa. Un exemplu in acest sens, sunt situatiile in care un utilizator incearca sa actualizeze o resursa read-only;
  • 410 Gone: O resursa a fost mutata intr-o alta locatie; in situatiile in care se incearca stergerea unei surse care e deja stearsa sau care a fost mutata in cosul de gunoi;
  • 500 – Internal Server Error: Solicitarea nu poate fi completa datorita unei situatii neasteptate;
  • 501 – Not Implemented: Serverul nu suporta functionalitatea pentru a putea termina solicitarea, fiind des intalnita in situatiile in care serverul primeste o metoda de solicitare pe care nu o recunoaste.

Verificarea acestor coduri de raspuns si verbe HTTP se fac mai amanuntit in momentul in care se incepe proiectul cu API.

Verbele HTTP

Cu ajutorul REST API poti efectua operatii de tip CRUD. CRUD este o abreviere pentru Create Read Update Delete. Aceste operatii se fac pe surse folosind HTTP si tocmai din aceasta cauza REST foloseste solicitari limitate de HTTP:

  • PUT – Folosit pentru actualizarea unei surse;
  • GET – Pentru a citi sau a recupera o resursa;
  • HEAD – Pentru a verifica existenta unei surse;
  • POST: Folosit pentru a crea o noua resursa;
  • DELETE: Pentru a sterge o resursa;
  • OPTIONS: Folosit pentru a recupera toate verbele suportate de catre o resursa.

Intr-un service RESTful, fiecare dintre aceste verbe are un sens bine definit. GET, POST, PUT si DELETE fac parte din actiunile CRUD; in sensul in care acestea recupereaza, actualizeaza, creeaza si sterg entitati.

Verbele OPTIONS si HEAD ajuta un client pentru a determina existenta unei surse si ce verbe HTTP sunt disponibile pentru a efectua operatii ulterioare.

Pentru a efectua cu succes aceste postari folosind WP REST API se folosesc urmatoarele endpoint-uri:

GET wp/v2/posts – Acesta va returna o colectie a tuturor postarilor; iar cand urmatorul endpoint este declansat se reintoarce la o anumita entitate. De exemplu, o postare care are un id de 100:

GET wp/v2/posts/100 – O solicitare de tip POST creeaza o noua entitate, in timp ce solicitarea PUT inlocuiesti acea entitate cu o noua versiune.

PUT wp/v2/posts/100 – O astfel de solicitare va actualiza o postare care are un id 100.

POST wp/v2/posts – Se foloseste pentru a crea o noua postare.

O solicitare de tip DELETE sterge o resursa din sistem. Aceasta, la fel ca si tipul de solicitare PUT sunt repetabile, in sensul in care au acelasi efect asupra sistemului.

Serviciul de RESTful mai ofera doua verbe HEAD si OPTIONS; care sunt de mare ajutor in situatiile in care un clien doreste sa verifice ce resurse sunt disponibile in sistem si ce actiuni sunt suportate; avand o imagine de ansamblu a actiunilor ce urmeaza a fi desfasurate.

Motive pentru care sa folosesti JSON REST API pentru WordPress

Combinatia dintre JSON si REST ofera un mecanism, care foloseste back-end-ul de la WordPress, pentru a crea aplicatii solide. Cele mai bune exemple in acest sens, sunt aplicatiile mobile care necesita un schimb de date intre dispozitiv/ client si server.

Astfel, JSON ofera o alternativa usoara pentru solutiile bazate pe  XML, care iau in vedere limitatiile pe care latimea de banda le are in momentul folosirii datelor mobile.

Cand vine vorba despre schimbul de date pe diferite platforme, care pot fi citite atat de oameni cat si de masinarii, JSON poate fi considerat un conector global. Acesta poate fi folosit fara nicio problema cu majoritatea limbajelor de programare, deoarece JSON este un format bazat pe text pentru stocarea datelor.

Iar cu ajutorul lui API, continutul site-ului tau WordPress nu este limitat, putand fi accesat atat de clienti cat si de alte site-uri. Motivul este pentru ca API expune anumite parti care apartin functionalitatilor interne, iar clientii pot interactiona cu site-ul tau de la distanta, fie pentru a crea continut nou, fie pentru actualizarea unor informatii. De asemenea, ai posibilitatea de a recupera continut de pe un site WordPress si de a-l publica pe un alt site.

WP REST API poate fi folosit pentru:

  • Aplicatiile Single Page (SPAs);
  • Aplicatii mobile;
  • Integrarea cu alte platforme server-side, ca de exemplu: Django, Ruby, .NET, etc;
  • Panouri de administrare personalizate pentru WordPress.

Avand in vedere ca framework-urile JavaScript, de tipul Backbone, Angular sau Ember, se dezvolta tot mai mult, fapt ce face posibila folosinta unuia dintre framework-uri de a crea cat mai bune experiente pentru utilizatori, in timp ce folosesti partea de back-end pentru WordPress.

Daca iti doresti sa inveti mai multe despre WP REST API, despre programarea web si programarea in WordPress, gasesti aici datele mele de contact!

SQL Injection – Cel mai folosit tip de atac

Te intereseaza mai multe informatii despre atacurile cibernetice? Cunosti tipul de atac SQL Injection?

Atacurile cibernetice sunt tot mai des intalnite si sub tot mai multe forme. Acestea sunt lansate din diverse motive, cum ar fi accesarea unor informatii secrete sau pentru a sabota anumite echipamente.

Indiferent de motiv si modalitatea de actiune, atacurile cibernetice sunt la fel de neplacute si pot ajunge chiar un obstacol in castigarea unor clienti si vizitatori noi sau in mentinerea celor existenti.

Asadar, pentru a putea preveni intr-o masura cat mai mare aceste atacuri, e recomandat sa afli cat mai multe informatii despre cum iti poti avea o securizare mai puternica, dar si despre tipurile de atacuri si modul lor de functionare.

Cat de raspandit e acest tip de atac?

SQL Injection este o vulnerabilitate foarte intalnita, motiv pentru care este considerata cea mai populara, de tipul sau, injectare.

Conform unui studiu, condus de Ponemon, 65% dintre organizatiile participante au experimentat un atac SQL Injection in ultimul an. Aceasta cercetare a fost publicata cu doi ani in urma, dar chiar si asa, se poate folosi ca o estimare.

SQL Injection este raspandita in special, in codul mostenire. Acum cativa ani, publicul online era mai putin constient de pericolul acestui tip de atac, motiv pentru care era mult mai intalnita.

Influenta atacului SQL Injection

La fel ca orice atac, influenta pe care acesta o poate avea difera de la un caz la altul. In majoritatea cazurilor, influenta pe care atacul o aduce sunt informatiile furate dintr-o baza de date. In aceasta categorie intra informatii confidentiale de mai multe tipuri, precum parole, nume de utilizatori si altele.

Intr-o situatie extrema, dar posibila, cel mai rau scenariou posibil ar include o preluare totala a intregului sistem; dar aceasta depinde si de mediul in care este si tipul de injectie.

SQL Injection care poate fi realizat atat manual, cat si automat; atacul automat punand aplicatia web in mai mare pericol. Deoarece, asa cum mentionam in articolele anterioare, atacatorul nu are neaparat motive personale pentru care iti ataca site-ul web.

In schimb, acestia scriu un cod care exploreaza mai multe site-uri, iar daca al tau e atacat inseamna ca exista o portita de intrare undeva.

Cum descoperi un astfel de atac

In functie de nivelul cunostintelor tale ca si programator web, poti alege mai multe modalitati pentru a putea descoperi daca site-ul web a fost atacat.

Pentru cei la inceput de drum, exista diferite companii care ofera astfel de servicii, aplicatii care scaneaza site-ul, sau poti alege un programator web cu experienta care sa efectueze aceasta parte.

In cazul in care ai mai multa experienta ca si programator web, poti cauta vulnerabilitatea printr-o analiza de cod, identificand tote queries in aplicatia web si urmarind cursul informatiilor. Sunt si cazuri in care nu se genereaza niciun feedback vizibil, poate sa fie dificila detectarea in timpul unui test de tipul blackbox.

Good to know! Intrucat majoritatea atacurilor cibernetice se fac in mod automat, acestea pot targeta orice tip de site web, indiferent de marimea acestuia. Chiar si site-urile web de dimensiuni mari si care sunt populare, precum Sony pot fi finta unui astfel de atac.

Exploatabilitate

Forma Injection de atac cibernetic, cuprinde o gama variata, care difera de la un caz la altul. Dar, in general, un atac SQL Injection clasic, este chiar usor de realizat, motiv pentru care aproape oricine il poate desfasura.

Acesta este si unul dintre motivele pentru care, SQL Injection, este unul dintre cele mai raspandite atacuri cibernetice. De asemenea, este si un motiv in plus, pentru care e necesar sa iti securizezi aplicatia web cat de puternic posibil si sa fii mereu la curent cu noile informatii care apar despre securizare.

Daca iti doresti sa inveti cum sa iti protejezi mai bine aplicatia web, sau cum sa descoperi daca un atac cibernetic incepe sa se desfasoare, gasesti datele mele de contact aici!

Securizeaza aplicatia web: Session fixations

Iti este securizata aplicatia web? Cunosti termenul si semnficatia de session fixation? Ii doresti sa afli mai multe despre asta?

Cand vine vorba de securitate este mereu loc de imbunatatiri, deoarece la fel cum tehnologia avanseaza pe zi ce trece, in acelasi mod gasesc si hackeri posibilitati prin care iti pot afecta securitatea aplicatiei web.

Motiv pentru care e important sa cunosti tipurile de atacuri cibernetice si ce poti face pentru a le preveni.

Ce este Session Fixation?

Un alt tip de atac cibernetic este Session Fixation. Acesta ii permite unui atacator atace sesiunea valida a unui utilizator. Atacul exploreaza o limitatie, in sensul in care aplicatia web coordoneaza sesiunea de ID, care este partea vulnerabila a unei aplicatii web.

In momentul in care un utilizator se autentifica, nu i se atribuie o sesiuna noua de ID, iar acest proces face posibil sa folosesti o sesiune de ID deja existenta. Atacul e bazat pe obtinerea unei sesiuni valide, in care utilizatorul se autentifica, urmand ca atacatorul sa preia controlul asupra sesiunii. Atacatorul trebuie sa furnizeze o sesiune ID web veritabila, iar pentru aceasta incearca sa faca victima sa foloseasca browserul.

Good to know! Acest tip de atac, tinteste sesiunile stabilite in browser-ul victimei, ceea ce inseamna ca atacul incepe inainte ca utilizatorul sa se autentifice.

Tehnici de executare

Pentru a executa atacul exista mai multe tehnici, in functie de token-urile folosite pentru sesiunile aplicatiei web.

Sesiune ID intr-un cookie

<META> tag – Acesta este considerat si un atac de tip injectare cod. Un atac care foloseste aceasta tehnica este mult mai eficient. Asta deoarece este imposibil sa dezactivezi procesarea acestor etichete in browsere.

Client-side script – Majoritatea browserelor suporta tipul de executie client-side scripting. Pentru aceasta tehnica, atacatorul poate folosi atacuri de injectare cod, ca de exemplu atacul XSS (cross-site scripting) pentru a insera un cod malicious in hyperlink-ul trimis victimei. Astfel e fieaza o sesiune ID in cookies.

HTTP header response – Pentru aceasta metoda, se cerceteaza raspunsul server-ului pentru a fixa sesiunea ID in browser-ul victimei. Astfel, atacatorului ii este permis sa insereze valoarea sesiunii ID in cookie, incluzand parametrul Set-Cookie in raspunsul header-ului HTTP, iar apoi este trimis catre browser-ul victimei.

Sesiuni token in argumentul URL-ului

Sesiunea ID ii este trimisa victimei sub forma unui link prin care victima acceseaza aplicatia web printr-un URL daunator.

Sesiuni token ascunse intr-un formular

Pentru aceasta tehnica, e necesar ca victima sa fie pacalita in autentificarea unui server web tinta, folosind un formular de login, care este creat de atacator. Formularul poate fi gazduit in emailul formatat HTML sau in server-ul web daunator.  

Exemple explicative

 

  • Client-side scripting

 

Procesul pentru acest tip de atac care foloseste scripturile de executie in browserul victimei care nu apar sub forma unui argument in URL, dar in cookie-uri. Atacatorul poate insera un cod JavaScript in URL care va fi efectuat in browser-ul victimei.

http://website.kom/document.cookie=”sessionid=abcd”;

 

  • HTTP header response

 

Prin interceptarea pachetelor de schimb intre aplicatia web si client, se face inserarea valoarei sesiunii ID in cookie prin manipularea raspunsului server-ului.

 

  • <META> tag

 

Codul de injectare e necesar sa ie introdus in URL-ul care va fi trimis victimei.

http://website.kon/<meta http-equiv=Set-Cookie content=”sessionid=abcd”>

 

 

  • Formularul

 

Pentru atacul in formular, atacatorul trebuie sa stabileasca o conexiune vertabila cu server-ul web. Mai apoi, se elibereaza sesiunea ID, sau atacatorul creaza o noua sesiune. Atacatorul trimite link-ul cu conexiunea gazduita victimei, pentru a fi accesat de victima.

Timp in care server-ul web vede sesiunea are a fost deja stabilita, nemaifiind nevoie de una noua. Astfel victima isi introduce datele server-ului web, iar atacatorul poate accesa contul utilizatorului.

Daca iti doresti sa inveti cum sa oferi aplicatiei web o securizare mai solida, gasesti aici datele mele de contact!

Cum sa verifici daca ai configurat securitatea aplicatiei web?

Iti este configurata securitatea aplicatiei web? Te intereseaza cum poti verifica daca configurarea a fost facuta corespunzator?

Cand vine vorba de securitate, un aspect important este ca aceasta sa fie configurata corespunzator. Aceasta conteaza deoarece in acest fel poti determina daca aplicatia web este intr-adevar securizata, sau daca exista puncte slabe.

Ce inseamna configurarea gresita a securitatii unei aplicatii web?

Configurarea gresita a securitatii unei aplicatii web se afla pe locul 5 pe lista vulnerabilitatilor. Daca o componenta este predispusa la atacul cibernetic datorita configurarii necurespunzatoare, se incadreaza in categoria configurarii securitatii necorespunzatoare. Indiferent de locul in care apare configurarea gresita, fie in baza de date, sau pe server-ul web e considerata acelasi tip de vulnerabilitate.

Cat de raspandita este aceasta vulnerabilitate?

Configurarea necorespunzatoare a securitatii este o categorie cuprinzatoare. In acelasi timp, este si un fenomen care se intampla chiar frecvent.

O aplicatie web este construita pe mai multe straturi, motiv pentru care posibilitatea de a gresi creste cu fiecare parte.

Ce impact aduce?

Impactul se diferentiaza in functie de specificul fiecarei configuratii gresite. Cert este ca, posibilele impacte pot fi de la cele mai mici si chiar pana la intreaga preluarea a aplicatiei web.

Preluarea de catre o terta parte a aplicatiei web inseamna informatii confidentiale care sunt furate in diferite scopuri, iar recuperarea acestora poate sa coste destul de mult.

Cum poti descoperi daca configurarea securitatii este gresita sau nu

Singura modalitate prin care poti verifica este sa incepi sa verifici intreg sistemul. Poti incepe sa verifici prin raspunsul la mai multe intrebari:

  • Atunci cand e posibil sa aplici o securitatea mai solida intr-un framework, se executa acest lucru?
  • Au ramas conturi implicite? Daca da, au fost schimbate parolele?
  • Sunt instalate sau activate functionalitati care nu sunt necesare? Pot fi sterse?

Si prea putine si prea multe functionalitati pot sa faca ca securizarea aplicatiei web sa fie instabila.

Daca iti doresti sa inveti cum sa configurezi securitatea unei aplicatii web, sau iti doresti sa inveti programare web de la zero, si nu numai, ma poti contacta aici!

Securizarea informatiilor confidentiale

Unele dintre cele mai importante parti pe care le contine un site web sunt informatiile confidentiale, fie ca sunt ale vizitatorilor, clientilor, sau chiar ale tale.

Ca si proprietarul unui site web e esential sa intelegi importanta securizarii informatiilor confidentiale. Deoarece in cazul in care o parte terta are acces la astfel de informatii, atat increderea clientilor, cat site-ul tau sunt in pericol.

Dezvaluirea unor informatii confidentiale se intampla atunci cand aplicatia sau site-ul web nu beneficiaza de o securitate puternica pentru a proteja informatiile. Aceste informatii sunt de mai multe tipuri, de la tokens pentru anumite sesiuni, parola pana la informatiile private de sanatate, sau informatii bancare.

Raspandire

In multe cazuri, in dezvoltarea unei aplicatii sau a unui site web, partea de securizare a informatiilor condifentiale e planificata spre sfarsit. Acest lucru se intampla deoarece, in plan prioritar este dezvoltarea unei aplicatii cat mai bune si functionale.

Sa lucrezi cu date confidentiale si criptate e unul dintre cele mai dificile lucruri. Aceste este unul dintre motivele pentru care se fc multe greseli in implementarea unei solutii self-built, lucru care va duce la o securizare insuficienta a datelor.

Astfel, dezvaluirea unor date confidentiale este o vulnerabilitate des intalnita, care poate fi mai daunatoare celor cu proiecte sau companii mai mici. Sigur ca, chiar si companiile mari pot fi afectate de acest fenomen, insa nu atat de des.

Impact potential

Impactul potential e considerat mereu a fi mare deoarece implica ne referim la informatii confidentiale. Pericolul consta in dezvaluirea informatiilor, iar impactul potential reflecta importanta si confidentialitatea informatiilor.

In cazul in care cardul tau bancar a fost furat, atacatorul poate goli intreg contul victimei, daca anumite certificate sunt furate atacatorul poate pretinde ca el este tinta, sau daca parolele sunt dezvaluite, atacatorul poate abuza de numele si functia ta. Totul depinde de informatiile care sunt in riscul de a fi dezvaluite.

Exploatabilitate

O mare parte dintre vulnerabilitatile criptate sunt considerate a fi greu de exploatat, in special la scara larga. Totusi, exista cealalta jumatate, in care aceste vulnerabilitati sunt mult mai usor de exploatat.

Daca un atacator ar avea acces la o baza de date care este necriptata, acestia nu ar avea nevoie de nimic special pentru a exploata informatiile gasite. Ar avea cu un strat de securitate mai putin, ceea ce ar face procesul de atac mult mai usor.

Cum previi dezvaluirea informatiilor confidentiale

Un prim pas pentru a preveni dezvaluirea informatiilor confidentiale este sa faci o analiza a datelor si sa vezi care sunt intr-adevar confidentiale si prin urmare, care sunt esentiale de protejat.

  • Dupa analiza, asigura-te de urmatoarele:
  • Informatiile nu sunt transmise in text clar niciodata;
  • Generarea cheii este securizata;
  • Informatiile nu sunt niciodata stocate in text clar;
  • Headerele din browser sunt setate sa nu faca cache in momentul in care informatiile confidentiale sunt prezentate utilizatorului;
  • Algoritmii sunt folositi pentru a cripta datele care sunt considerate a fi destul de solide.

Cum descoperi

Acest tip de vulnerabilitate este diferit de cele care sunt putin mai traditionale, motiv pentru care nu poate fi gasita prin aceleasi modalitati. Multe vulnerabilitati care fac parte din aceasta categorie nu pot fi scanate, iar acest lucru este explicat in doua motive:

  • Un pentester extern nu poate stii daca informatiile interne sunt criptate sau nu;
  • Pentru a determina riscul, trebuie decis daca informatia e considerata confidentiala, fapt care e dificil de realizat in mod automat.

In majoritatea cazurilor, pentru a vedea daca site-ul sau aplicatia ta sunt vulnerabile la dezvaluirea informatiilor confidentiale e necesar sa urmezi pasii din lista de prevenire, deoarece e singura cale prin care poti identifica daca site-ul tau securizeaza informatiile confidentiale.

Daca iti doresti sa inveti cum sa iti securizezi informatiile confidentiale sau iti doresti sa fie securizate de o parte terta, aici gasesti datele mele de contact!