Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj programátoři, v minisoutěži na tento týden budeme hrát o placku s mohutným PHP slonem a nálepky. Psal jsem teď dvoudíl o používání rozhraní v PHP, kde jsem vytvořil 2 captchy (antispamy na aktuální rok a klasickou obrázkovou). Captchy implementují následující rozhraní:

interface Captcha
{

    public function vypis();
    public function over();

}

Více viz. článek http://www.itnetwork.cz/…ce-vzkazniku

Zkuste využít toto rozhraní a vymyslet nějakou originální a zároveň bezpečnou captchu. Může jít o popis předmětu na obrázku, zvuk, výpočet příkladu a podobně. Autor nejlepší captchy získá placku a nálepky.

Čas si dejme do neděle 15.9. do 18:00.

Odpovědět 9.9.2013 16:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Daniel Vítek:

Musím použít to interface ?

 
Nahoru Odpovědět 9.9.2013 17:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Jak chceš využít rozhraní a současně ho nepoužít?

Nahoru Odpovědět 9.9.2013 17:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michal Žůrek (misaz):

můžu těm metodám přidat parametry?

Nahoru Odpovědět  -1 9.9.2013 17:34
Nesnáším {}, proto se jim vyhýbám.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

No to já právě pořád nevím na co to rozhraní je tak proto se ptám jestli tam musí být :D

 
Nahoru Odpovědět 9.9.2013 18:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Ta soutěž je tu kvůli tomu, aby ses to naučil. Vlastně jen napíšeš třídu a do ní povinně tyto dvě metody. Interface pohlídá, jestli jsi je tam skutečně dal.

Nahoru Odpovědět 9.9.2013 18:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Daniel Vítek
Michal Žůrek (misaz):

to rozhraní je proto kdybyjsi chtěl náhodně různé typy ověření můžeš mít třeba třídy.

OtazkaRok
Zvuk
Opis

všechny tyto třídy budou implementovat rozhraní a všechny se tedy na venek budou používat metodami Vips() a Over() ačkoliv každá dělá něco jiného a dělá to jinak. Spojuje je jen to rozhraní.

Nahoru Odpovědět 9.9.2013 18:11
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Co bys jim předával? Ta captcha by měla fungovat jako blackbox.

Nahoru Odpovědět 9.9.2013 18:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

teď mi došlo, že to co potřebuju předám přes session.

Nahoru Odpovědět  +1 9.9.2013 18:24
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Koukám, že dnes je to tedy omezené jen na PHP. Že bych udělal nějakou interaktivní třeba v JS...

 
Nahoru Odpovědět 9.9.2013 20:36
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:

V Node.js by to také mohlo jít udělat.

Pokud to chceš dělat na klientském JS, tak se obávám, že je to jen plýtvání časem.

Editováno 9.9.2013 20:48
Nahoru Odpovědět 9.9.2013 20:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Proč bych to měl předávat přes Session a kontrolovat v objektu přes POST? Není to tak proti návrhu? Potom můžu manipulovat s proměnnými "objektu"(oni toho objektu nebudou). Captchu stačí vytvořit jen jednou, nepotřebuji to předávat napříč formuláři. To co se děje při vyplňování by captchu vůbec nemělo zajímat.

 
Nahoru Odpovědět 9.9.2013 20:49
Avatar
Pavel Vosyka
Člen
Avatar
Odpovídá na David Čápka
Pavel Vosyka:

Můžu přitom použít (v podstatě jen upravit) ten vzor z tutoriálu?

Nahoru Odpovědět 9.9.2013 21:41
"nikdy nepiš nic 2x"
Avatar
perteus
Člen
Avatar
Odpovídá na Kit
perteus:

On nemyslel asi Node.JS ale JS klasický. Kdysi jsem viděl návrh řešení skrytého zaškrávacího pole a nebo pro vyplnění tak, že toto se zobrazí jen botum. Normální prohlížeč uživatel by to měl skrytý. Spamboti by to vyplnili a tím by se prozradili. Ale je to už pěkných pár let, co jsem toto viděl v řešení. Tehdá to fungovalo :-)

 
Nahoru Odpovědět  +1 10.9.2013 8:19
Avatar
Kit
Redaktor
Avatar
Odpovídá na perteus
Kit:

JS v prohlížeči vlastně také není "klasický", je pouze nejrozšířenější.

Skryté nevyplněné pole se používá stále jako doplněk dalších ochran.

Nahoru Odpovědět 10.9.2013 8:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

zde je moje verze(nefinální, ale funčkní). Není to nic světoborného, nenapadli mě žádné inovace bez použití JS, tak jsem to napsal takhle jednoduše. Musím ale říct, že po dnešku nechci PHP na chvíli ani vidět. Naprosto mi zničilo návrh, učí špatné návyky... Obyčejně možná ne, ale s použitím GD to jinak nejde.
http://www.mvc.mzf.cz/…ha/index.php

Editováno 10.9.2013 21:53
 
Nahoru Odpovědět 10.9.2013 21:52
Avatar
Michal Žůrek (misaz):

tak já vám sem taky něco dám, http://misaz.wz.cz/sended/machr 37.zip Mám to spíš pro Daniel Vítek všimni si tam že ačkoliv to uvnitř na první pohled funguje složitě tak díky rozhraní se to snadně používá, prostě zavoláš over a vypiš :)

Nahoru Odpovědět 12.9.2013 21:27
Nesnáším {}, proto se jim vyhýbám.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Odpovídá na Michael Olšavský
Michael Olšavský:

Na stránce je nahrána nová verze. Vlastně celá nová třída s úplně jiným ovládáním. Mělo by to být plně funkční. http://www.mvc.mzf.cz/…ha/index.php

 
Nahoru Odpovědět  +1 13.9.2013 23:34
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:

Obávám se, že tímto testem IQ by hodně lidí vůbec neprošlo :)

Nahoru Odpovědět 14.9.2013 7:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Fredep
Redaktor
Avatar
Odpovídá na Michael Olšavský
Fredep:

Podle mě by to šlo velice snadno prolomit. Jinak dobrý nápad, ale trvalo mi to, než jsem to pochopil :) ...

Nahoru Odpovědět 14.9.2013 8:29
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
Odpovídá na Fredep
Michael Olšavský:

Prolomit? A jak? Ten generovaný obrázek je jen jeden a ne několik jak se ukazuje pote. Pokud k tomu přidam ještě nějaký sum do pozadí, nevím kde je problém :-) zda se mi to bezpečnější než ten zbytek. Co je na tom k nepochopení? Asi pro to udělám lepší nápovědu :-D

 
Nahoru Odpovědět 14.9.2013 9:45
Avatar
Odpovídá na Kit
Michael Olšavský:

Já se hlavně snažil o něco inovativnějšího a nezdá se mi to nějak extra složité :-D Co je za problém? :D

 
Nahoru Odpovědět 14.9.2013 10:51
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:

Problém bude nejspíš v tom, že tvé IQ bude asi výrazně vyšší, než IQ průměrného diskutujícího na webu :)

Připadá mi to pro člověka příliš pracné a pro automat příliš snadné.

Nahoru Odpovědět  +1 14.9.2013 10:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michael Olšavský:

Tak co mám ještě vymyslet??? :D

 
Nahoru Odpovědět 14.9.2013 11:03
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:

Něco, co člověk vyřeší pouhým pohledem, bez jakéhokoli algoritmu, ale automat si na tom vyláme zuby.

Nahoru Odpovědět 14.9.2013 11:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Nahoru Odpovědět 14.9.2013 11:35
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michael Olšavský:

To už je okoukané :D to byla jedna z prvních veci co me napadla. Ale na tom neni nic zajimaveho. Zkusim vymyslet jeste neco jineho.

 
Nahoru Odpovědět 14.9.2013 11:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
David Čápka:

Mně se to jeho řešení líbí, je to dobré a IMHO i docela bezpečné. Jedině že by někdo napsal robota přímo na tu captchu, ale to je problém většiny řešení.

Nahoru Odpovědět  +2 14.9.2013 11:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michal Žůrek (misaz):

na http://machr37.misaz.moxo.cz/ je online ukázka. nezapomeňte vyplnit pole Kreditní karta a heslo k internetovému bankovnictví.

Nahoru Odpovědět  +2 14.9.2013 19:36
Nesnáším {}, proto se jim vyhýbám.
Avatar
Pavel Vosyka
Člen
Avatar
Pavel Vosyka:

Tak tady je můj skromný výtvor.. http://vosyka.tk/…ook/captcha/

Nahoru Odpovědět 15.9.2013 13:03
"nikdy nepiš nic 2x"
Avatar
Michael Olšavský:

Zde jsou zrojáky. Na další úpravy už jsem neměl čas. Jsou tam dvě verze. Rozhraní jsem mírně upravil, ale obsahuje vše potřebné z původního.
https://drive.google.com/folderview?…

 
Nahoru Odpovědět 15.9.2013 13:23
Avatar
Fredep
Redaktor
Avatar
Fredep:

Vy máte všichni takové malé obrázky, ta moje captcha má rozměry 717x400 :D . Zde je link na captchu http://novinovipanacci.xf.cz/vzkaznik/ (Prosím neptejte se mě na název URL :D ) a zde jsou zdrojové kódy http://leteckaposta.cz/705800940 . Máte za úkol určit, které obrázky jsou "rovné" a to tak, že napíšete jejich čísla do toho pole pod tím... Doufám, že jsem něco nezvoral...

Nahoru Odpovědět 15.9.2013 15:27
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Přišli jsme opravdu se zajímavými výsledky, jsem z toho nadšený :)

Misaz - Velmi zajímavý nápad a poměrně pěkné objektové zpracování.

brisingr002 - Opět velmi zajímavé řešení, které by mohlo zároveň sloužit jako IQ test :D Kdybys obrázky ještě nějak pootáčel, mohlo by to být docela bezpečné. Nepoužil jsi však interface ze zadání.

Freedep - Asi nejnápaditější a také nejvíce frustrující řešení :) Jelikož by se seznam obrázků mohl časem sám obměňovat, jedná se asi prakticky o nerozluštitelnou captchu. Těch obrázků bych tam dal méně a nějakých jednodušších, je to fakt těžké.

vosykapavel - Řešení je funkční, ale moc práce sis s tím nedal :) Čísla by to chtělo alespoň pootáčet, i když roboti by to stejně jednoduše přečetli. Je otázka jestli by přišli na to, že to mají sečíst. Můžeš to někdy vyzkoušet.

Kód jsem prolétl a všechny captchy jsou slušně napsané. Jako naprosto bezpečnou vidím captchu Fredepa, jelikož jen člověk ví, jak obrázek patří a nelze na ni napsat nějakého robota za předpokladu, že se obrázky občas prostřídají. Proto získává placku Machr na PHP, gratuluji :)

Budu moc rád, když i ostatní publikují své řešení, určitě je někdo prakticky využije.

EDIT: Ještě dodám, adresu pošli prosím x do zpráv :)

Editováno 15.9.2013 19:38
Nahoru Odpovědět 15.9.2013 18:57
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

Gratuluji vítězi. Každopádně ty obrázky by se museli poměrně často střídat, jinak by to nebylo tak neprolomitelné. Snad bych řekl i lehčí než ty ostatní, samozřejmě za pomoci člověka. Sám robot by to neudělal. :-) To mě nenapadlo, že si to rozhraní nemůžu uzpůsobit. Ale co... Už máš rozmyšlené, co bude příště? Celkem rád bych tu zae vyděl něco graficky nenáročného, ale náročné na algoritmy :D (třeba jak tu byl ten soucet binárních čísel nebo ta mapa)

 
Nahoru Odpovědět 15.9.2013 19:10
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

Gratuluji vítězi.

Jinak jako myslím že by šel udělat robot co by to prolomil, stačilo by mu googlit obrázky a zjišťovat, zdali jsou správně otočené, pak vypsat ty co jsou. Na ty obrázky bys ani nemusel dělat nějakou složitou databázi, stačilo by zajít na flickr, z toho můžeš myslím i zadarmo tahat obrázky.

Nahoru Odpovědět 15.9.2013 19:28
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Přemýšlel jsem nad tím, kdyby si ty obrázky generoval jako třeba ty ty avatary, tak by to mohlo být dost zajímavé. Nebo tam prostě dát svoje fotky z dovolené které nejsou na Google a kterých je dost :D

Nahoru Odpovědět 15.9.2013 19:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Fredep
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Fredep:

Nebo by šlo náhodně tipovat. V mém případě by byla pravděpodobnost správného tipu 0,0978% :D

Nahoru Odpovědět 15.9.2013 19:40
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Když jsme ještě u té captchy, dalo by se udělat něco, co se počítá přes JS. Roboti JS neumí. Jelikož je u JS ale vidět zdroják, tak by to chtělo hodně šikovně ten výpočet obfuskovat tak, aby to dotyčný nepřečetl. Nevím, jestli by to šlo, jen takový nápad.

Nahoru Odpovědět 15.9.2013 19:41
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Fredep
David Čápka:

To je taky pravda, ale jelikož ten web nějakou dobu reaguje, tak těch kombinací naštěstí moc nevyzkouší.

Nahoru Odpovědět 15.9.2013 19:42
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

dělat to v JS jsi nepovolil ne? Nejdřive jsem chtěl udělat puzzle. :) Typování je blbost, to s googlem by bylo asi trošku složitější, spíš stáhnout všechny obrázky co jsou dobře a pak to kontrolovat. To stahovaní by šlo i přes tu náhodu. Pak už by byly jen správné odpovědi.

 
Nahoru Odpovědět 15.9.2013 19:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
David Čápka:

Tak JS část nijak neubírá tomu, že je tam řešení v PHP :) Puzzle by bylo hodně zajímavé.

Nahoru Odpovědět 15.9.2013 19:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Michael Olšavský
Michal Žůrek (misaz):

Je úplně fuk jak moc je to složité. Správný programátor si poradí se vším co ho potká.

// No i když https://www.google.cz/search?…2KeQmTOIIrcmg7jB4yR­NP_1K2q8q6WjtU­YqD2O69ToDmUa3DK8ce­YYNXjplzQomTJW1MlZ7W6tH­naa4YHgh5qNvTJyh7u­2s07m5-Vw2CES-weSUVTpaH72LMZlVh­fWWrp8M0ft6xAD­tzu8WzWRErdxqb9os­vKz3lKzLtBbZBH8RLW-psFovkZrOffja­eD0YDIvynUAT6TsU­en9yMvRt7NPp56Ir0­L1qOCPsQK2F5hkmmV­CeNYom_1XZ-yLwarylLBJfeG842e­EPhL3&hl=cs&bi­h=643&biw=1366 ... Snad ten šílený odkaz funguje.

Nahoru Odpovědět 15.9.2013 19:56
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michael Olšavský:

Spíše jsem chtěl říct, že budeš muset mít větší štěstí. Myslím, že je praktičtější stáhnout ty obrázky podle náhody a pak už jen porovnávat. Sice je tam malá šance, ale 90% možností u 16 obrázků máš za pár sekund + odezva stránky samozřejmě a vykonávání skriptu. Mezitím už můžeš spamovat s tím, co máš.

 
Nahoru Odpovědět 15.9.2013 20:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 45 zpráv z 45.