IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:9.9.2013 16:52

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
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:9.9.2013 17:09

Musím použít to interface ?

Nahoru Odpovědět
9.9.2013 17:09
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:9.9.2013 17:25

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:9.9.2013 17:34

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

 
Nahoru Odpovědět
9.9.2013 17:34
Avatar
Odpovídá na Kit
Neaktivní uživatel:9.9.2013 18:01

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
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:9.9.2013 18:05

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 Neaktivní uživatel
Michal Žůrek - misaz:9.9.2013 18:11

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
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michal Žůrek - misaz
David Hartinger:9.9.2013 18:16

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

Nahoru Odpovědět
9.9.2013 18:16
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:9.9.2013 18:24

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

 
Nahoru Odpovědět
9.9.2013 18:24
Avatar
Odpovídá na David Hartinger
Michael Olšavský:9.9.2013 20:36

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
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Kit:9.9.2013 20:48

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 Hartinger
Michael Olšavský:9.9.2013 20:49

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 Hartinger
Pavel Vosyka:9.9.2013 21:41

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" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
perteus
Člen
Avatar
Odpovídá na Kit
perteus:10.9.2013 8:19

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
10.9.2013 8:19
Avatar
Kit
Tvůrce
Avatar
Odpovídá na perteus
Kit:10.9.2013 8:27

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 Hartinger
Michael Olšavský:10.9.2013 21:52

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:12.9.2013 21:27

tak já vám sem taky něco dám, http://misaz.wz.cz/sended/machr 37.zip Mám to spíš pro Neaktivní uživatel 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
Avatar
Odpovídá na Michal Žůrek - misaz
Neaktivní uživatel:13.9.2013 15:44

díky :) Pak na to kouknu

Nahoru Odpovědět
13.9.2013 15:44
Neaktivní uživatelský účet
Avatar
Odpovídá na Michael Olšavský
Michael Olšavský:13.9.2013 23:34

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
13.9.2013 23:34
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Kit:14.9.2013 7:59

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
Odpovídá na Michael Olšavský
Neaktivní uživatel:14.9.2013 8:29

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
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
14.9.2013 9:02
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michael Olšavský:14.9.2013 9:45

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ý:14.9.2013 10:51

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
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Kit:14.9.2013 10:59

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
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ý:14.9.2013 11:03

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

 
Nahoru Odpovědět
14.9.2013 11:03
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michael Olšavský
Kit:14.9.2013 11:09

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
Odpovídá na Michal Žůrek - misaz
Michael Olšavský:14.9.2013 11:48

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 Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:14.9.2013 11:55

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
14.9.2013 11:55
New kid back on the block with a R.I.P
Avatar
Odpovídá na Michal Žůrek - misaz
Michal Žůrek - misaz:14.9.2013 19:36

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
14.9.2013 19:36
Avatar
Pavel Vosyka
Člen
Avatar
Pavel Vosyka:15.9.2013 13:03

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" (updated 10 years after: "Není nic špatného na tom napsat něco 2x")
Avatar
Michael Olšavský:15.9.2013 13:23

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
Neaktivní uživatel:15.9.2013 15:27

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
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:15.9.2013 18:57

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 Neaktivní uživatela, 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
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:15.9.2013 19:10

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 Hartinger
Michal Žůrek - misaz:15.9.2013 19:28

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
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michal Žůrek - misaz
David Hartinger:15.9.2013 19:35

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
New kid back on the block with a R.I.P
Avatar
Odpovídá na Michal Žůrek - misaz
Neaktivní uživatel:15.9.2013 19:40

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
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:15.9.2013 19:41

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
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:15.9.2013 19:42

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
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:15.9.2013 19:48

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 Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:15.9.2013 19:52

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
New kid back on the block with a R.I.P
Avatar
Odpovídá na Michael Olšavský
Michal Žůrek - misaz:15.9.2013 19:56

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
Avatar
Odpovídá na Michal Žůrek - misaz
Michael Olšavský:15.9.2013 20:32

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.