http___mbmjertan.co_feed_1.xml
1.1 2.1 3.1 4.1 5.1 6.1 6.2 7.1 7.2 8.1
Who am I? I’m a high school student at Gimnazija Požega who loves computer science, development, design and open source. I don’t have much to say about myself, but you should take a look at my GitHub and LinkedIn profiles. I mostly code in PHP, with a dash of Python or C/C++ occasionally. As a strong believer in software-related freedom, I’ve worked on quite a few open source projects, including Pulsir, Nightsparrow, and many more… I gave a lighting talk on DORS/CLUC when I was in the 8th grade. Don’t go watch it. I can build things for you. (Things include, but are not limited to: simple web apps, not so simple web apps, complex web apps, mobile apps, web sites, basic designs and almost any other thing you can think of) Send me an email: mbm@pulsir.eu
1.1 1.2 3.1 5.1 7.1 7.2 9.1 10.1 13.1 15.1 16.1 18.1 18.2 19.1 19.2 19.3 19.4 19.5 19.6 19.7 20.1 21.1 21.2 21.3 23.1 23.2 24.1 25.1 25.2 27.1 28.1 28.2 28.3 28.4 28.5 28.6 28.7 28.8 28.9 28.10 28.11 28.12 28.13 28.14 28.15 28.16 28.17 28.18 28.19 28.20 28.21 28.22 29.1 30.1 31.1 32.1 33.1 35.1 37.1 38.1 39.1 39.2 40.1 41.1 41.2 42.1 43.1 44.1 46.1 46.2 46.3 47.1 48.1 49.1 50.1 51.1 52.1 53.1 54.1 55.1 57.1 59.1 60.1 61.1 62.1 63.1 63.2 64.1 65.1 66.1 68.1 68.2 68.3 69.1 70.1 71.1 72.1 73.1 74.1 75.1 76.1 77.1 78.1 80.1 80.2 82.1 83.1 84.1 85.1 87.1 88.1 88.2 89.1 90.1 90.2 91.1 91.2 93.1 93.2 94.1 94.2 95.1 97.1 98.1 99.1 99.2 99.3 101.1 101.2 103.1 103.2 104.1 105.1 107.1 108.1 110.1 110.2 112.1 114.1 115.1 115.2 115.3 117.1 117.2 118.1 120.1 120.2 122.1 123.1 124.1 124.2 126.1 128.1 129.1 129.2 129.3 129.4 130.1 130.2 131.1 132.1 133.1 134.1 135.1 136.1 137.1 138.1 138.2 138.3 138.4 138.5 140.1 141.1 142.1 142.2 142.3 142.4 143.1 143.2 145.1 147.1 151.1 157.1 157.2 157.3 158.1 158.2 159.1 159.2 160.1 161.1 162.1 162.2 163.1 163.2 164.1 165.1 166.1 167.1 168.1 169.1 170.1 171.1 171.2 172.1 172.2 173.1
tag:mbmjertan.co,2014:/feedMario Borna Mjertan2015-10-15T11:31:03-07:00Mario Borna Mjertanhttp://mbmjertan.combm@pulsir.euSvbtle.comtag:mbmjertan.co,2014:Post/europski-tjedan-programiranja2015-10-15T11:31:03-07:002015-10-15T11:31:03-07:00Europski tjedan programiranja Nastavljajući tradiciju od prošle godine, održao sam radionicu o web razvoju na  svojoj školi . Prošle godine sam držao “Uvod u HTML”, dok je ove godine bio na redu “Uvod u PHP”. Sudionici su radili u  Koding online IDE-u , a naučili su osnovnim idejama PHP-a, te osnovama varijabli, operatora, ponekih matematičkih funkcija i kako se koristiti s if/elseif/else i echo jezičnim konstruktima te funkcijom die(). Bilo je i nekoliko zlobnih šala na račun PHP-a :) Dijete u Kataloniji je umrlo od difterije. Nakon borbe za život uz pomoć aparata na odjelu intenzivne njege u trajanju od 28 dana, šestogodišnje dijete umrlo je od bolesti od koje nije ni trebalo uopće oboljeti. S obzirom na moje stavove i  aktivizam  o cijepljenju, teško mi je ne prokomentirati ovu vijest. Mnogi javno osuđuju roditelje djeteta, koji tvrde da su bili “prevareni” od strane kampanja protiv cijepljenja i da se osjećaju ekstremno krivima, i to s razlogom. The boy’s parents felt “terribly guilty” and that they had been “tricked” by anti-vaccine groups yeah, you should feel guilty because you just fucking killed a 6 year old kid because you are fucking retarded korisnik JanEric1 u diskusiji na redditu Dijete je umrlo jer nije bilo cijepljeno, jer upravo cjepivo je najbolji način borbe protiv te bolesti. Antitoksini i antibiotici nisu pomogli, a liječnici su svijet prekopali da ih nađu (antitoksin je bio dostavljen iz Rusije prema medijima). Osmero djece u blizini također je nosilo tu bakteriju, ali gle čuda, oni se nisu ni razbolili. Zašto? Jer su se cijepili, pa neće umrti. A jesu li autistična? Oh ,  gle ,  nisu ni to . Nikad nije pronađena korelacija između cjepiva i autizma, a studije koje ukazuju na korelacije su se ispostavile lažnima. Na kraju krajeva, i da cjepiva uzrokuju autizam, biste li radije imali autistično ili mrtvo dijete? Cjepiva su besplatna i većinom bezopasna, cijepite svoju djecu jer je to jedini sigurni način da spriječite da one obole od nekih bolesti, a tako i njihovu preranu smrt. Što je bitnije, život vaše djece ili vaš ego? Nemojte dopustiti da vaše dijete umre od bolesti koju  nitko nije imao u Europi u posljednjih 12 godina , ne budite retardirani i cijepite svoju djecu. Možda spasi njihov život, a možda i  živote drugih koji se ne smiju cijepiti . Osobno, nadam se da će ovo utjecati na zakonodavce da uvedu obvezna cijepljena djece te da će medijsko pokrivanje ovog slučaja ukazati članovima pokreta protiv cijepljenja da nisu u pravu te roditeljima da trebaju zasukati rukav svojoj djeci. Svako zlo za neko dobro , nadajmo se. tag:mbmjertan.co,2014:Post/hrvatski-telekom2015-05-26T12:48:44-07:002015-05-26T12:48:44-07:00Opravdano je tražiti root pristup računalima, ignorirati probleme tri mjeseca i prekidati korisnicima, kaže Hrvatski telekom Unutar protekla tri mjeseca, kontinuirano smo imali probleme s pristupom Internetu koji je bio gotovo nemoguć putem mreže Hrvatskog telekoma, vodeće telekomunikacijske kompanije u državi i nažalost, jedine koja na našem području posjeduje vlastitu infrastrukturu. Nakon mnoštva poziva i tek nekoliko ticketa koje su agenti htjeli otvoriti, većinom ni ne shvaćajući u čemu je problem (govoreći da je sve u redu s brzinom, dok mi prijavljujemo problem s packet lossom), problem je otklonjen 17. svibnja. Nakon što je terenski tehničar Hrvatskog telekoma tražio root pristup našim računalima, uložili smo pisani prigovor 14. svibnja na njihovo postupanje prilikom rješavanja ovog problema, koji se nalazi (s bitnim osobnim podatcima uklonjenim i važnim sadržajem podebljanim) u nastavku. Poštovani, Ovim putem htjeli bismo uložiti  prigovor na postupanje Hrvatskog Telekoma pri rješavanju prijavljenog problema s prevelikim prosječnim pingom (prosjek oko 100 ms, max oko 600 ms) i packet lossom (do 98%) . Naime, ovaj problem postoji već otprilike mjesec do dva dana te su bili redovno prijavljivani kao postojeći. Iako nije konstantno toliko prisutan, problem nerijetko zna izazivati neupotrebljivost usluge pristupa Internetu, u mjeri da se obična HTML stranica s dvije male slike ne može učitati u razumnom roku te da je DNS lookup čak gotovo i nemoguć, a tek najveći mazohisti mogu pomisliti na slušanje radija putem Interneta (TuneIn) ili gledanje video zapisa (YouTube i sl.) Kada smo prijavljivali te probleme, u početku su vršena samo osnovna testiranja putem telefona i govorilo nam se kako trebamo restartati router i da će problemi biti otklonjeni nakon toga. Nakon što to nije polučilo uspjeh, napravljen je reset linije te nam je rečeno da ponovno nazovemo ako je problem još uvijek prisutan. Ni taj pokušaj nije rezultirao uspješnim rješavanjem problema, stoga smo ponovno kontaktirali vašu korisničku podršku (kao i dotad, na broj telefona 0800 9000) koji su promijenili WiFi frekvencije i rekli da bi to trebalo pomoći i  da se sami probamo poigrati s postavkama  (parafrazirano). Tada ni to nije riješilo probleme te su se oni pogoršavali, pa smo tako ponovno kontaktirali HT te su vaši predstavnici telefonske tehničke podrške (pritom ne upozorivši nas što namjeravaju konkretno učiniti, već rekli da će probati resetirati router, ne određujući da je to vraćanje na zadnji poznati backup) napravili rollback firmwarea i postavki routera na zadnji poznati backup na HT-ovim serverima, koji je ujedno bio dovoljno star da je taj rollback resetirao većinu naših postavki na ranije (što je rezultiralo odspajanjem svih uređaja u kući s mreže jer su se SSID i postavke sigurnosti mreže promijenile te zahtijevalo ponovno postavljanje njihovih postavki, što je prilično naporno raditi na 10 uređaja). Nakon što ni taj pokušaj nije polučio uspjeh, kontaktirali smo HT ponovno te je  agent napokon prijavio problem vašim tehničarima te ostavio moj broj mobitela kao kontakt  i rečeno je da ću ja biti kontaktiran za upite i obavijesti (što se nije dogodilo, već su  kontaktirali moju 71-godišnju baku kao vlasnicu linije unatoč dogovoru s korisničkom podrškom , koja [očekivano] nije upoznata sa samim tehnikalijama problema, budući da ne posjeduje znanje iz računarstva koje je potrebno za razumijevanje njega, no kako i sama koristi Internet, bila je upoznata s postojanjem problema i svakim pozivom korisničkoj podršci). Tada je vaš on-site tehničar došao nama u kuću (dok ja nisam bio prisutan, kao ni ostatak ukućana osim bake, s obzirom da je umirovljenica) te vršio mjerenja i testiranja… brzine. Naime, mi nikad nismo prijavili problem u brzini, već u stabilnosti veze, packet lossu i pingu, što su različite mjerljive veličine od brzine, no unatoč tome su nam vaši agenti i telefonski govorili da je s našom brzinom sve u redu te da možemo preći na paket veće brzine ako to želimo (no to nije bilo potrebno jer je problem bio u nečemu drugome). Vaš tehničar je izjavio kako je… sve u redu s našom brzinom i kako čak “imamo veću brzinu nego što bi trebali, plaćamo manje” (što je izjava koja je zapravo i netočna, budući da smo dugo vremena zapravo plaćali veću brzinu nego što smo imali te sada plaćamo onu koja nam se pruža, a taj iznos nam je bio refundiran [otprilike 270 kuna po sjećanju, samo iz naknade za brzinu]). Tada je optužio da je  problem u našoj računalnoj opremi  (što zasigurno nije, jer bi certificirana, pouzdana i provjerena, nova računalna oprema [pa tako računala, laptopi i WiFi moduli, koji su ujedno i bolji od onih u vašem routeru, što je zabrinjavajuće] trebali raditi ispravno na udaljenosti 1 m od routera, pogotovo kad su spojeni Ethernet kabelom), te  zatražio root pristup našim računalima kako bi to provjerio  (jer nije imao “sve postavljeno na svome laptopu”, no kada smo odbili, njegov laptop je bio prihvatljivo rješenje), što je po svim sigurnosnim protokolima u računarstvu kao industriji, pa tako i u ISP industriji kao podgrani računarstva, posve neprihvatljivo, neprofesionalno i nesigurno, stoga mu je takav pristup odbijen, te je otišao govoreći da ne vidi problem. Dakle, mi nemamo ni potpuni administratorski, a kamoli root pristup vlastitom routeru, a Hrvatski Telekom bi trebao imati root pristup našim računalima? Problemi još uvijek prema našim mjerenjima postoje, ping nerijetko doseže 160 ili više ms, iako je packet loss malo stabiliziran, no s obzirom da nismo imali dovoljno vremena za detaljnije testiranje veze, ne možemo govoriti zasigurno. No sada je jedno sigurno, imamo poteškoća i s brzinom, tolikih da speedtest ne može raditi kako treba, a dok je u stanju mjeriti, izmjeri oko 0.96 megabita po sekundi, nakon čega Mac OS X-ov  Activity Monitor prijavljuje ogromnu brzinu od 0.000352 megabita po sekundi. Samo 10 4  puta manje od ugovorno obećane brzine , i to poslije posjeta vašeg tehničara. Sramotno, u najmanju ruku. Nakon svega ovoga, postavlja se pitanje koliko su vaši zaposlenici educirani? Znaju li oni razliku između packet lossa, pinga i brzine, jesu li upoznati s time što ti pojmovi znače? Jesu li svjesni sigurnosnih protokola i morala vezanog uz računalnu sigurnost, znaju li što rade? Ukoliko niste educirali vaše zaposlenike oko ovih, čak osnovnih stvari  vezanih uz računalne mreže koje čak svaki iole bolji gimnazijalac zna,  to je samo još jedan dokaz vaše apatije prema korisnicima i simpatije prema profitu  kojeg ostvarujete tim putem, budući da ne morate ulagati u troškove obrazovanja svojih zaposlenika kako bi zapravo bili sposobni za svoj posao. Uvijek smo bili redovni u podmirivanju svojih obveza prema Hrvatskom Telekomu , koliko se sjećam nikad nam opomena nije stigla na vrata, a kamoli da smo bili isključeni,  pa zašto Hrvatski Telekom ne može biti (kao što bi ugovorno trebao) redovan u ispunjavanju svojih obaveza prema nama? Ovakav bezobrazluk nismo očekivali niti zaslužili i smatram žalosnim i sramotnim da mi je 3G veza kod Tele2 putem mobitela koju plaćam 35 kuna mjesečno stabilnija od broadbanda kod Hrvatskog Telekoma putem fiksne infrastrukture na koju bacamo 268 kuna mjesečno. Ako ovaj problem ne bude riješen u razumnom i prihvatljivom roku, bit ćemo primorani prijaviti to Povjerenstvu za reklamacije Hrvatskog Telekoma te Hrvatskoj regulatornoj agenciji za mrežne djelatnosti, a sva komunikacija između HT-a i nas, uključujući i ovaj prigovor, biti će javno objavljen na Internetu (ironično, zar ne?) i potencijalno u drugim medijskim oblicima. http://i.imgur.com/Bk2zBq8.png Lijep pozdrav, Mario Borna Mjertan Po ovlaštenju [Ime Prezime], vlasnice linije za broj [Telefonski broj] \26. svibnja stigao je prvi odgovor Hrvatskog telekoma: Poštovani gospodine Mjertan, zaprimili smo Vaš prigovor u vezi tehničkih poteškoća prilikom korištenja T Com usluga za telefonski priključak [Telefonski broj] koji glasi na korisnicu [Ime Prezime] te smo izvršili provjeru baze podataka nepokretne elektroničke komunikacijske mreže Hrvatskog Telekoma d.d. Budući da su nam potrebne dodatne informacije, isto smo zatražili od nadležne službe u HT-u. Nakon zaprimljene povratne informacije, proslijedit ćemo Vam dodatno očitovanje u vezi rezultata tražene provjere. Uz zahvalu na razumijevanju, srdačno Vas pozdravljamo. U slučaju potrebe za dodatnim informacijama posjetite našu stranicu  https://www.hrvatskitelekom.hr/podrska/pitanja-i-odgovori , dok su Vam informacije o uslugama pomoću Samouslužnih servisa dostupne na Internet stranici  https://www.hrvatskitelekom.hr/podrska/pitanja-i-odgovori/samousluzni-servisi . Također,sve Vaše HT usluge možete administrirati na jednom mjestu  http://moj.hrvatskitelekom.hr . • http://facebook.com/HrvatskiTelekom • http://twitter.com/hrvatskitelekom • http://youtube.com/hrvatskitelekom Aktivirajte E-račun! Izgledom identičan računu na papiru, a stiže uvijek na vrijeme e-mailom i na Moj Telekom portalu. Zaslužan za očuvanje šuma i smanjenje papirologije. Saznajte više na:  https://www.hrvatskitelekom.hr/podrska/racuni/elektronicki-racun . S poštovanjem Voditelj u Odjelu za pozadinsku podršku Damir Juhas Hrvatski Telekom d.d. Odjel za pozadinsku podršku Adresa: p.p. 21, 10 020 Zagreb E-mail adresa:  prigovori@t.ht.hr Facebook:  http://www.facebook.com/HrvatskiTelekom Nakon toga, stigao je drugi odgovor Hrvatskog telekoma, \27. svibnja. Poštovani gospodine Mjertan, nakon provjere raspoložive dokumentacije i rezultata ispitivanja, kao i nalaza stručnih službi, utvrđeno je da za korištenje T Com usluga od strane HT-a za telefonski priključak [Telefonski broj] nema nedostataka. Napominjemo da te izvještaj tehničke provjere dostavljamo u privitku ovog odgovora. Slijedom navedenog  Vaš prigovor nismo u mogućnosti prihvatiti kao osnovan  te Vas uz zahvalu na razumijevanju,srdačno pozdravljamo. U slučaju potrebe za dodatnim informacijama posjetite našu stranicu  https://www.hrvatskitelekom.hr/podrska/pitanja-i-odgovori , dok su Vam informacije o uslugama pomoću Samouslužnih servisa dostupne na Internet stranici  https://www.hrvatskitelekom.hr/podrska/pitanja-i-odgovori/samousluzni-servisi . Također,sve Vaše HT usluge možete administrirati na jednom mjestu  http://moj.hrvatskitelekom.hr . • http://facebook.com/HrvatskiTelekom • http://twitter.com/hrvatskitelekom • http://youtube.com/hrvatskitelekom Aktivirajte E-račun! Izgledom identičan računu na papiru, a stiže uvijek na vrijeme e-mailom i na Moj Telekom portalu. Zaslužan za očuvanje šuma i smanjenje papirologije. Saznajte više na:  https://www.hrvatskitelekom.hr/podrska/racuni/elektronicki-racun . S poštovanjem Voditelj u Odjelu za pozadinsku podršku Damir Juhas Hrvatski Telekom d.d. Odjel za pozadinsku podršku Adresa: p.p. 21, 10 020 Zagreb E-mail adresa:  prigovori@t.ht.hr Facebook:  http://www.facebook.com/HrvatskiTelekom Privitak: izvještaj tehničke provjere Dakle, naš prigovor na  postupanje  i ponašanje zaposlenika Hrvatskog telekoma nije osnovan prema njima, a kao razlog navode da je problem riješen. Smatramo da bit nije u samome problemu, već u načinu na koji je Hrvatski telekom postupao prilikom njegova  rješavanja , što smo i napisali u odgovoru: Poštovani gospodine Juhas, smatram da je prigovor na postupanje pri rješavanju problema sasvim osnovan, unatoč tome što je problem u međuvremenu riješen te problemi sada ne postoje, no vaši predstavnici su prilikom toga kontinuirano bili loši u mnogo pogleda. Nadam se da ćete ponovno razmisliti o odluci, te ga iz tog razloga (kao prigovor na postupanje, a ne problem sam) prihvatiti kao osnovanog i posve opravdanog. Lijep pozdrav, – Mario Borna Mjertan Duboko sam razočaran ovakvim postupanjem Hrvatskog telekoma, time što su njihovi agenti radili (i ne radili) i ovakvim odgovorom, da se mi nemamo na što žaliti, te smatram da je odnos Hrvatskog telekoma prema korisnicima, iako bolji nego prije, još uvijek užasan Nažalost, mi još uvijek imamo probleme s pristupom Internetu (ovaj put uploadom, koji je apsolutno nemoguć igdje, iako je speedtest u redu [no Cloudup, Dropbox, iCloud Drive i Google Drive se ne bi složili]), no nakon ovakvih događaja, pitam se ima li više smisla kontaktirati Hrvatski telekom ili odnijeti datoteku fizički do Dropboxovog ili Appleovog ili Googleovog datacentra. Taj problem sam večeras pokušao prijaviti, a agent Hrvatskog telekoma je odbio poslušati da problem još uvijek postoji nakon reseta rutera i prekinuo poziv , unatoč tome što sam bio posve uljudan, te sam ovakvim potezom izrazito i posve razočaran. Priložio bih sliku izvještaja, no nažalost, ne mogu ju uploadati. tag:mbmjertan.co,2014:Post/web-app-security-part-12014-08-15T06:01:54-07:002014-08-15T06:01:54-07:00Sigurnost web aplikacija: XSS, CSRF i kako se zaštititi  This post is in Croatian, as it’s based on a forum post I wrote some time ago on  Linux za sve . Here is the original post that I wrote. If you’re interested in computer security/web app security and don’t know Croatian but speak English, there are great sources (probably way better than this). There are some great videos about computer security by  Tom Scott  and great videos on  Computerphile . XSS i CSRF napadi su opasni i manje-više jedina efektivna zaštita od njih je blokirati ih na razini web stranice. Kao krajnji korisnik, moguće je blokirati izvršavanje skripti u korisnički-generiranim poljima i sličnom, ali, budimo iskreni, koliko će ljudi to ići raditi? XSS i CSRF su jedni od najčešćih napada na web stranice i mogu biti izrazito opasni. Ako ste vlasnik web servisa ili web aplikacije i ne znate što je ovo,  svakako  pročitajte ovo. Ovaj post će govoriti o HTML-u, JavaScriptu i SQL-u, tako da bi bilo korisno, iako ne nužno, da ih znate da bi razumjeli o čemu pričam. XSS XSS, odnosno cross-side scripting je mogućnost izvršavanja koda unesenog od strane korisnika, bilo na serverskoj strani ili na klijentskoj (dakle, da netko unese HTML/Javascript i on se izvršuje korisniku u pregledniku) bez filtriranja. Recimo da pravite tražilicu za web stranicu. Imate jedno veliko polje “unesi pretragu”. Ovako nešto: I recimo da prikažete ljudima što su tražili. Nešto poput “Rezultati za pretragu ‘kava’”: Što kad bi netko tu uneo HTML kod? Na primjer, cross-side scripting Ispravno filtrirane forme bi prikazale ovo: Dakle, jednostavno bi prikazale kod, ne bi ga izvršile. No, ako forma nije dobro filtrirana, može se dogoditi ovo: Kod iz forme se izvršava na stranici. Ako je vaša prva pomisao tu Pa šta sad, netko može promijeniti boju fonta?!?! Sjetite se da se JavaScript isto izvršava iz HTML koda, a to je puni programski jezik koji dopušta manipulaciju već učitanom web stranicom. Okej, moram ovo reći dok me iskusniji ne kamenuju. Ovaj primjer gore s tražilicom neće raditi jer većina današnjih web preglednika će odbiti izvršiti kôd koji se nalazi u zahtjevu, bio on GET ili POST u pokušaju sprječavanja XSS-a koliko oni to mogu. Safari, recimo, javi ovo: The XSS Auditor refused to execute a script in ’ http://dev.pulsir.eu/iweb/sec/xss.php ’ because its source code was found within the request. The auditor was enabled as the server sent neither an 'X-XSS-Protection’ nor 'Content-Security-Policy’ header. xss.php:21 U svakom slučaju, ovo je problem na starijim browserima i na mjestima gdje se podatci od korisnika pohranjuju i ponovno prikazuju, o čemu ću detaljnije malo niže u tekstu. I da, znam da je   tag užasan i deprecated, ali je daleko lakši za objasniti neupućenima nego Što je problem kod XSS-a? Problem 1: Stranica pohranjuje unos i ponovno ga prikazuje Poput foruma, komentara na blogu, društvene mreže, nečega takvoga. To znači da svaki puta kada netko pristupi stranici koja prikazuje taj unos, taj kod kojeg je napadač uneo se ponovno izvršava. Pa šta sad, netko može mijenjati boje stranica? Problem 2: Javascript HTML i web preglednici općenito imaju implementiran programski jezik Javascript koji omogućava da se HTML stranicom upravlja i izmjenjuje njen sadržaj poslije učitavanja. I svi skoro koriste Javascript. Google koristi JS. Gmail, Duckduckgo, forumi, ova stranica, sve je puno Javascripta. No problem kod XSS-a nastaje kad unos nije filtriran, ponovno se prikazuje i u njemu se nalazi Javascript. Tu napadač može raditi  jako  puno toga - Javascript je pravi programski jezik. Ako mislite da se ovo ne događa u stvarnosti, Tweetdeck, jedan veliki Twitter klijent namijenjen profesionalnim korisnicima i community managerima, sada u vlasništvu Twittera, jedne od najpoznatijih  društvenih mreža  je nedavno imao  upravo ovakav  problem gdje se dogodio… “self-retweeting tweet” - tweet koji sam sebe retweeta (ili ako ne znate što je Twitter, kao da je to na Facebooku status koji sam sebe podijeli). Princip rada je u tome da Tweetdeck nije filtrirao tweetove (statuse) koje je prikazivao korisniku, već je izvršavao kod koji se nalazio unutar njih. Tweetdeck je usput koristio i jQuery biblioteku pomoću koje je izrazito lako napraviti takvo što i autoru je stalo to u tih 140 znakova (čak mu je ostalo mjesta pa je stavio Ovo je kod exploita koji se nalazio u tom tweetu: $('.xss').parents().eq(1).find('a').eq(1).click();$('[data-action=retweet]').click();alert('XSS in Tweetdeck') ♥ Napravio sam primjer stranice koja je ranjiva na XSS pa se možete poigrati: http://dev.pulsir.eu/iweb/sec/xss.php Ako ne trebate prikazivati ikakav kod iz polja na stranici, najbolja ideja je filtrirati sve znakove koji bi mogli označavati početak i kraj koda, poput   i zamijeniti ih sa HTML entitetima. U PHP-u se to može napraviti s htmlentities() funkcijom, no ona zna i znakove koje nisu opasni, poput č/ć/š/đ/ž zamijeniti i uzrokovati probleme s enkodiranjem stranice (sjetimo se posta  PHP: a fractal of bad design ). U većini slučajeva kad ne moramo prikazati kôd iz polja,  str_replace("  je dovoljno dobro rješenje. Ako pak trebamo prikazivati kôd iz polja, morat ćemo posegnuti za naprednijim filterima. Ovaj je solidan:  https://gist.github.com/mbijon/1098477 , a  HTML Purifier  je zasigurno jedan od najboljih. CSRF CSRF, odnosno cross-site request forgery je izrazito opasan i izrazito jednostavan napad na stranicu. Kopirajte neku formu. Bilo koju. I samo joj promijenite relativnu putanju (recimo, action=“send.php” u action=“ http://neka-stranica.hr/send.php” ) Ako stranica nije dobro zaštićena, ta forma će se poslati s druge stranice bez problema. Ovo je izrazito čest problem i opasan. E, sad, recimo da imate jako loše dizajniranu formu za uplate na Internet bankarstvu. Recimo da imate formu koja izgleda ovako nekako: Primatelj novca: Iznos uplate: I sad, kad bi ja ovu formu kopirao i stavio ispod forme za dodavanje komentara nekoj stranici, mogu napraviti ovo: Korisnik na stranici uopće ne vidi polja za bankovni račun i iznos novca, a gumb za slanje novca mu se prikazuje kao “Dodaj komentar”. Ako je prijavljen u Internet bankarstvo, kada klikne taj gumb, transakcija će se izvršiti s korisnikovog računa na račun Dr. Evil. Napomena: sve usluge Internet bankarstva u RH su zaštićene protiv CSRF napada – one su sigurne. Ovo je samo primjer radi ilustracije kako su CSRF napadi opasni. Forme se koriste za promjenu lozinki, brisanje računa, bankovne transakcije na internet bankarstvu. Većina bolje napravljenih stranica jesu zaštićene i imaju form tokene koji to sprječavaju, ali ako neka stranica nije, to je jako loše i velik problem i za vlasnika i za korisnika. Problem je što netko može onda poslati formu u vaše ime, bez da znate da je to forma, koja briše vaš račun ili radi nešto opasno (poput, recimo, naplate bankovnog računa), a da su sva polja skrivena i gumb za slanje zamaskiran kao link. Evo demonstracija kako CSRF napadi mogu biti zamaskirani:  http://dev.pulsir.eu/iweb/sec/csrf.php Ako ste vlasnik web stranice, način za zaštitu od ovoga je generacija tokena za specifičnu sesiju nekog usera koji se pohranjuju u bazi ili cacheu i moraju odgovarati onome navedenome u formi kod njene generacije. Ovo je izvrstan izvor o zaštiti od CSRF napada:  owasp.org: Cross-Site Request Forgery Prevention Cheat Sheet . Tokeni trebaju biti jedinstveni za svakog korisnika, laki za provjeriti i nedostupni korisniku ili vanjskim skriptama – treba koristiti samo interne funkcije za dobivanje tokena. Nije teško zaštititi se od CSRF napada, samo je bitno učiniti to na vrijeme. Postoje addonovi koji sprječavaju izvršavanje skripti u korisnički-generiranim poljima i slanje formi na druge stranice – no neki web servisi se oslanjaju na to i oni mogu uništiti dio njihove funkcionalnosti. U svakom slučaju, ove napade može spriječiti samo osoba s pristupom izvornom kodu web aplikacije, a najbolje što netko kao krajnji korisnik može učiniti je prestati koristiti tu aplikaciju dok se taj sigurnosni bug ne ispravi. I’m a high school student at  Gimnazija Požega  who loves computer science, development, design and open source. I don’t have much to say about myself, but you should take a look at my  GitHub  and  LinkedIn  profiles. I mostly code in PHP, with a dash of Python or C/C++ occasionally. As a strong believer in software-related freedom, I’ve worked on quite a few open source projects, including  Pulsir ,  Nightsparrow ,  and many more… I gave a lighting talk on DORS/CLUC when I was in the 8th grade. Don’t go watch it. I can build things for you. (Things include, but are not limited to: simple web apps, not so simple web apps, complex web apps, mobile apps, web sites, basic designs and almost any other thing you can think of) Send me an email:  mbm@pulsir.eu