Biografier Kjennetegn Analyse

Hvordan Google fungerer. Søke etter ord ved hjelp av tilleggsoperatorer

Hva er en gjestebok?

Her snakker vi selvfølgelig om den mest typiske gjesteboken. Først av alt er dette et system som gir brukeren muligheten til å skrive inn tekst, velge en vurdering av et bestemt nettsted, samt angi egne data (fullt navn, e-post, http, etc.). Det er også et system for å presentere data som er lagt inn av ulike brukere, med muligheten til å navigere, sende e-post til forfatterne av meldinger. Variasjoner er også mulig med ulike innstillinger og med kontroll over det normative vokabularet.

Hva trenger vi

Selvfølgelig forutsettes det at leseren er kjent med det grunnleggende om ASP og SQL-programmering (kjennskap til de første delene av denne artikkelen vil være nok for dette). I tillegg trenger vi Microsoft SQL Server 7.0 eller 2000, litt HTML- eller tekstredigering (jeg anbefaler å bruke Macromedia Dreamweaver UltraDev 4.0) og litt tålmodighet.

Opprette og klargjøre en database

For å organisere lagring av data som er lagt inn av brukere, trenger du en tabell der du kan lage felt for lagring av brukerens navn, e-postadresse, bostedsland, nettstedsadresse, IP-adresse, brukervurdering av nettstedet på et fempunkt målestokk osv.:

For å enkelt integrere systemet i eksisterende nettsteder, anbefales det å planlegge en annen tabell designet for å lagre farger og andre innstillinger. Dette vil tillate deg å endre disse innstillingene i fremtiden uten å endre de tilsvarende parameterne i kildekodene til gjestebokapplikasjonsmodulene.

  • Kjør datakildekonfiguratorprogrammet (Datakilder ODBC) - Start->Innstillinger->Kontrollpanel->Administrative verktøy->Datakilder ODBC.
  • Gå til System DSN-fanen og opprett en ny datakilde ved å klikke på Legg til...
  • I listen over drivere som vises, velg databasedriveren - Microsoft SQL Server og klikk på Neste.
  • Angi navnet på databasen på linjen Datakildenavn (i eksemplet beskrevet er Gustbook navnet som du vil referere til den i fremtiden).
  • I Server-linjen angir du serveren du vil koble til og klikker på Neste.
  • Velg Med SQL Server... autentiseringsmodus, angi brukernavn og passord for å koble til SQL-serveren; Definer kommunikasjonsprotokollen med serveren (klientkonfigurasjonsknapp - TCP/IP) og klikk på Neste to ganger, og klikk deretter på Fullfør.
  • Du vil se statistikk om handlingene som er utført, og for å sjekke datakilden kan du bruke knappen Test datakilde.
  • Som et resultat vil du se en linje i listen over datakilder i systemet ditt.

Nå som databasen er klar, kan du gå direkte videre til å lage en gjestebok.

Integrering av systemet til en ferdiglaget nettside

Det er tydelig at gjesteboken i seg selv ikke har noen mening. Døm selv: hvem trenger et nettsted designet utelukkende for å samle lesernes meninger? Tross alt, for å samle meninger om noe, må du først presentere det for deres dom. Derfor er det nødvendig å være spesielt oppmerksom på spørsmål knyttet til å forenkle integreringen av systemet i ferdige nettsteder.

Spesielt for å forenkle å tilpasse systemet for de karakteristiske egenskapene til et bestemt nettsted, anbefales det (som nevnt ovenfor) å lage en spesiell tabell for å lagre alle disse preferansene for å angi visse verdier som er spesifikke for nettstedet ditt. Den åpenbare fordelen med denne tilnærmingen er at for å bygge inn systemet i en ferdiglaget nettside, trenger du ikke å gjøre endringer i kildekoden til modulene, du trenger bare å endre innstillingene i den tilsvarende databasetabellen.

La oss forestille oss et eksempel på implementering av en slik tabell: .

Som du kan se, er det felt her for lagring av informasjon om navn og passord for tilgang til systemoppsettmodus, fargene på hovedbakgrunnen til brukermeldingen, de øvre og nedre rammene (henholdsvis mellomfarge, toppfarge, bot_farge) , fargen og størrelsen på overskriften på skjemaet som brukes til å legge inn brukerdata (henholdsvis Form_Color- og FormTitleSize-feltene), om fargen, størrelsen og skriftstilen til teksten i selve meldingen, informasjonsfelter, samt sidene med gjesteboken (feltene MessageFontColor, MessageFontSize, MessageFontFace, InfoFontColor, InfoFontSize, InfoFontFace, PageFontColor, PageFontSize og PageFontFace henholdsvis), bytter felt for å aktivere modusen for automatisk å sende varsler om mottak av nye meldinger via e-post til personen (for eksempel en leder eller nettstedsadministrator), felt som lagrer e-postadressen til den ansvarlige, teksten i meldingen med takk for meldingen fra brukeren, med en liste over uakseptable ord og en bryter for deres filtreringsmodus (hvis sistnevnte er slått på, vil ordene på listen over uakseptable automatisk erstattes i teksten i meldingen med stjerner, og dermed utøves kontroll over det normative vokabularet til nettstedstekstene).

Utviklingen av et gjestebokintegreringssystem innebærer også organisering av et webgrensesnitt for å sette opp alle parameterne vi har vurdert (feltene i administrasjonstabellen).

Å integrere systemet i en ferdiglaget nettside i sin rene form kan skape noen vanskeligheter både når du oppfatter kildeteksten og i fremtiden, hvis du for eksempel midlertidig må deaktivere gjesteboken på et bestemt nettsted. Derfor vil vi prøve å utvikle systemet på en slik måte at det ikke er vanskelig å integrere det i en ferdig nettside. For å gjøre dette er det nødvendig å opprette en uavhengig systemmodul og inkludere den i teksten til hovednettstedet der det er nødvendig. Så for eksempel kan teksten på nettsiden din se slik ut:

ASP på sølvfat (Del - 15) – Gjestebok

Som du kan se, i det første tilfellet direktivet om å inkludere en side med en gjestebok () er angitt på rett sted, og i det andre tilfellet presenteres siden til det opprinnelige nettstedet ganske enkelt i form av tre sekvensielt inkluderte elementer: begynnelsen, siden med gjesteboken og slutten. Å bruke en eller annen måte å organisere sidestrukturen på nettstedet ditt er et spørsmål om smak og avhenger både av strukturen til kildenettstedet og graden av kompleksiteten.

Hovedside i gjesteboken (fil Guest.asp)

Den presenterte applikasjonen vil bare ha én side, som vil tjene både til å vise brukermeldinger og for å navigere og legge inn nye meldinger. Avhengig av verdiene til nøkkelparametrene, vil en eller annen handling bli utført, og siden vil være i en eller annen tilstand. Først av alt må du utvikle den delen av den som brukermeldinger skal vises på, og hvor lenker til delen som brukes til å legge til nye meldinger vil bli plassert.

La oss først skrive noen funksjoner for å jobbe med strenger:

  1. Funksjon for å erstatte en tom streng med et mellomrom og et enkelt anførselstegn med et dobbelt anførselstegn:<% Function ChkString(string) If string = "" then string = " " ChkString = Replace(string, """, """") End Function %>
  2. Funksjonen for å sjekke ordforrådet til meldingsteksten for normativitet. Hvis du finner samsvar mellom ord med ord fra listen over uakseptable, bør du erstatte dem med stjerner:<% Function ChkBadWords(String2) strBadWords = objRec2("BadWords") bwords = split(strBadWords, "|") For i = 0 to ubound(bwords) String2 = Replace(String2, bwords(i), string(len(bwords(i)),"*"), 1,-1,1) Next ChkBadWords = String2 end function %>
  3. En funksjon for å formatere tekst som er skrevet inn av brukeren. Om nødvendig (hvis det er en tilsvarende avkrysningsboks i databasen), vil teksten bli sjekket (filtrert) for normativitet:<% Function FormatStr(String) on Error resume next String = Server.HTMLEncode(String) String2 = Replace(String, CHR(13), "") String2 = Replace(String, CHR(10) & CHR(10), "

    ") String2 = Replace(String, CHR(10), "
    ") Hvis objRec2("BadOn") = True, så String2 = ChkBadWords(String2) End if FormatStr = String2 End Function %>

  4. Funksjon for å kontrollere utfylling av felt:<% Function ValidateField(sFieldValue, sFieldType) Valid = True Select Case LCase(sFieldType) Case "name" If Len(sFieldValue) = 0 Then Valid = False Case "message" If Len(sFieldValue) = 0 Then Valid = False End Select ValidateField = Valid End Function %>
  5. Prosedyren for å legge til nye meldinger (merk hvordan IP-adressen til datamaskinen som meldingen ble sendt fra beregnes):
<% Sub Update strSql = "insert into Messages (Name, Country, Email, URL,IP,Message,Rating) values ("" strSql = StrSql & ChkString(Request.Form("name")) & "", "" strSql = StrSql & ChkString(Request.Form("Country")) & "", "" strSql = StrSql & ChkString(Request.Form("email")) & "", "" strSql = StrSql & ChkString(Request.Form("URL")) & "", "" strSql = StrSql & Request.ServerVariables("REMOTE_ADDR") & "", "" strSql = StrSql & ChkString(Request.Form("Message")) & "", "" strSql = StrSql & ChkString(Request.Form("Rating")) & "")" objConn.Execute (StrSql) %>

Etter dette trekkes parametrene for farger, størrelser, designfonter ut og brukes fra den tilsvarende tabellen:

"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("FormTitleSize")%>">Takk for at du skrev inn i gjesteboken vår!

"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>">Klikk her for å se bidraget ditt

Send nå en e-post til lederen eller administratoren for å varsle dem om en ny melding i gjesteboken om nødvendig:

<% If Not(Request.Form("email"))="" AND objRec2("AutoEmail")=True then Name = Request.Form("name") Email = Request.Form("email") sFrom = objRec2("YourEmail") sTo=Email sSubject = "Спасибо, Ваша запись в нашей гостевой книге принята!" sMessage = "Дорогой(ая) " & Name & vbcrlf _ & vbcrlf _ & objRec2("ThankMessage") & vbcrlf _ & vbcrlf _ & vbcrlf Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If If objRec2("YouEmail")=True then Name = Request.Form("name") Home_Page = Request.Form("url") Email = Request.Form("email") Message = Request.Form("message") Country = Request.Form("Country") Address = Request.ServerVariables("REMOTE_ADDR") Rating = Request.Form("Rating") If Rating ="0" then Rating="No Rating" End If sFrom = objRec2("YourEmail") sTo= objRec2("YourEmail") sSubject = "Новое сообщение" sMessage = "Привет," & vbcrlf _ & "Новое сообщение поступило в гостевую книгу" & vbcrlf _ & vbcrlf _ & ":" & vbcrlf _ & vbcrlf _ & Message & vbcrlf _ & vbcrlf _ & "Детали сообщения:" & vbcrlf _ & "Ваше имя: " & Name & vbcrlf _ & "Email: " & Email & vbcrlf _ & "URL: " & Home_Page & vbcrlf _ & "Страна: " & Country & vbcrlf _ & "Рейтинг: " & Rating & vbcrlf _ & "Адрес: " & Address Set objNewMail = CreateObject("CDONTS.NewMail") objNewMail.Send sFrom, sTo, sSubject, sMessage Set objNewMail = Nothing End If End Sub %>

Skjema for å legge inn nye verdier

Det er også tilrådelig å involvere i prosedyren visningen av et skjema som tjener til å legge til nye meldinger (merk at skjemaet er lukket for seg selv, det vil si at modulen som inneholder det fungerer som en reaksjon på det):

<% Sub ShowForm(Sign) %>

>
"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("FormTitleSize")%>"> Legg igjen et notat i gjesteboken vår

">* Indikerer felt som må huskes

colspan=2> "color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> Ditt navn: *
" størrelse=30> <% If dictFields(LCase("name")) Then Response.Write "Du må skrive inn et navn
"Else Response.Write"
" Avslutt hvis %>
colspan=2> "color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> E-post:
" størrelse=30>
colspan=2> "color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> URL:
"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>">http:// " størrelse=30>
colspan=2> "color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> Land:
" størrelse=30>
"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> Hvordan vurderer du siden vår?
"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%> ">Dine kommentarer: *
" farge="rød" størrelse="-2"><% If dictFields(LCase("message")) Then Response.Write "Вы не ввели сообщение
"Else Response.Write"
" Avslutt hvis %>
<% End Sub %>

Deretter følger hovedfunksjonen, som tjener til å vise et fast antall brukermeldinger (verdien hentet fra tabellen for administrative innstillinger):

<% Sub Show NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If Set objRec = Server.CreateObject ("ADODB.Recordset") StrSql = "SELECT * FROM Messages ORDER BY ID DESC;" objRec.PageSize = NumPerPage objRec.CacheSize = NumPerPage objRec.Open StrSql,objConn,3,1,&H0001 iPages = objRec.PageCount TotalRows = objRec.RecordCount If iPageCurrent >iPages Then iPageCurrent = iPages If iPageCurrent< 1 Then iPageCurrent = 1 If iPages = 0 Then Response.Write "Не найденно записей!" Else ObjRec.AbsolutePage = iPageCurrent %>

"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> Totalt i boken <%=TotalRows%> poster på <%=iPages%> side(r)

<% iRecordsShown = 0 Do While iRecordsShown < NumPerPage And Not objRec.EOF Rating = ObjRec("Rating") If IsNull(Rating) or Rating="0" then Rating = "nr" Else Rating = ObjRec("Rating") End If If IsNull(ObjRec("URL")) then Link = "Не указан URL" Else Link = "http://" & ObjRec("URL") & "" End If Email = FormatStr(ObjRec("Email")) Name = FormatStr(ObjRec("Name")) %>
"> "color="<%=objRec2("InfoFontColor")%>"størrelse="<%=objRec2("InfoFontSize")%>"><%=ObjRec("DateID") %> "> "color="<%=objRec2("InfoFontColor")%>"størrelse="<%=objRec2("InfoFontSize")%>">Nettstedsvurdering: .gif" height="14" width="65">
"> "color="<%=objRec2("MessageFontColor")%>"størrelse="<%=objRec2("MessageFontSize")%>"><%=FormatStr(ObjRec("Message"))%>
"> "color="<%=objRec2("InfoFontColor")%>"størrelse="<%=objRec2("InfoFontSize")%>"> <% If IsEmpty(Email) or Email=" " then Response.Write Name Else Response.Write ""&Navn slutt hvis %> "> "color="<%=objRec2("InfoFontColor")%>"størrelse="<%=objRec2("InfoFontSize")%>"><%=FormatStr(ObjRec("Country")) %> IP:<%= ObjRec("IP") %> "> "color="<%=objRec2("InfoFontColor")%>"størrelse="<%=objRec2("InfoFontSize")%>"> <%=Link%>

<% iRecordsShown = iRecordsShown + 1 objRec.MoveNext Loop if iPages >1 deretter %>

"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>"> Sider: <% For I = 1 To iPages If I = iPageCurrent Then Response.Write ""&JEG&""Else Response.Write" "&JEG&""Slutt hvis neste svar. Skriv"" Else Response.Write " " End If End If objRec.Close Sett objRec = Ingenting End Sub %>

Vær oppmerksom på hvordan lenken for å vise følgende side med en slik "del" av meldinger genereres og implementeres:

Response.Write" "&JEG&" "

Som du kan se, sendes sidenummeret til det som verdien av sideparameteren, og deretter, hvis denne verdien ikke er lik 1, starter visningen av meldinger ikke fra den første meldingen, men fra den som vises først på siden med det tilsvarende tallet spesifisert i parameteren:

<% NumPerPage=INT(objRec2("NumPerPage")) If Request.QueryString("page") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If %>Følgende er kildeteksten til selve modulen, som kobles til databasen og henter poster (i det beskrevne eksemplet vil dette være den eneste posten) fra Administrasjonsinnstillinger-tabellen:<% Set objConn = Server.CreateObject ("ADODB.Connection") objConn.Open StrConn Set objRec2 = Server.CreateObject ("ADODB.Recordset") ConfigSql = "SELECT * FROM Admin;" objRec2.Open ConfigSql,objConn,0,1,&H0001 %>

Deretter kan du designe tittelen og hovedkodene til HTML-siden:

ASP på sølvfat del 15 - DIY gjestebok

"color="<%=objRec2("PageFontColor")%>"størrelse="<%=objRec2("PageFontSize")%>">

Se gjestebok | Legg igjen et notat i gjesteboken

Og til slutt vil hovedsløyfen for å behandle hoved- og eneste asp-siden i modulen se slik ut:

<% select case Request.QueryString("mode") case "post" Dim Field Dim dictFields Set dictFields = Server.CreateObject("Scripting.Dictionary") For Each Field in Request.Form If ValidateField(Request.Form(Field), Field) = False Then dictFields.Add LCase(Field), True End If Next If Request.Form.Count <>0 Og dictFields.Count = 0 Ring deretter Update Else If Request.Form.Count<>0 Then End If ShowForm("Sign") End If case "show" Call Vis case Else Call Show End Velg %>

Her vurderer vi bare to tilfeller, som tilsvarer to funksjoner i nettapplikasjonen vår: legge til en ny oppføring i gjesteboken (modusparameterverdi = "post") og vise gjestebokmeldinger (modusparameterverdi = "vis").

<% objRec2.Close Set objRec2 = Nothing s objConn.Close Set objConn = Nothing Response.Write "

" %>

Konklusjon

Vi så på en annen funksjonell komponent av nettstedet, og gjorde det umiddelbart bærbart. Resultatet av dette var en kildekode som var ganske vanskelig å forstå. Selv om det store antallet parametere som er hentet fra den administrative tabellen har komplisert forståelsen av modulens kildekode noe, vil bruken av dem en gang for alle spare deg for behovet for å redigere koden når de endres. Systemet vi har utviklet er ganske akseptabelt å bruke, og takket være modulariteten til implementeringen og tilnærmingen til implementeringen på eksisterende nettsteder beskrevet i artikkelen, kan det brukes som gjestebok på et nettsted med nesten hvilken som helst grad av kompleksitet .

Vi bør selvfølgelig vurdere et webgrensesnitt for å redigere, legge til og slette administrative innstillinger (skjemaer), men dette vil ta mye tid, og derfor vil forfatteren prøve å dekke det i en av de følgende delene av denne artikkelen.

ComputerPress 11"2001

Registrering av kontroller utføres av @Register-direktivet, som lar deg bruke brukerkontroller og serverkontroller i HTML-koden til siden ved hjelp av en spesiell syntaks (deklarativ egendefinert serverkontrollsyntaks). Basert på analysen av disse direktivene, kan sideparseren assosiere tagger med gitte typer og, når du oppretter en side, bygge inn kontroller som beholdere av egendefinerte typer - grener av sidens kontrolltre.

Direktiver må gå foran den første bruken av deklarerte etiketter, de plasseres ofte på begynnelsen av siden, og ved registrering av flere kontroller på nettsteder med en modulær struktur, kan antallet slike erklæringer oppta et stort antall linjer. Når du endrer utformingen av kontroller, må du se etter linjer som krever endringer i koden på alle sider og brukerkontroller de er registrert på, noe som er ganske upraktisk.

Denne artikkelen beskriver en metode som forenkler registreringen av kontroller.

For registreringsdirektiver vil vi bruke en vanlig tekstfil der vi samler alle @Register-direktivene. Siden virtuelle stier kan brukes til å deklarere brukerkontroller, og kun navneområder er spesifisert for serverkontroller, kan vi samle alle lenkene vi trenger i denne filen, og koblingene til ascx-filer vil være korrekte for enhver prosjektmappe. Slik ser denne filen ut i et av prosjektene:


<%@ 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" %>

La oss navngi filen register.inc og plassere den i /inc-mappen til webprosjektet vårt.

Denne filen vil inneholde alle lenkene vi trenger vi vil legge til eller endre registreringen av en bruker eller serverkontroll i den.

Nå må den opprettede filen på en eller annen måte inkluderes i sidekoden. Vi vil gjøre dette ved å bruke SSI (serversiden inkluderer) #include-direktivet. Dette direktivet lar deg inkludere statiske og dynamiske filer i sidekoden, behandle dem basert på IIS-kartlegging, dvs. spesifisering av en asp- eller aspx-fil som kilde vil føre til at filen behandles av den aktuelle prosessen og at resultatene av denne behandlingen kopieres til utdatasiden. I ASP ble #include-direktivet veldig mye brukt og gjorde det mulig å implementere nettstedsmodularitet. Med bruken av ASP.NET ble det mer praktisk å gjøre dette på andre måter, for eksempel ved å bruke brukerkontroller. Fremtidige versjoner av ASP.NET vil implementere modularitet ved å bruke mastersider. Generelt mistet #include-direktivet sin betydning og ble beholdt hovedsakelig for bakoverkompatibilitet og for forenklet migrering av ASP-prosjekter til .Net.

Siden vi har en enkel tekstfil, vil ingen behandling bli utført, og før noe dynamisk innhold blir utført, vil hele innholdet i filen bli kopiert inn i sidekoden. De. å legge til vår register.inc-fil, for eksempel, øverst på siden, er nesten det samme som om vi skrev alle @Register-direktivene der.

For ikke å være avhengig av den fysiske plasseringen av filen, bruker vi igjen syntaksen som indikerer den virtuelle banen og legger til følgende linje i aspx-filkoden:

Sørg for at alt fungerer, hvis ikke, korriger de feil banene.

Det gjenstår en operasjon til. Nå, hvis du prøver å hente filen /inc/register.inc fra lenken i nettleseren din, kan du enkelt gjøre det. IIS legger det i dine hender, så vel som i hendene på en angriper, helt fritt, selv om det inneholder banene til den fysiske strukturen til nettstedet ditt.

For å forhindre at dette skjer, bruker vi egenskapene til den synkrone HttpForbiddenHandler-behandleren, som lar oss beskytte filer av en bestemt type fra å bli utstedt etter brukerforespørsler. Denne tilnærmingen er praktisk og brukes ofte, for eksempel, for å beskytte MS Access-databasefiler som brukes i et prosjekt. For at filer med *.inc-utvidelsen skal beskyttes med denne behandleren, må du fortelle IIS at disse filene vil bli behandlet av ASP.NET-prosessen, med andre ord, konfigurer tilordning i IIS for filer av denne typen.

En detaljert beskrivelse av konfigurasjonsprosessen for IIS er beskrevet i artikkelen HOW TO: Use ASP.NET to Protect File Types (http://support.microsoft.com/kb/815152/EN-US/). Vi må lage en tilordning kun for filer av typen *.inc. Etter å ha fullført trinnene beskrevet der, vil alle forespørsler om filer med denne utvidelsen bli behandlet av ASP.NET-prosessen, og du trenger bare å redigere web.config-filen som følger:

Det er det, når brukeren nå prøver å få filen /inc/register.inc via en direkte lenke, vil brukeren motta feil B.

For ikke å registrere aspnet_isapi.dll, for eksempel, leverandøren din ikke ønsker å gjøre dette, kan du dra nytte av muligheten til SSI til å spesifisere filer av enhver type og jukse ved å bruke for en fil med @Register-direktiver en utvidelse av en av typene som allerede er kartlagt i IIS som standard. *.cs- eller *.vb-utvidelsene vil være praktiske for dette. Disse filene inneholder kildekoden og blir vanligvis ikke kopiert til serveren. Hvis du plutselig gjorde en feil og kopierte dem, vil du ikke kunne få dem på forespørsel fra nettleseren - når du prøver å gjøre dette, vil brukeren motta feilmelding B. Dette skjer fordi for filer av denne typen, mapping i IIS er konfigurert som standard, og den tilsvarende utvidelsen er allerede registrert i seksjonen machine.config-filen. I Visual Studio, for å forhindre at kompilatoren gir deg en feilmelding, installer en utvidelse som kompilatoren ikke er interessert i: i C#-prosjekter er det *.vb, i VB-prosjekter er det *.cs.
Konklusjon

Den beskrevne metoden lar deg registrere kontroller på ett sted for hele prosjektet. Å endre denne filen etterpå krever mindre innsats enn om du måtte gjøre det på vanlig måte. Prøv å bruke SSI #include i selve de innsatte filene - dette lar deg organisere et utseende av hierarki og arv, noe som kan være praktisk for store prosjekter

Hver ASP.NET-utvikler må være kjent med sidedirektiver. Hvis du er nybegynner og ønsker å lære om sidedirektivene, kan du lese denne artikkelen.

Så det første spørsmålet handler om sidedirektiver.

Hva er et sidedirektiv?

I utgangspunktet er sidedirektiver kommandoer. Disse kommandoene brukes av kompilatoren når siden kompileres.

Slik bruker du direktivene på en ASP.NET-side

Det er ikke vanskelig å legge til et direktiv på en ASP.NET-side. Det er enkelt å legge til direktiver på en ASP.NET-side. Du kan skrive direktiver i følgende format:

<%@%>

Se direktivformatet, det begynner med "<%@" and ends with "%>". Den beste måten er å sette direktivet øverst på siden din. Men du kan sette et direktiv hvor som helst på en side. En ting til, du kan sette mer enn ett attributt i et enkelt direktiv.

Her er hele listen over direktiver:

  • @Side
  • @Herre
  • @Kontroll
  • @Import
  • @Implementer
  • @Register
  • @Forsamling
  • @MasterType
  • @Output Cache
  • @PreviousPageType
  • @Referanse

La oss diskutere noe om hvert direktiv.

Når du vil spesifisere attributtene for en ASP.NET-side, må du bruke @Page Directive. Som du vet, er en ASP.NET-side en veldig viktig del av ASP.NET, så dette direktivet brukes ofte i ASP.NET.

<%@Page Language="C#" AutoEventWIreup="false" CodeFile="Default.aspx.cs" Inherits="_Default"%>

Nå har du litt informasjon om @Page-direktiver. @Master-direktivet er ganske likt @Page-direktivet. Den eneste forskjellen er at @master-direktivet er for mastersider. Du må merke deg at mens du bruker @Master-direktivet, definerer du malsidens egenskap. Da kan enhver innholdsside arve alle egenskapene som er definert på mastersiden. Men det er noen egenskaper som bare er tilgjengelige på en masterside.

<%@Master Language="C#" AutoEventWIreup="false" CodeFile="MasterPage1.master.cs" Inherits="MasterPage"%>

@Kontroll

@Control bygger ASP.NET-brukerkontroller. Når du bruker direktivet definerer du egenskapene som skal arves av brukerkontrollene, og disse verdiene blir tildelt brukerkontrollene

<%@Control Language="C#" Explicit="True" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

Som du vet må du definere navnerom i .cs-klassen din før du bruker en C#- eller VB-klasse. Så @Import-direktivet importerer navnerom. Dette direktivet støtter bare et enkelt attributt "namespace", og dette attributtet tar en strengverdi som spesifiserer navneområdet som skal importeres. En ting du må merke deg er at @Import-direktivet ikke kan inneholde mer enn ett attributt/verdi-par. Men du kan bruke flere linjer.

<%@Import Namespace="System.Data"%>

@Implementer

@Implements-direktivet får ASP.NET-sidene til å implementere .Net framework-grensesnitt. Dette direktivet støtter bare ett enkelt attributtgrensesnitt.

<%@Implements Interface="System.Web.UI.IValidator"%>

@Register

Når du oppretter en brukerkontroll og drar den brukerkontrollen inn på siden din, vil du se @Register-direktivet. Dette direktivet registrerer din brukerkontroll på siden slik at kontrollen kan nås av siden.

<%@ Register TagPrefix="MayTag Namespace="MyName.MyNameSpace" Assembly="MyAssembly"%>

@Forsamling

@Assembly-direktivet knytter sammenstillinger til siden eller en ASP.NET-brukerkontroll, slik at alle sammenstillingsklassene og grensesnittene er tilgjengelige for klassen. Dette direktivet støtter de to attributtene Name og src. Navn-attributtet definerer sammenstillingsnavnet og src-attributtet definerer kilden til sammenstillingen.

<%@Assembly Name="MyAssembly"%>
<%@Assembly src="MYAssembly.cs">

@MasterType

@MasterType-direktivet kobler et klassenavn til ASP.NET-siden for å få sterkt skrevne referanser eller medlemmer på den angitte hovedsiden. Dette direktivet støtter de to attributtene Typename og virtualpath. Typename setter navnet på den avledede klassen som de sterkt innskrevne eller referansemedlemmene skal hentes fra, og virtualpath angir plasseringen til siden disse hentes fra.

<%@MasterType VirtualPath="/MasterPage1.master"%>

@utdatabuffer

Den kontrollerer utgangsbufferpolitikken til en ASP.NET-side.

<%@ OutputCache Duration ="180" VaryByParam="None"%>
@Forrige sidetype

Dette direktivet spesifiserer siden som alle innlegg på tvers av sider kommer fra.

@Referanse

Dette direktivet erklærer at en annen side eller brukerkontrollrop blir fulgt sammen med den aktive siden eller kontrollen. Dette direktivet støtter enkeltattributtet virtualpath. Den angir plasseringen til siden eller brukerkontrollen som den aktive siden skal refereres fra.

<%@Reference VirtualPayh="~/MyControl.ascx"%>

Siste ord

Jeg håper du får litt kunnskap herfra. Kommenter gjerne hvordan du liker denne artikkelen. Kommentarene dine er veldig verdifulle for meg, fordi bare du vil fortelle meg hvor jeg tar feil og hvilke forbedringer jeg må gjøre for å skrive en bedre artikkel. Kommenter og gi tilbakemelding.

Googles søkemotor (www.google.com) gir mange søkealternativer. Alle disse funksjonene er et uvurderlig søkeverktøy for en bruker som er ny på Internett og samtidig et enda kraftigere våpen for invasjon og ødeleggelse i hendene på mennesker med onde hensikter, inkludert ikke bare hackere, men også ikke-datakriminelle og til og med terrorister.
(9475 visninger på 1 uke)

Denis Barankov
denisNOSPAMixi.ru

Oppmerksomhet:Denne artikkelen er ikke en veiledning til handling. Denne artikkelen ble skrevet for dere, WEB-serveradministratorer, slik at dere vil miste den falske følelsen av at dere er trygge, og dere vil endelig forstå lumskheten i denne metoden for å innhente informasjon og ta opp oppgaven med å beskytte nettstedet.

Introduksjon

For eksempel fant jeg 1670 sider på 0,14 sekunder!

2. La oss legge inn en annen linje, for eksempel:

inurl:"auth_user_file.txt"

litt mindre, men dette er allerede nok for gratis nedlasting og passordgjetting (ved å bruke samme John The Ripper). Nedenfor vil jeg gi en rekke flere eksempler.

Så du må innse at Google-søkemotoren har besøkt de fleste nettstedene og bufret informasjonen på dem. Denne bufrede informasjonen lar deg få informasjon om nettstedet og innholdet på nettstedet uten å koble deg direkte til nettstedet, bare ved å dykke ned i informasjonen som er lagret inne i Google. Dessuten, hvis informasjonen på nettstedet ikke lenger er tilgjengelig, kan informasjonen i hurtigbufferen fortsatt være bevart. Alt du trenger for denne metoden er å kjenne til noen Google-nøkkelord. Denne teknikken kalles Google Hacking.

Informasjon om Google Hacking dukket først opp på Bugtruck-e-postlisten for 3 år siden. I 2001 ble dette temaet tatt opp av en fransk student. Her er en lenke til dette brevet http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html. Den gir de første eksemplene på slike spørsmål:

1) Indeks for /admin
2) Indeks for /passord
3) Indeks av /mail
4) Indeks over / +banker +filtype:xls (for Frankrike...)
5) Indeks for / +passwd
6) Indeks av / password.txt

Dette emnet skapte bølger i den engelsklesende delen av Internett ganske nylig: etter artikkelen av Johnny Long, publisert 7. mai 2004. For en mer fullstendig studie av Google Hacking, anbefaler jeg deg å gå til denne forfatterens nettsted http://johnny.ihackstuff.com. I denne artikkelen vil jeg bare bringe deg oppdatert.

Hvem kan bruke dette:
– Journalister, spioner og alle de som liker å stikke nesen inn i andres virksomhet kan bruke dette til å søke etter belastende bevis.
- Hackere på jakt etter passende mål for hacking.

Hvordan Google fungerer.

For å fortsette samtalen, la meg minne deg på noen av søkeordene som brukes i Google-søk.

Søk med +-tegnet

Google ekskluderer ord den anser som uviktige fra søk. For eksempel spørsmålsord, preposisjoner og artikler på engelsk: for eksempel are, of, where. På russisk ser det ut til at Google anser alle ord som viktige. Hvis et ord ekskluderes fra søket, skriver Google om det. For at Google skal begynne å søke etter sider med disse ordene, må du legge til et +-tegn uten mellomrom foran ordet. For eksempel:

ess +av base

Søk med tegnet –

Hvis Google finner et stort antall sider som den trenger å ekskludere sider med et bestemt emne fra, kan du tvinge Google til å søke kun etter sider som ikke inneholder bestemte ord. For å gjøre dette må du indikere disse ordene ved å plassere et skilt foran hvert - uten mellomrom før ordet. For eksempel:

fiske - vodka

Søk med ~

Det kan være lurt å søke etter ikke bare det angitte ordet, men også dets synonymer. For å gjøre dette, før ordet med ~-symbolet.

Finne en eksakt setning ved å bruke doble anførselstegn

Google søker på hver side etter alle forekomster av ordene du skrev i søkestrengen, og den bryr seg ikke om den relative plasseringen av ordene, så lenge alle de angitte ordene er på siden samtidig (dette er standardhandlingen). For å finne den eksakte setningen må du sette den i anførselstegn. For eksempel:

"bokstativ"

For å ha minst ett av de angitte ordene, må du spesifisere den logiske operasjonen eksplisitt: ELLER. For eksempel:

bok sikkerhet ELLER beskyttelse

I tillegg kan du bruke *-tegnet i søkefeltet for å indikere et hvilket som helst ord og. å representere et hvilket som helst tegn.

Søke etter ord ved hjelp av tilleggsoperatorer

Det er søkeoperatorer som er spesifisert i søkestrengen i formatet:

operator:search_term

Mellomrom ved siden av tykktarmen er ikke nødvendig. Hvis du setter inn et mellomrom etter kolon, vil du se en feilmelding, og før den vil Google bruke dem som en vanlig søkestreng.
Det er grupper av ekstra søkeoperatorer: språk - angi hvilket språk du vil se resultatet på, dato - begrense resultatene for de siste tre, seks eller 12 månedene, forekomster - angi hvor i dokumentet du trenger å søke etter linjen: overalt, i tittelen, i URL-en, domener - søk på det angitte nettstedet eller, omvendt, ekskluder det fra søket sikkert - blokkerer nettsteder som inneholder den angitte typen informasjon og fjerner dem fra søkeresultatsidene.
Noen operatører krever imidlertid ikke en ekstra parameter, for eksempel forespørselen " cache:www.google.com" kan kalles som en fullverdig søkestreng, og noen søkeord krever tvert imot et søkeord, for eksempel " nettsted: www.google.com hjelp". I lys av emnet vårt, la oss se på følgende operatører:

Operatør

Beskrivelse

Krever du en ekstra parameter?

søk bare på nettstedet spesifisert i search_term

søk bare i dokumenter med typen search_term

finn sider som inneholder søkeord i tittelen

finn sider som inneholder alle søkeord i tittelen

finne sider som inneholder ordet søkeord i adressen deres

finne sider som inneholder alle søkeord-ord i adressen deres

Operatør nettsted: begrenser søket bare til det angitte nettstedet, og du kan spesifisere ikke bare domenenavnet, men også IP-adressen. Skriv for eksempel inn:

Operatør filtype: Begrenser søket til en bestemt filtype. For eksempel:

Fra og med publiseringsdatoen for artikkelen kan Google søke i 13 forskjellige filformater:

  • Adobe Portable Document Format (pdf)
  • Adobe PostScript (ps)
  • Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)
  • Lotus WordPro (lwp)
  • MacWrite (mw)
  • Microsoft Excel (xls)
  • Microsoft PowerPoint (ppt)
  • Microsoft Word (doc)
  • Microsoft Works (wks, wps, wdb)
  • Microsoft Write (wri)
  • Rich Text Format (rtf)
  • Shockwave Flash (swf)
  • Tekst (ans, txt)

Operatør link: viser alle sider som peker til den angitte siden.
Det er nok alltid interessant å se hvor mange steder på Internett som vet om deg. La oss prøve:

Operatør cache: Viser versjonen av nettstedet i Googles hurtigbuffer slik det så ut sist gang Google besøkte siden. La oss ta ethvert nettsted som endrer seg ofte og se:

Operatør intitle: søker etter det angitte ordet i sidetittelen. Operatør allintitle: er en utvidelse - den søker etter alle spesifiserte få ord i sidetittelen. Sammenligne:

intitle:flyging til Mars
intitle:flight intitle:på intitle:mars
allintitle:flight to mars

Operatør inurl: tvinger Google til å vise alle sider som inneholder den angitte strengen i nettadressen. allinurl-operator: søker etter alle ord i en URL. For eksempel:

allinurl:acid acid_stat_alerts.php

Denne kommandoen er spesielt nyttig for de som ikke har SNORT - i det minste kan de se hvordan det fungerer på et ekte system.

Hackingmetoder ved hjelp av Google

Så vi fant ut at ved å bruke en kombinasjon av de ovennevnte operatørene og nøkkelordene, kan hvem som helst samle inn nødvendig informasjon og søke etter sårbarheter. Disse teknikkene kalles ofte Google Hacking.

Områdekart

Du kan bruke site:-operatoren til å liste opp alle koblingene som Google har funnet på et nettsted. Vanligvis blir sider som er dynamisk opprettet av skript ikke indeksert med parametere, så noen nettsteder bruker ISAPI-filtre slik at koblinger ikke er i skjemaet /article.asp?num=10&dst=5, og med skråstreker /article/abc/num/10/dst/5. Dette gjøres slik at nettstedet generelt blir indeksert av søkemotorer.

La oss prøve:

nettsted: www.whitehouse.gov whitehouse

Google tror at hver side på et nettsted inneholder ordet whitehouse. Det er dette vi bruker for å få alle sidene.
Det finnes også en forenklet versjon:

nettsted: whitehouse.gov

Og det beste er at kameratene fra whitehouse.gov ikke engang visste at vi så på strukturen til nettstedet deres og til og med så på de bufrede sidene som Google lastet ned for seg selv. Dette kan brukes til å studere strukturen til nettsteder og vise innhold, forbli uoppdaget inntil videre.

Vis en liste over filer i kataloger

WEB-servere kan vise lister over serverkataloger i stedet for vanlige HTML-sider. Dette gjøres vanligvis for å sikre at brukerne velger og laster ned spesifikke filer. Men i mange tilfeller har administratorer ingen intensjon om å vise innholdet i en katalog. Dette skjer på grunn av feil serverkonfigurasjon eller fravær av hovedsiden i katalogen. Som et resultat har hackeren en sjanse til å finne noe interessant i katalogen og bruke det til sine egne formål. For å finne alle slike sider er det nok å merke seg at de alle inneholder ordene: indeks over i tittelen. Men siden ordindeksen for ikke bare inneholder slike sider, må vi avgrense søket og ta hensyn til søkeordene på selve siden, så spørringer som:

intitle:indeks.av overordnet katalog
intitle:indeks.av navnestørrelse

Siden de fleste katalogoppføringer er tilsiktet, kan det være vanskelig å finne feilplasserte oppføringer første gang. Men du kan i det minste allerede bruke oppføringer for å bestemme WEB-serverversjonen, som beskrevet nedenfor.

Innhenting av WEB-serverversjonen.

Å kjenne til WEB-serverversjonen er alltid nyttig før du starter et hackerangrep. Igjen, takket være Google, kan du få denne informasjonen uten å koble til en server. Hvis du ser nøye på katalogoppføringen, kan du se at navnet på WEB-serveren og dens versjon vises der.

Apache1.3.29 - ProXad Server på trf296.free.fr Port 80

En erfaren administrator kan endre denne informasjonen, men som regel er det sant. For å få denne informasjonen er det derfor nok å sende en forespørsel:

intitle:indeks.av server.at

For å få informasjon om en bestemt server, avklarer vi forespørselen:

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

Eller omvendt, vi ser etter servere som kjører en bestemt versjon av serveren:

intitle:index.of Apache/2.0.40 Server på

Denne teknikken kan brukes av en hacker for å finne et offer. Hvis han for eksempel har en utnyttelse for en viss versjon av WEB-serveren, kan han finne den og prøve den eksisterende utnyttelsen.

Du kan også få serverversjonen ved å se sidene som er installert som standard når du installerer den nyeste versjonen av WEB-serveren. For eksempel, for å se Apache 1.2.6-testsiden, bare skriv

intitle:Test.side.for.Apache det.fungerte!

Dessuten, når de installerer noen operativsystemer, installerer og starter de WEB-serveren umiddelbart. Noen brukere er imidlertid ikke engang klar over dette. Naturligvis, hvis du ser at noen ikke har fjernet standardsiden, er det logisk å anta at datamaskinen ikke har gjennomgått noen tilpasning i det hele tatt og sannsynligvis er sårbar for angrep.

Prøv å søke etter IIS 5.0-sider

allintitle:Velkommen til Windows 2000 Internett-tjenester

Når det gjelder IIS, kan du bestemme ikke bare serverversjonen, men også Windows-versjonen og Service Pack.

En annen måte å finne WEB-serverversjonen på er å søke etter manualer (hjelpesider) og eksempler som kan være installert på nettstedet som standard. Hackere har funnet ganske mange måter å bruke disse komponentene på for å få privilegert tilgang til et nettsted. Det er derfor du må fjerne disse komponentene på produksjonsstedet. For ikke å nevne det faktum at tilstedeværelsen av disse komponentene kan brukes til å få informasjon om typen server og dens versjon. La oss for eksempel finne apache-manualen:

inurl: manuelle apache-direktivmoduler

Bruker Google som en CGI-skanner.

CGI-skanner eller WEB-skanner er et verktøy for å søke etter sårbare skript og programmer på offerets server. Disse verktøyene må vite hva de skal se etter, for dette har de en hel liste over sårbare filer, for eksempel:

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

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

Vi kan finne hver av disse filene ved hjelp av Google, i tillegg ved å bruke ordene index of eller inurl med filnavnet i søkefeltet: vi kan finne nettsteder med sårbare skript, for eksempel:

allinurl:/random_banner/index.cgi

Ved å bruke tilleggskunnskap kan en hacker utnytte et skripts sårbarhet og bruke denne sårbarheten til å tvinge skriptet til å sende ut alle filer som er lagret på serveren. For eksempel en passordfil.

Slik beskytter du deg mot Google-hacking.

1. Ikke legg ut viktige data på WEB-serveren.

Selv om du har lagt ut dataene midlertidig, kan det hende du glemmer dem eller noen vil ha tid til å finne og ta disse dataene før du sletter dem. Ikke gjør det. Det er mange andre måter å overføre data på som beskytter dem mot tyveri.

2. Sjekk nettstedet ditt.

Bruk metodene beskrevet for å undersøke nettstedet ditt. Sjekk nettstedet ditt med jevne mellomrom for nye metoder som vises på nettstedet http://johnny.ihackstuff.com. Husk at hvis du vil automatisere handlingene dine, må du få spesiell tillatelse fra Google. Hvis du leser nøye http://www.google.com/terms_of_service.html, så vil du se setningen: Du kan ikke sende automatiske forespørsler av noe slag til Googles system uten uttrykkelig tillatelse på forhånd fra Google.

3. Du trenger kanskje ikke Google for å indeksere nettstedet ditt eller deler av det.

Google lar deg fjerne en kobling til nettstedet ditt eller deler av det fra databasen, samt fjerne sider fra hurtigbufferen. I tillegg kan du forby søk etter bilder på nettstedet ditt, forby at korte fragmenter av sider vises i søkeresultater. Alle muligheter for å slette et nettsted er beskrevet på siden http://www.google.com/remove.html. For å gjøre dette må du bekrefte at du virkelig er eieren av dette nettstedet eller sette inn tagger på siden eller

4. Bruk robots.txt

Det er kjent at søkemotorer ser på robots.txt-filen som ligger ved roten av nettstedet og ikke indekserer de delene som er merket med ordet Ikke tillat. Du kan bruke dette til å forhindre at deler av nettstedet blir indeksert. For å forhindre at hele nettstedet blir indeksert, oppretter du for eksempel en robots.txt-fil som inneholder to linjer:

Brukeragent: *
Disallow: /

Hva annet skjer

For at livet ikke skal virke som honning for deg, vil jeg til slutt si at det finnes nettsteder som overvåker de menneskene som ved hjelp av metodene som er skissert ovenfor, ser etter hull i skript og WEB-servere. Et eksempel på en slik side er

Søknad.

Litt søtt. Prøv noen av følgende selv:

1. #mysql dump filtype:sql - søk etter mySQL database dumps
2. Oppsummeringsrapport om vertssårbarhet – viser deg hvilke sårbarheter andre har funnet
3. phpMyAdmin kjører på inurl:main.php - dette vil tvinge kontrollen til å lukkes gjennom phpmyadmin-panelet
4. ikke for distribusjon konfidensielt
5. Request Details Control Tree Server Variables
6. Kjører i barnemodus
7. Denne rapporten ble generert av WebLog
8. intitle:index.of cgiirc.config
9. filtype:conf inurl:brannmur -intitle:cvs – kanskje noen trenger brannmurkonfigurasjonsfiler? :)
10. intitle:indeks.over økonomi.xls – hmm....
11. intitle:Indeks for dbconvert.exe-chatter – icq chat-logger
12.intext:Tobias Oetiker trafikkanalyse
13. intitle:Bruksstatistikk for generert av Webalizer
14. intitle:statistikk over avansert nettstatistikk
15. intitle:index.of ws_ftp.ini – ws ftp config
16. inurl:ipsec.secrets har delte hemmeligheter - hemmelig nøkkel - godt funn
17. inurl:main.php Velkommen til phpMyAdmin
18. inurl:server-info Apache-serverinformasjon
19. site:edu admin karakterer
20. ORA-00921: uventet slutt på SQL-kommando – får baner
21. intitle:index.of trillian.ini
22. intitle:Indeks av pwd.db
23.intitle:index.of people.lst
24. intitle:index.of master.passwd
25.inurl:passlist.txt
26. intitle:Indeks for .mysql_history
27. intitle:indeks av intext:globals.inc
28. intitle:index.of administrators.pwd
29. intitle:Index.of etc shadow
30.intitle:index.ofsecring.pgp
31. inurl:config.php dbuname dbpass
32. inurl:perform filtype:ini

  • "Hacking med Google"
  • Treningssenter "Informzashita" http://www.itsecurity.ru - et ledende spesialisert senter innen informasjonssikkerhetstrening (lisens fra Moskva-komiteen for utdanning nr. 015470, statlig akkreditering nr. 004251). Det eneste autoriserte opplæringssenteret for Internet Security Systems og Clearswift i Russland og CIS-landene. Microsoft-autorisert opplæringssenter (sikkerhetsspesialisering). Treningsprogrammene er koordinert med Statens tekniske kommisjon i Russland, FSB (FAPSI). Sertifikater for opplæring og statlige dokumenter om avansert opplæring.

    SoftKey er en unik tjeneste for kjøpere, utviklere, forhandlere og tilknyttede partnere. I tillegg er dette en av de beste nettbaserte programvarebutikkene i Russland, Ukraina, Kasakhstan, som tilbyr kunder et bredt spekter, mange betalingsmetoder, rask (ofte øyeblikkelig) ordrebehandling, sporing av bestillingsprosessen i den personlige delen, ulike rabatter fra butikken og produsenter BY.