Nu încărcați date importante pe serverul WEB. Crearea și pregătirea unei baze de date

Directivele din AngularJS joacă un rol important. Directivele pot fi folosite pentru a preda noi trucuri la HTML și vă puteți chiar crea propriile etichete sau atribute HTML. Directivele ajută, de asemenea, la menținerea unui marcaj mai fluent și definesc o modalitate plăcută de a separa codul și marcarea unul de celălalt.

View este un șablon HTML. Vizualizarea nu este altceva decât informațiile pe care doriți să le redați browserului utilizatorului final. O vizualizare în AngularJS este numită și ca DOM compilat. View folosește directive pentru a reda datele cu șablon HTML.

Acest articol este partea a IV-a a site-ului web de urmărire a proiectelor construit în AngularJS și ASP.NET Web API. Până acum, am creat , și am .

Mulțumită pentru a revizui această serie Angular și a remedia erorile.

Am văzut deja obiectul $scope care oferă un Model pentru Vedere. Codul modelului nu este amestecat cu codul HTML pe care îl scriem în vederile noastre. Mai degrabă, datele sunt mutate din model în vizualizări folosind expresii de legare a datelor. În acest fel, dezvoltatorii pot realiza Separarea preocupărilor (SoC). Deoarece modelele sunt independente de vizualizări, ele pot fi legate de orice vizualizare. Această legare a modelului se face cu ajutorul directivelor AngularJS.

Am văzut deja câteva directive Angular în aplicația noastră ca ng-care bootstrap AngularJS, precum și ng-controller care face controlerul disponibil pentru HTML. De la controler, putem lega datele de vizualizări folosind Angular ((expresie)).

În acest articol, ne vom uita la câteva directive suplimentare AngularJS care vin din cutie cu Angular. Unul dintre ei este ng-repeat. Să încercăm să folosim directiva ng-repeat în pagina EmployeeDetails.html, care poate fi găsită în acest articol. Modificați adresa URL a serviciului în fișierul EmployeesController.js. URL-ul serviciului este următorul:

http://localhost:2464/api/ptemployees

Acum vom modifica pagina EmployeeDetails.html așa cum se arată în următorul cod -

((emp.employeeID)) ((emp.employeeName)) ((denumire emp.)) ((emp.contactNu)) ((emp.eMailID)) ((emp.skillSets))

Inlocuieste din pagina EmployeeDetails.html cu codul de mai sus. Ieșirea codului de mai sus este afișată aici:

În acest cod, am folosit directiva ng-repeat a AngularJS. Este similar cu bucla for sau foreach din .NET. Aici obținem un IEnumerable colectare folosind ASP.NET Web API. Folosim această colecție ca model în controlerul nostru unghiular. Folosind acest model, repetăm ​​obiectele angajaților, în viziunea noastră. Aceasta este o directivă foarte utilă care se repetă prin obiectele din colecție pentru a afișa datele în vizualizare.

Acum să încercăm să adăugăm un filtru pentru a căuta un anumit angajat din colecție și să afișăm angajatul pe baza caracterului Nume angajat sau Nume angajat. Până acum, am preluat modelul și l-am folosit în vizualizările noastre. Funcționează și invers. Ne putem face opiniile să răspundă modelelor noastre care se află acolo în controlerele noastre.

Pentru a adăuga un filtru de căutare bazat pe numele angajatului, vom modifica pagina EmployeeDetails.html adăugând elemente de introducere HTML, așa cum se arată mai jos -

Introduceți numele sau caracterul angajatului pentru a căuta -

Adăugați codul de mai sus imediat după

etichetă. În codul de mai sus, folosim directiva ng-model care ne permite să trimitem datele înapoi către model. Pe baza acestor date, vom face o căutare pentru un angajat folosind proprietatea EmployeeName. Asigurați-vă că proprietatea EmployeeName este declarată în modelul nostru, ceea ce vom face în următorii pași. De asemenea, observați că folosim ng-submit directivă care va da un apel către Caută angajat funcția de la controlerul nostru.

Acum să modificăm fișierul EmployeesController.js, astfel încât să putem căuta angajatul pe baza proprietății EmployeeName ca criteriu de căutare. Codul este prezentat mai jos -

(funcție () ( var EmployeesController = funcție ($scope, $http) ( var angajați = funcție (serviceResp) ( $scope.Employees = serviceResp.data; ); $scope.SearchEmployees = funcție (EmployeeName) ( $http.get ("http://localhost:2464/api/ptemployees/" + EmployeeName) .then(angajați, errorDetails); ); var errorDetails = function (serviceResp) ( $scope.Error="Ceva a mers prost ?"; ) ;$http.get("http://localhost:2464/api/ptemployees") .then(angajați,Detalii erori); $scope.Title = "(!LANG:Pagina cu detalii despre angajat"; $scope.EmployeeName = null; }; app.controller("EmployeesController", EmployeesController); }()); !}

În codul de mai sus, am adăugat metoda SearchEmployee() la obiectul nostru $scope ca model. Această metodă va căuta angajați în funcție de numele angajatului sau de caracterul numelui unui angajat. Am declarat și noi Numele angajatului proprietate în controlerul nostru la sfârșitul acestui cod. Metoda SearchEmployees preia metoda Web API. Am modificat metoda GET așa cum se arată aici:

Public HttpResponseMessage Get(nume șir) (var angajați = EmployeesRepository.SearchEmployeesByName(nume); răspuns HttpResponseMessage = Request.CreateResponse(HttpStatusCode.OK, angajați); răspuns returnat; )

Codul arhivei angajaților este așa cum se arată aici:

lista publică statică SearchEmployeesByName(string employeeName) ( ProjectTrackingDBEntities dataContext = new ProjectTrackingDBEntities(); interogare var = de la angajat în dataContext.Employees unde employee.EmployeeName.Contains(employeeName) selectează angajat; return query.ToList(); )

După toate aceste modificări, rulați acum pagina EmployeeDetails.html și vedeți rezultatul.

În rezultatul de mai sus, căutăm angajați al căror nume conține caracterul „J”.

Filtre AngularJS extinde comportamentul expresiilor sau directivelor obligatorii. Filtrele sunt folosite cu expresii de legare pentru a formata datele care sunt legate. Când sunt folosite cu directive, adaugă câteva acțiuni suplimentare directivelor. Ieșit din cutie, AngularJS oferă o serie de filtre pe care le putem folosi pentru a formata valorile unei expresii și pentru a afișa valorile/datele în vizualizările noastre. Puteți folosi filtrele din Vizualizări, Controlere și Servicii. Sintaxa utilizării filtrelor în vizualizări este (( expresie | filtru1 | filtru2 | ...)).

Vom încerca acum un filtru care va sorta datele folosind numele angajatului. Pentru a sorta datele, să adăugăm un filtru în ng-repeat folosind un | operator așa cum se arată aici:

În codul de mai sus, adăugăm filtru în directiva noastră ng-repeat. OrderBy:'employeeName' va sorta datele folosind Employee Name într-o ordine crescătoare. Puteți observa rezultatul aici:

Pentru a afișa datele în ordine descrescătoare, puteți schimba filtrul așa cum se arată aici:

În codul de mai sus, pentru a sorta numele angajaților în ordine descrescătoare, am folosit semnul minus (-). De asemenea, puteți folosi semnul (+) pentru a o sorta crescător.

De asemenea, puteți folosi limitat la filtru pentru a limita numărul de înregistrări. De exemplu, să spunem că la un moment dat doriți să afișați 5 angajați. Pentru a afișa numărul restricționat de înregistrări în pagina EmployeeDetails.html, să modificăm directiva ng-repeat așa cum se arată aici -

Ieșirea este afișată aici:

Acum, dacă rulați pagina ProjectDetails.html, data este afișată cu timpul. Puteți aplica filtrul de dată așa cum se arată în următorul cod -

((ID proiect.proiect)) ((proj.projectName)) ((proj.startDate|date:"scurt")) ((proj.endDate|date:"scurt")) ((proj.clientName))

Rezultatul acestei pagini este după cum urmează:

Puteți utiliza diferite formate de dată, cum ar fi - fulldate, longdate, mediumdate, shortdate etc. Acum să deschidem pagina EmployeeDetails.html și să o rulăm. Folosesc caracterul „Z” pentru a afișa angajații al căror nume de angajat conține Z.

Dacă observați, rezultatul afișează un titlu al tabelului de angajați fără date. Putem face titlul invizibil folosind directiva ng-show atunci când filtrul nu produce niciun rezultat. Aplicați directiva ng-show în eticheta noastră de tabel, așa cum se arată în codul de mai jos și încercați să rulați aplicația cu caracterul Z. Acum nu veți vedea coloanele din tabel când modelul de angajați este nul. Atributul ng-show va evalua modelul Angajaților și, în consecință, fie va afișa tabelul, fie va ascunde tabelul.

De asemenea, există o serie de directive pe care le puteți utiliza în AngularJS. De asemenea, puteți proiecta o directivă personalizată pe care o vom vedea mai târziu în această serie. Aplicați căutarea pe diferite vizualizări conform cerințelor dvs. în vizualizările noastre. În următorul nostru articol, vom arunca o privire

Înregistrarea controalelor este efectuată de directiva @Register, care vă permite să utilizați controalele utilizatorului și controalele serverului în codul HTML al paginii folosind o sintaxă specială (sintaxă declarativă de control personalizată a serverului). Pe baza analizei acestor directive, analizatorul de pagini poate asocia etichete cu tipuri date și, la crearea unei pagini, poate încorpora controale deja ca containere de tipuri personalizate - ramuri ale arborelui de control al paginii.

Directivele ar trebui să precedă prima utilizare a etichetelor declarate, mai des sunt plasate la începutul paginii iar în cazul înregistrării mai multor controale, în site-urile cu structură modulară, numărul de astfel de declarații poate ocupa un număr mare de rânduri. . Când schimbați locația controalelor, trebuie să căutați linii care necesită modificări în codul tuturor paginilor și controalelor de utilizator pe care sunt înregistrate, ceea ce este destul de incomod.

Articolul descrie o metodă care simplifică înregistrarea controalelor.

Pentru directivele de înregistrare, vom folosi un fișier text simplu în care vom colecta toate directivele @ Register. Deoarece căile virtuale pot fi folosite pentru a declara controalele utilizatorului și doar spațiile de nume sunt specificate pentru controalele serverului, putem colecta toate linkurile de care avem nevoie în acest fișier, iar linkurile către fișierele ascx vor fi corecte pentru orice folder din proiect. Iată cum arată acest fișier într-unul dintre proiecte:


<%@ Register TagPrefix="ch" Namespace="ControlsSharp.HtmlControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="cw" Namespace="ControlsSharp.WebControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="c" Namespace="ControlsSharp.CustomControls" Assembly="ControlsSharp"%>

<%@ Register TagPrefix="b" Namespace="ControlsBasic.CustomControls" Assembly="ControlsBasic"%>

<%@ Register TagPrefix="cu" TagName="bottommenu" Src="~/UserControls/Menu/cu_menu_bottom.ascx" %>

<%@ Register TagPrefix="cu" TagName="leftmenu" Src="~/UserControls/Menu/cu_menu_left.ascx" %>

<%@ Register TagPrefix="cu" TagName="topmenu" Src="~/UserControls/Menu/cu_menu_top.ascx" %>

Să denumim fișierul register.inc și să-l plasăm în folderul /inc al proiectului nostru web.

Acest fișier va conține toate linkurile de care avem nevoie, vom adăuga sau modifica înregistrarea unui utilizator sau a unui control server în el.

Acum fișierul creat trebuie să fie inclus într-un fel în codul paginii. Facem acest lucru cu directiva SSI (partea serverului include) #include. Această directivă vă permite să includeți fișiere statice și dinamice în codul paginii, procesându-le pe baza maparii IIS, de exemplu. specificarea unui fișier asp sau aspx ca sursă va face ca fișierul să fie procesat de procesul corespunzător și va copia rezultatele acestei procesări în pagina de ieșire. În ASP, directiva #include a fost folosită pe scară largă și a permis modularizarea site-ului. Odată cu apariția ASP.NET, a devenit mai convenabil să faceți acest lucru în alte moduri, de exemplu, folosind controalele utilizatorului. Versiunile viitoare ale ASP.NET vor implementa modularitatea folosind paginile master. În general, directiva #include și-a pierdut sensul și a fost păstrată în principal pentru compatibilitate cu retrocompatibilitatea și pentru a simplifica migrarea proiectelor ASP la .Net.

Deoarece avem un fișier text simplu, nu se va face nicio procesare și înainte de a fi executat orice conținut dinamic, întregul conținut al fișierului va fi copiat în codul paginii. Acestea. adăugarea fișierului nostru register.inc în partea de sus a paginii, de exemplu, este aproape la fel cu scrierea tuturor directivelor @Register acolo.

Pentru a nu depinde de locația fizică a fișierului, folosim din nou sintaxa căii virtuale și adăugăm următoarea linie la codul fișierului aspx:

Asigurați-vă că totul funcționează, dacă nu, corectați căile greșite.

Rămâne de efectuat încă o operațiune. Acum, dacă încercați să obțineți fișierul /inc/register.inc din linkul din browser, o puteți face cu ușurință. IIS îl pune în mâinile tale, precum și în mâinile unui atacator, complet gratuit, deși conține căile structurii fizice a site-ului tău.

Pentru a preveni acest lucru, folosim capacitățile handlerului sincron HttpForbiddenHandler, care ne permite să protejăm fișierele de un anumit tip împotriva emiterii la cererea utilizatorului. Această abordare este convenabilă și este adesea folosită, de exemplu, pentru a proteja fișierele bazei de date MS Access utilizate într-un proiect. Pentru ca fișierele cu extensia *.inc să fie protejate folosind acest handler, trebuie să spuneți IIS că aceste fișiere vor fi procesate de procesul ASP.NET, cu alte cuvinte, configurați IIS pentru a mapa la fișiere de acest tip.

Pentru o descriere detaliată a procesului de configurare pentru IIS, consultați CUM SE: Utilizați ASP.NET pentru a proteja tipurile de fișiere (http://support.microsoft.com/kb/815152/EN-US/). Trebuie să creăm o mapare numai pentru fișierele *.inc. După parcurgerea pașilor descriși acolo, toate cererile de fișiere cu această extensie vor fi procesate de procesul ASP.NET și va trebui să editați fișierul web.config după cum urmează:

Asta este, acum, când încearcă să obțină fișierul /inc/register.inc printr-o legătură directă, utilizatorul va primi eroarea B.

Pentru a nu înregistra aspnet_isapi.dll, de exemplu, furnizorul dvs. nu dorește să facă acest lucru, puteți utiliza capacitatea SSI de a specifica fișiere de orice tip și de a înșela folosind o extensie a unuia dintre tipurile deja mapate în IIS în mod implicit pentru un fișier cu directive @Register. Extensiile *.cs sau *.vb vor fi convenabile pentru aceasta. Aceste fișiere conțin cod sursă și de obicei nu sunt copiate pe server. Dacă ați greșit brusc și ați copiat, nu le veți putea obține la cererea din browser - atunci când încercați să faceți acest lucru, utilizatorul va primi o eroare B. Acest lucru se întâmplă deoarece maparea în IIS este configurată implicit pentru fișiere de acest tip și extensia corespunzătoare este deja înregistrată în secțiune fisierul machine.config. In Visual Studio, pentru ca compilatorul sa nu iti dea mesaj de eroare, pune o extensie de care compilatorul nu este interesat: in proiectele C# este *.vb, in proiectele VB este *.cs.
Concluzie

Metoda descrisă vă permite să înregistrați controale într-un singur loc pentru întregul proiect. Modificarea ulterioară a acestui fișier necesită mai puțin efort decât dacă ar trebui să o faceți în mod obișnuit. Încercați să utilizați SSI #include în interiorul fișierelor pe care le introduceți - acest lucru vă permite să organizați un fel de ierarhie și moștenire, ceea ce poate fi convenabil pentru proiecte mari

Motorul de căutare Google (www.google.com) oferă multe opțiuni de căutare. Toate aceste caracteristici sunt un instrument de căutare neprețuit pentru un utilizator de internet pentru prima dată și, în același timp, o armă și mai puternică de invazie și distrugere în mâinile oamenilor cu intenții rele, inclusiv nu numai hackeri, ci și criminali care nu sunt informatici. si chiar teroristi.
(9475 vizualizări într-o săptămână)

Denis Batrankov
denisNOSPAMixi.ru

Atenţie:Acest articol nu este un ghid de acțiune. Acest articol este scris pentru voi, administratori de server WEB, astfel încât veți pierde falsul sentiment că sunteți în siguranță și veți înțelege în sfârșit insidiosul acestei metode de obținere a informațiilor și vă veți apuca să vă protejați site-ul.

Introducere

De exemplu, am găsit 1670 de pagini în 0,14 secunde!

2. Să introducem o altă linie, de exemplu:

inurl:"auth_user_file.txt"

puțin mai puțin, dar acest lucru este deja suficient pentru descărcare gratuită și pentru ghicirea parolelor (folosind același John The Ripper). Mai jos voi da mai multe exemple.

Deci, trebuie să vă dați seama că motorul de căutare Google a vizitat majoritatea site-urilor de internet și a stocat în cache informațiile conținute în ele. Aceste informații stocate în cache vă permit să obțineți informații despre site și conținutul site-ului fără o conexiune directă la site, doar săpați în informațiile care sunt stocate intern de Google. Mai mult, dacă informațiile de pe site nu mai sunt disponibile, atunci informațiile din cache pot fi în continuare păstrate. Tot ce aveți nevoie pentru această metodă este să cunoașteți câteva cuvinte cheie Google. Această tehnică se numește Google Hacking.

Pentru prima dată, informații despre Google Hacking au apărut pe lista de corespondență Bugtruck în urmă cu 3 ani. În 2001, acest subiect a fost abordat de un student francez. Iată un link către această scrisoare http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html. Acesta oferă primele exemple de astfel de solicitări:

1) Indexul /admin
2) Index de /parola
3) Index de /mail
4) Index pentru / +banques +filetype:xls (pentru Franța...)
5) Index de / +passwd
6) Index de/parolă.txt

Acest subiect a făcut mult zgomot în partea de citit în engleză a internetului destul de recent: după un articol de Johnny Long publicat pe 7 mai 2004. Pentru un studiu mai complet al Google Hacking, vă sfătuiesc să mergeți pe site-ul acestui autor http://johnny.ihackstuff.com. În acest articol, vreau doar să vă aduc la curent.

Cine îl poate folosi:
- Jurnaliştii, spionii şi toţi acei oameni cărora le place să bage nasul în afacerile altora pot folosi acest lucru pentru a căuta dovezi compromiţătoare.
- Hackerii care caută ținte potrivite pentru hacking.

Cum funcționează Google.

Pentru a continua conversația, permiteți-mi să vă reamintesc câteva dintre cuvintele cheie folosite în interogările Google.

Căutați folosind semnul +

Google exclude, în opinia sa, cuvintele neimportante din căutare. De exemplu, cuvinte interogative, prepoziții și articole în limba engleză: de exemplu, are, of, where. În rusă, Google pare să considere toate cuvintele importante. Dacă cuvântul este exclus din căutare, atunci Google scrie despre el. Pentru ca Google să înceapă să caute pagini cu aceste cuvinte, trebuie să adăugați un semn + înaintea lor fără spațiu înaintea cuvântului. De exemplu:

as + de bază

Cauta dupa semn -

Dacă Google găsește un număr mare de pagini din care este necesar să excludeți pagini cu anumite subiecte, atunci puteți forța Google să caute numai pagini care nu conțin anumite cuvinte. Pentru a face acest lucru, trebuie să indicați aceste cuvinte punând un semn în fața fiecăruia - fără spațiu înaintea cuvântului. De exemplu:

pescuit - vodca

Căutați cu semnul ~

Poate doriți să căutați nu numai cuvântul specificat, ci și sinonimele acestuia. Pentru a face acest lucru, precedați cuvântul cu simbolul ~.

Găsirea unei expresii exacte folosind ghilimele duble

Google caută pe fiecare pagină toate aparițiile cuvintelor pe care le-ați scris în șirul de interogare și nu îi pasă de poziția relativă a cuvintelor, principalul lucru este că toate cuvintele specificate sunt pe pagină în același timp ( aceasta este acțiunea implicită). Pentru a găsi expresia exactă, trebuie să o puneți între ghilimele. De exemplu:

"spre carte"

Pentru a avea cel puțin unul dintre cuvintele specificate, trebuie să specificați în mod explicit operația logică: SAU. De exemplu:

carte de siguranță SAU protecție

În plus, puteți folosi semnul * în șirul de căutare pentru a indica orice cuvânt și. a reprezenta orice personaj.

Găsirea cuvintelor cu operatori suplimentari

Există operatori de căutare care sunt specificați în șirul de căutare în formatul:

operator:termen_căutare

Spațiile de lângă colon nu sunt necesare. Dacă introduceți un spațiu după două puncte, veți vedea un mesaj de eroare, iar înaintea acestuia, Google le va folosi ca șir de căutare normal.
Există grupuri de operatori de căutare suplimentari: limbi - indicați în ce limbă doriți să vedeți rezultatul, data - limitați rezultatele din ultimele trei, șase sau 12 luni, apariții - indicați unde trebuie să căutați în document șirul: peste tot, în titlu, în URL, domenii - căutați site-ul specificat sau invers excludeți-l din căutare, căutare sigură - blocați site-urile care conțin tipul specificat de informații și eliminați-le din paginile cu rezultatele căutării.
Cu toate acestea, unii operatori nu au nevoie de un parametru suplimentar, de exemplu, interogarea " cache:www.google.com" poate fi numit ca șir de căutare complet, iar unele cuvinte cheie, dimpotrivă, necesită un cuvânt de căutare, de exemplu " site:www.google.com ajutor„. În lumina subiectului nostru, să ne uităm la următorii operatori:

Operator

Descriere

Necesită un parametru suplimentar?

căutați numai pentru site-ul specificat în search_term

căutați numai în documente cu tipul search_term

găsiți pagini care conțin termenul de căutare în titlu

găsiți pagini care conțin toate cuvintele search_term din titlu

găsiți pagini care conțin cuvântul search_term în adresa lor

găsiți pagini care conțin toate cuvintele search_term în adresa lor

Operator site: limitează căutarea doar pe site-ul specificat și puteți specifica nu numai numele domeniului, ci și adresa IP. De exemplu, introduceți:

Operator tip fișier: restricționează căutările la fișiere de un anumit tip. De exemplu:

Începând cu data acestui articol, Google poate căuta în 13 formate de fișiere diferite:

  • Format de document portabil Adobe (pdf)
  • Adobe PostScript (ps)
  • Lotus 1-2-3 (săptămâna 1, săptămâna2, săptămâna3, săptămâna4, săptămâna5, săptămînă, săptămînă, wku)
  • Lotus Word Pro (lwp)
  • MacWrite(mw)
  • Microsoft Excel (xls)
  • Microsoft PowerPoint (ppt)
  • Microsoft Word (doc)
  • Microsoft Works (wks, wps, wdb)
  • Microsoft Write (scriere)
  • Format text îmbogățit (rtf)
  • Shockwave Flash (swf)
  • Text (ans, txt)

Operator legătură: afișează toate paginile care indică pagina specificată.
Trebuie să fie întotdeauna interesant să vezi câte locuri de pe Internet știu despre tine. Noi incercam:

Operator cache: arată versiunea Google cache a site-ului așa cum arăta când Google a vizitat ultima pagină. Luăm orice site care se schimbă frecvent și ne uităm la:

Operator titlu: caută cuvântul specificat în titlul paginii. Operator allintitle: este o extensie - caută toate cuvintele specificate în titlul paginii. Comparaţie:

intitle:zbor pe Marte
intitle:zbor intitle:pe intitle:marte
allintitle:zbor pe Marte

Operator inurl: determină Google să afișeze toate paginile care conțin șirul specificat în adresa URL. allinurl: caută toate cuvintele dintr-o adresă URL. De exemplu:

allinurl:acid_stat_alerts.php

Această comandă este utilă în special pentru cei care nu au SNORT - cel puțin pot vedea cum funcționează pe un sistem real.

Metode de Hacking Google

Așadar, am aflat că, folosind o combinație a operatorilor și cuvintelor cheie de mai sus, oricine poate colecta informațiile necesare și poate căuta vulnerabilități. Aceste tehnici sunt adesea denumite Google Hacking.

harta site-ului

Puteți folosi site-ul: declarație pentru a vedea toate linkurile pe care Google le-a găsit pe site. De obicei, paginile care sunt create dinamic de scripturi nu sunt indexate folosind parametri, așa că unele site-uri folosesc filtre ISAPI, astfel încât linkurile să nu fie în formă /article.asp?num=10&dst=5, dar cu bare oblice /article/abc/num/10/dst/5. Acest lucru se face pentru a se asigura că site-ul este în general indexat de motoarele de căutare.

Sa incercam:

site: www.whitehouse.gov whitehouse

Google crede că fiecare pagină de pe un site conține cuvântul whitehouse. Acesta este ceea ce folosim pentru a obține toate paginile.
Există și o versiune simplificată:

site:whitehouse.gov

Și cea mai bună parte este că camarazii de la whitehouse.gov nici măcar nu știau că ne-am uitat la structura site-ului lor și chiar ne-am uitat în paginile stocate în cache pe care Google le-a descărcat singur. Acesta poate fi folosit pentru a studia structura site-urilor și a vizualiza conținutul fără a fi observat deocamdată.

Listarea fișierelor în directoare

Serverele WEB pot afișa liste de directoare ale serverului în loc de pagini HTML obișnuite. Acest lucru se face de obicei pentru a forța utilizatorii să selecteze și să descarce anumite fișiere. Cu toate acestea, în multe cazuri, administratorii nu au intenția de a afișa conținutul unui director. Acest lucru se datorează unei configurări greșite a serverului sau absenței unei pagini master în director. Drept urmare, hackerul are șansa de a găsi ceva interesant în director și de a-l folosi în propriile scopuri. Pentru a găsi toate astfel de pagini, este suficient să observăm că toate conțin cuvintele: index of în titlul lor. Dar, deoarece indexul de cuvinte conține nu numai astfel de pagini, trebuie să rafinăm interogarea și să luăm în considerare cuvintele cheie de pe pagina în sine, deci interogări precum:

intitle:index.of directorul părinte
intitle:index.de dimensiunea numelui

Deoarece majoritatea listelor de directoare sunt intenționate, este posibil să aveți dificultăți să găsiți înregistrări neplasate prima dată. Dar cel puțin veți putea folosi listele pentru a determina versiunea serverului WEB, așa cum este descris mai jos.

Obținerea versiunii serverului WEB.

Cunoașterea versiunii serverului WEB este întotdeauna utilă înainte de a începe orice atac de hacker. Din nou, datorită Google, este posibil să obțineți aceste informații fără a vă conecta la un server. Dacă te uiți cu atenție la lista de directoare, poți vedea că numele serverului WEB și versiunea acestuia sunt afișate acolo.

Apache1.3.29 - Server ProXad la trf296.free.fr Port 80

Un administrator cu experiență poate schimba aceste informații, dar, de regulă, este adevărat. Astfel, pentru a obține aceste informații, este suficient să trimiteți o solicitare:

intitle:index.of server.at

Pentru a obține informații pentru un anumit server, rafinăm cererea:

intitle:index.of server.at site:ibm.com

Sau invers, căutăm servere care rulează pe o anumită versiune a serverului:

intitle:index.of Apache/2.0.40 Server la

Această tehnică poate fi folosită de un hacker pentru a găsi o victimă. Dacă, de exemplu, are un exploit pentru o anumită versiune a serverului WEB, atunci îl poate găsi și încerca exploitul existent.

De asemenea, puteți obține versiunea de server uitându-vă la paginile care sunt instalate implicit atunci când instalați o versiune nouă a serverului WEB. De exemplu, pentru a vedea pagina de testare Apache 1.2.6, trebuie doar să tastați

intitle:Test.Pagina.pentru.Apache a funcționat!

Mai mult, unele sisteme de operare instalează și lansează imediat serverul WEB în timpul instalării. Cu toate acestea, unii utilizatori nici măcar nu sunt conștienți de acest lucru. Desigur, dacă vezi că cineva nu a șters pagina implicită, atunci este logic să presupunem că computerul nu a fost supus niciunei configurații și este probabil vulnerabil la atacuri.

Încercați să căutați pagini IIS 5.0

allintitle:Bine ați venit la Windows 2000 Internet Services

În cazul IIS, puteți determina nu numai versiunea serverului, ci și versiunea Windows și Service Pack.

O altă modalitate de a determina versiunea serverului WEB este să cauți manuale (pagini de ajutor) și exemple care pot fi instalate implicit pe site. Hackerii au găsit destul de multe modalități de a folosi aceste componente pentru a obține acces privilegiat la site. De aceea, trebuie să eliminați aceste componente de pe locul de producție. Ca să nu mai vorbim de faptul că prin prezența acestor componente puteți obține informații despre tipul de server și versiunea acestuia. De exemplu, să găsim manualul apache:

inurl:manual apache directive module

Folosind Google ca scaner CGI.

Scanerul CGI sau scanerul WEB este un utilitar pentru căutarea de scripturi și programe vulnerabile pe serverul victimei. Aceste utilitare trebuie să știe ce să caute, pentru asta au o listă întreagă de fișiere vulnerabile, de exemplu:

/cgi-bin/cgiemail/uargg.txt
/random_banner/index.cgi
/random_banner/index.cgi
/cgi-bin/mailview.cgi
/cgi-bin/maillist.cgi
/cgi-bin/userreg.cgi

/iissamples/ISSamples/SQLQHit.asp
/SiteServer/admin/findvserver.asp
/scripts/cphost.dll
/cgi-bin/finger.cgi

Putem găsi fiecare dintre aceste fișiere folosind Google, folosind cuvintele index of sau inurl pe lângă numele fișierului din bara de căutare: putem găsi site-uri cu scripturi vulnerabile, de exemplu:

allinurl:/random_banner/index.cgi

Cu cunoștințe suplimentare, un hacker ar putea exploata o vulnerabilitate de script și poate folosi vulnerabilitatea pentru a forța scriptul să servească orice fișier stocat pe server. De exemplu, un fișier cu parole.

Cum să te protejezi de a fi piratat prin Google.

1. Nu încărcați date importante pe serverul WEB.

Chiar dacă ați postat datele temporar, puteți uita de ele sau cineva va avea timp să găsească și să preia aceste date înainte de a le șterge. Nu o face. Există multe alte modalități de a transfera date care le protejează de furt.

2. Verificați-vă site-ul.

Utilizați metodele descrise pentru a vă cerceta site-ul. Verificați periodic site-ul dvs. pentru noi metode care apar pe site-ul http://johnny.ihackstuff.com. Rețineți că, dacă doriți să vă automatizați acțiunile, trebuie să obțineți permisiunea specială de la Google. Daca citesti cu atentie http://www.google.com/terms_of_service.html, atunci veți vedea fraza: Nu puteți trimite interogări automate de orice fel către sistemul Google fără permisiunea prealabilă expresă a Google.

3. Este posibil să nu aveți nevoie de Google pentru a vă indexa site-ul sau o parte a acestuia.

Google vă permite să eliminați un link către site-ul dvs. sau o parte a acestuia din baza de date, precum și să eliminați pagini din cache. În plus, puteți interzice căutarea imaginilor pe site-ul dvs., interziceți afișarea unor fragmente scurte de pagini în rezultatele căutării. Toate posibilitățile de ștergere a unui site sunt descrise în pagină. http://www.google.com/remove.html. Pentru a face acest lucru, trebuie să confirmați că sunteți cu adevărat proprietarul acestui site sau să introduceți etichete în pagină sau

4. Folosiți robots.txt

Se știe că motoarele de căutare caută fișierul robots.txt de la rădăcina site-ului și nu indexează acele părți care sunt marcate cu cuvântul Nu permiteți. Puteți utiliza acest lucru pentru a preveni indexarea unei părți a site-ului. De exemplu, pentru a evita indexarea întregului site, creați un fișier robots.txt care să conțină două rânduri:

Agent utilizator: *
interzice: /

Ce se mai întâmplă

Pentru ca viața să nu vi se pară miere, voi spune până la urmă că sunt site-uri care urmăresc acei oameni care, folosind metodele de mai sus, caută găuri în scripturi și servere WEB. Un exemplu de astfel de pagină este

Aplicație.

Un pic dulce. Încercați una dintre următoarele:

1. #mysql dump filetype:sql - caută dumpurile bazei de date mySQL
2. Raportul Rezumat al Vulnerabilității Gazdei - vă va arăta ce vulnerabilități au găsit alți oameni
3. phpMyAdmin rulează pe inurl:main.php - acest lucru va forța închiderea controlului prin panoul phpmyadmin
4. Nu pentru distribuție confidențială
5. Solicitare detalii Control Tree Server Variables
6. Alergare în modul copil
7. Acest raport a fost generat de WebLog
8. intitle:index.of cgiirc.config
9. filetype:conf inurl:firewall -intitle:cvs - poate cineva are nevoie de fișiere de configurare pentru firewall? :)
10. intitle:index.of finances.xls - hmm....
11. intitle:Indexul chat-urilor dbconvert.exe - jurnalele de chat icq
12. intext: Analiza traficului Tobias Oetiker
13. intitle:Statistici de utilizare pentru Generate de Webalizer
14. intitle:statistics of advanced web statistics
15. intitle:index.of ws_ftp.ini - ws ftp config
16. inurl:ipsec.secrets deține secrete partajate - cheie secretă - găsire bună
17. inurl:main.php Bine ați venit la phpMyAdmin
18. inurl:server-info Apache Server Information
19. site:edu admin note
20. ORA-00921: sfârșit neașteptat al comenzii SQL - obțineți căi
21. intitle:index.of trillian.ini
22. intitle:Index of pwd.db
23. intitle:index.of people.lst
24. intitle:index.of master.passwd
25.inurl:passlist.txt
26. intitle:Index of .mysql_history
27. intitle:index of intext:globals.inc
28. intitle:index.of administrators.pwd
29. intitle:Index.of etc umbra
30. intitle:index.of secring.pgp
31. inurl:config.php dbuname dbpass
32. inurl:perform filetype:ini

  • „Hacking cu Google”
  • Centrul de formare „Informzaschita” http://www.itsecurity.ru - un centru specializat de frunte în domeniul formării în domeniul securității informațiilor (Licența Comitetului de Educație din Moscova nr. 015470, acreditare de stat nr. 004251). Singurul centru de instruire autorizat pentru Sisteme de Securitate pe Internet și Clearswift din Rusia și țările CSI. Centru de instruire autorizat Microsoft (specializare Securitate). Programele de formare sunt coordonate cu Comisia Tehnică de Stat a Rusiei, FSB (FAPSI). Certificate de pregătire și documente de stat privind pregătirea avansată.

    SoftKey este un serviciu unic pentru cumpărători, dezvoltatori, dealeri și parteneri afiliați. În plus, acesta este unul dintre cele mai bune magazine online de software din Rusia, Ucraina, Kazahstan, care oferă clienților o gamă largă, multe metode de plată, procesare promptă (adesea instantanee) a comenzii, urmărirea procesului de onorare a comenzii în secțiunea personală, diverse reduceri de la magazin și producătorii ON.