29. september 2008 - 12:40Der er
16 kommentarer og 1 løsning
sleep() timer på website?
Hej
Jeg vil gerne have sat en timer på efter et login. Ligesom mange andre sider, hvor du kommer hen til en side når du er logget ind hvor der står:
"Logger ind, vent venligst eller klik her for at komme direkte til din profil"
Jeg har læst lidt på sleep() funktionen, men den virker ikke som jeg vil have det. Når jeg sætter en sleep() på den side som jeg vil have til at vente et par sek, så venter den bare med at hente den side.
Har leget med header() og andre funktioner til at først at sleep nogle sekunder og så gå hen til en anden side, nogen der har nogle forslag udover meta_refresh?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Effekten af at den bare venter kommer fordi de fleste browsere først begynder at rendere når de har modtaget mindst 512 bytes data. Sæt en HTML kommentar ind øverst i din body, så skulle der ske noget.
Hvorfor skal folk dog i øvrigt vente på at logge ind? Det vil man vel helst have sker så hurtigt som muligt?
schwarz84 > Jeg giver dig ret, hvorfor skal man vente?
Google Mail har en loadbar når du logger ind, men det sker vha. Javascript og ajax kald, da browseren kun indlæser Gmail én gang. Alt derefter hentes vha. asynkrone kald til serveren via javascript.
Jamen, brugeren _skal_ da vente et sekundstid på login! På den måde vanskelliggør man bruteforce-angreb - og det er et overordentlig udbredt 'trick'. Den, der er allermest interesseret i at komme ind så hurtigt som muligt, er hackeren - for han skal teste måske 100.000 passwords ;o)
Læg _altid_ et delay på et sekund eller deromkring ved login ;o)
olebole: Jeg bruger altid det trick at se på rækker af login-forsøg i en tidsperiode. Første forsøg lader man så brugeren venter 0 ms, næste 1 ms næste 2 ms og så 4, 8, 16 osv ms. På den måde generer man ikke almindelige brugere med venteskærme og man undgår brute-force angreb (efter 15-20 loginforsøg, så er den samlede ventetid langt størst med denne teknik). At lade alle vente 1 sekund er træls for almindelige brugere og en noget uelegant løsning...
j4k0b: Loadbaren i gmail er lige så meget fordi man skal vente på at browseren loader 500 KB javascript. Især i dårlige browsere tager dette nok tid til at en loadbar er på sin plads...
Jamen, så kræver det jo, du kan genkende brugeren, som værende samme bruger. Hvormange bruteforce angreb har du været ude for? Tro mig: Det er ikke nok ;o)
Hvorfor skulle GMail dog vente på et JavaScript? Dén professionelle koder, der kunne finde på at løse den slags problemer ved usikker timing, er næppe født endnu. Er der den slags problemer, lægges naturligvis et funktionskald sidst i JavaScriptet, så der ikke er tvivl om, hvornår hele scriptet med sikkerhed er loaded
jokobdo: Gem for eksempel et heltal (kald det n) pr. klient (typisk IP-adresse), tæl det op for hvert forsøg og tæl det (og alle andre) ned med et fast tidsinterval (for eksempel hvert femte minut). Når klienten sender et loginforsøg så lader du ham vente 2^n ms og herefter tæller du tallet op og udfører loginforsøget. Ganske simpelt...
schwarz84 De fleste hackere skifter højst sandsynligt deres IP adresse konstant, hvis de laver et bruteforce-angreb.
Jeg vil holde mig til meta-refresh. Er ved at få hovedpine af ajax/javascript og prøver at holde mig lidt fra det selvom man med jQuery kan sætte x antal sek. ligesom sleep.
Troede bare jeg kunne benytte sleep() men den har åbenbart ikke den effekt jeg havde håbet på.
Tak for de kreative forslag allesammen, men jeg holder mig til meta-refresh.
Smid venligst et svar jer der har bidraget med indlæg.
mac10: Dét jeg prøver på at sige er at idéen med at vente et sekund ikke hjælper mod en hacker der kan sende samtidige 1000 requests i sekundet. Det kan han ovenikøbet gøre fra samme maskine. Man skifter altså ikke bare en IP-adresse, det kræver som udgangspunkt flere maskiner at angribe effektivt fra flere IP'er.
Ingen point til mig, jeg svarede ikke som sådan på dit spørgsmål... :-)
mac10 >> jQuery er efter min mening generelt noget skidt - og dens delay kan du i hvertfald ikke bruge til noget i denne forbindelse. Alle JavaScripts kan med stor lethed omgås.
schwarz84 >> Lad os i det mindste blive enige om, vi er uenige =)
schwarz84 Ja generelt er det jo ikke muligt at stoppe en hacker, nu tænker jeg på ham den 15-årige, eller hvor gammel han nu var, der hackede sig ind hos pentagon da han "legede".
Men det er betryggende at vide at min sikre system ikke bliver sikkert :)
Og du må meget gerne lægge et svar, for idéen for mig med at benytte forumet er ikke at få svar hver gang, men også blive lidt klogere nogle gange :o)
olebole Ja, ved at man enten skal holde sig fra framework eller lave hele hjemmesider i ét framework, og nu har jeg læst list om mootools, jQuery og alle de frameworks, og så lige at det var let tilgængeligt med jQuery.
Jeg holder mig til meta-refresh løsningen og håber på at hackerne går efter bankerne, politiet og alle de andre der har lidt bedre informationer at få fingrene i end mit system :o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.