Jiné : phpRS Fórum
Na něco jsme zapomněli?
phpRS - redakční a informační systém
Captcha
Zaslán uživatelem/kou: johnyq (IP adresa zaznamenána)
Datum: 2006-07-27, 03:54

Ahoj,

unaveni robotama, co vam vkladaji do komentaru a knihy hostu prispevky? Captcha budiz reseni.
Jak na to? Zkuste pouzit to, co jsem ve chvilich nouze upatlal ja (nebo upravit - budu rad za pripominky, nebot si nedelam iluze o vlastni dokonalosti ci neomylnosti).

Hned na zacatek bych upozornil, ze krome captcha.php jsem vse ostatni delal od oka a bez testovani a tudiz neni uplne zarucena funkcnost - duvodem je to, ze pouzivam verzi phpRS, ktera presla temer kompletnim redesignem z duvodu, ktere jsem tu jiz nekolikrat psal a aktualni skripty jsou s ni hrube nekompatibilni.
captcha.php ma pridelany ne-objektovy wrapper a je udelana tak, aby kousla i verzi 2.8.0 a jeji bizarni pristup k DB, nicmene priklad vlozeni do komentaru je pouze pro verzi 2.6.5 a ma slouzit spise jako proof-of-concept, ktery jsem dal k dispozici jednomu nestastnikovi, ktery nebyl schopen to zaimplementovat sam - casem mozna pribude i to stejne pro knihu hostu.
Pokud se najde nejaky fanda PHP, ktery ma cas a naladu to otestovat, doladit a prenest i do verze 2.8, budu take rad.
Jako zaklad sem pouzil verzi pro utf-8, ale byl sem zdesen jednak tim, ze samotny skript comment.php je v kodovani latin1(!), druhak to, ze dodnes chybi funkce nahledu clanku pred ulozenim, ktera je pro captchu velmi treba - asi nikdo by nebyl rad, kdyby zadal spatne kod a zmizel mu cely prispevek. Narychlo jsem to vyresil funkci NovyReFormKomCheck(), kterou bude treba dopracovat a zkontrolovat, jestli se nahled korektne ulozi i pri vlozeni noveho prispevku.

Veskere potrebne veci naleznete zde: [http://www.chlast.cz/phprs/captcha.tar.gz]

Potrebujete:
PHP 4.2+
GDLib 1.6+
FreeType 2

vetsinu nastaveni sem se snazil komentovat v captcha.php, pokud by neco bylo nejasne, vysvetlim po emailu.

Tak a tedka postup instalace:

1) Provedte patch na databazi (patch.sql):

CREATE TABLE rs_captcha (
id int(11) NOT NULL auto_increment,
public_key tinytext,
private_key tinytext,
created datetime default NULL,
try_cnt tinyint(4) default '0',
PRIMARY KEY (id),
KEY captcha_created (created),
FULLTEXT KEY captcha_public_key (public_key),
FULLTEXT KEY captcha_private_key (private_key)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


2) do rootu sveho phpRS umistite soubor captcha.php.
3) Pripadne zmodifikujete konstanty v captcha.php
4) v rootu vytvorite adresar ttf/ (lze zmenit v captcha.php) a do nej nakopirujete 1 a vice trueType Fontu (jakekoliv soubory s koncovkou ttf, ale pozor, aby byly citelne - windings by se zadavaly z webu dost blbe)
5) zazalohujete svuj comment.php
6) nahradite comment.php tim, co je v archivu, nebo tim, co nekdo opravi.

To by melo stacit.

Re: Captcha
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2006-07-27, 13:56

uz na to koukam...

jak bude cas, hodim to na web...

zrovna jsem se chtel poptat, zda uz to nekdo nema hotove, abych nevymyslel "kolo"... :-)

P.S.
BSD licence je super...


doplnujici dotaz... :-))

//Doba, po ktere se vygenerovany cpatcha kod stane neplatnym (smaze se z DB) v minutach.
var $max_interval = 120;


nejsou ty 2 hodiny zbytecne mnoho??

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------



Celkem upraveno 1×. Poslední úprava JanVar v 27.07.2006 14:02.

Re: Captcha
Zaslán uživatelem/kou: johnyq (IP adresa zaznamenána)
Datum: 2006-07-27, 14:23

Zdravim.

>>nejsou ty 2 hodiny zbytecne mnoho??

Kdyz si vemete, ze se kod vygeneruje v okamziku, kdy si clovek otevre formular na psani komentare, tak nez ho napise, mezitim treba psani prerusi, odesle, tak ta doba muze uplynout.
V podstate se to da rapidne zkratit - tak jak to mam udelane tedka se po uplynuti doby, kdy se zaznam smaze z tabulky vygeneruje kod novy a pro uzivatele to ma je jediny dopad - misto oznameni, ze zaznam byl ulozen se mu zobrazi nahled celeho komentare s textem, ze kod byl spatne zadan a vyzve se k zadani kodu noveho - po vyplneni a odeslani se ulozi korektne.
Pokud by tam ta funkce "nahledu" po odeslani invalidniho kodu chybela, dojde k nenavratne ztrate komentare. Dalo by se to vyresit prechodnym ulozenim do DB, ale IMHO by ji to pouze zbytecne zatezovalo.
Nehlede na to, ze funkce nahledu v komentari mi prijde osobne velmi uzitecna - kdyz pisete delsi komentar, muzete si ho prubezne "ukladat", zobrazovat aktualni stav a potom po sobe opravit preklepy. Udelal jsem pro to navic tlacitko v comment.php vedle "odeslat" jako "nahled" - funkce, co jsem doplnil do PHP se da pouzit uplne stejne pro captchu i pro nahled postu.

Re: Captcha
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-07-27, 14:49

OT: Nemám rád captchu, nemám rád náhledy komentářů.

Ale jinak díky, nechce se ti to trošku "zkulturnit" a vydat článek na community webu? Slovem zkulturnit myslím napsat víc pro BFU.

Pripadne zmodifikujete konstanty v captcha.php
Obavam se, ze "zmodifikovat konstanty" by BFU nezvládl :-) Ale i tak díky za zveřejnění, může se hodit.

PS: Vím, co píšeš v prvním příspěvku, ale stejně to zkouším, co kdyby ses chytl ;-) Myslím, že kdyby to někdo upravil a pak zveřejnil na community webu, už by to "nebylo takový"...

--
[ SAFUS.EU | OFFLINE | FOREVER ]



Celkem upraveno 1×. Poslední úprava Michalek v 27.07.2006 14:51.

Re: Captcha
Zaslán uživatelem/kou: johnyq (IP adresa zaznamenána)
Datum: 2006-07-27, 15:01

Me nahled komentare prijde jako fajn napad ;-)
captchu taky nemam rad, ale mam phpRS na serveru, ktery ma cca 5-8.000 unikatnich pristupu denne a tak se toho zacly chytat roboti - dokud to byly desitky komentaru/mesic, bylo to fajn - stacilo dovat do banlistu IP a mazat. Pak se to zaclo zahustovat - pokud sem pridal nejaky chytak, jako treba skryty parametr, filtraci na klicova slova nebo tak neco, tak to meli do 12ti hodin opravene a jelo se dal. Navic pristupovali pres proxy a vzdycky ne vic jak 10 prispevku z jednoho IP.
Kdyz to dospelo do stadia, kdy nonstop prichazely 2 spamove posty za sekundu, musel sem to zacit resit a captcha je sice divne, ale v soucasnem okamziku nejefektivnejsi reseni. Nepreju nikomu cisteni DB od spamu - jen pomoci dotazu jsem vymlatil cca 30.000 komentaru a spousta toho jeste zbyva.
Tohle je pro lidi, kteri se dostanou do stejne situace, v jake sme byli i my, budou potrebovat rychle reseni a pripadne nebudou schopni captchu naklepat sami (i kdyz ve finale to zas neni nic tak tezkeho).
Zkusim to jeste upravit, aby to bylo konfigurovatelne v config.php. Vetsina tech nastaveni neni treba menit - jsou to proste konstanty - pokud clovek dodrzi nazvy adresare ttf, tak staci, kdyz vola ty tri staticke funkce na konci captcha.php, ty uz zbytek zaridi.
Jinak uz dobre rok slibuju autorovi phpRS, ze okomentuju a prizpusobim to, co jsem kdysi udelal na phpRS, aby to bylo pouzitelne, ale realita bohuzel je jina. U tohole je latentni riziko, ze by to dopadlo stejne, proto narovinu rikam, ze je to polovicni prace a pokud se nekdo chce zhostit implementace, ma ruce volne.
I kdyz - treba se k necemu nekdy dokopu.

Re: Captcha
Zaslán uživatelem/kou: JanVar (IP adresa zaznamenána)
Datum: 2006-07-27, 15:36

Michalek napsal/a:
-------------------------------------------------------
> OT: Nemám rád captchu, nemám rád náhledy komentářů.

přiznám se, že opisovat čísla mneč také nebaví, ale než spam, raději tohle...
Náhledy (vrácení vyplněné hodnoty) se snažím dodržovat i jinde, např. běžná pole, uživatelúm (mně) to podstatně ulehčí práci...

p.s.
ten zatracenej němec je pěknej prevít... :-)))

-- JaV ---- [http://www.hades.cz] ---- security by obscurity ---------------------------------------------
motto:
It's OK to be ignorant; it's not OK to play stupid.
But it's simply not efficient for us to try to help people who are not willing to help themselves.
----------------------------------------------------------------------------------------------------------------------

Re: Captcha
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-07-27, 17:17

Ludia, neviem čo máte všetci proti captcha systému? Veď tú captchu može vypĺnať JavaScript. Bežný Franta so zapnutým JS o nej ani nebude vedieť a to mizerné percento s vypnutým JS prepísanie pár písmenok unesie ;)

Re: Captcha
Zaslán uživatelem/kou: gord007 (IP adresa zaznamenána)
Datum: 2006-08-21, 09:50

Potřeboval bych vložit Captcha do pluginu Inzeráty....
Poradí mi někdo??? Prosím....

[http://www.rozsec.cz] - [http://www.czechppm.cz]

Re: Captcha
Zaslán uživatelem/kou: Petr008 (IP adresa zaznamenána)
Datum: 2006-09-01, 19:44

Jaké fonty do ttf používáte a kde je stáhnu?
Musí se přejmenovat nebo změnit nastavení v captcha.php?
Jsem lama a přiznávám to, ostatní nastavení jsem si udělal, upravil názvy, ale mnou použité fonty se jako obrázek nezobrazují, stále zde mám prázdný symbo obrázku.

Všechny ostatní věci jsou nastavené, ale tato základní věc mi stále nejde.


V komentářích během týdne likviduji asi 500 příspěvků typu spam. Roboti, asi přes proxy, max. 10 příspěvků z jedné IP adresy.


Re: Captcha
Zaslán uživatelem/kou: standa.e (IP adresa zaznamenána)
Datum: 2006-11-28, 20:58

Dobry den,
Pokusil jsem se na web nasadit vaše CAPCHA řešení a naprosto jsem ztroskotal. Nejprve mi sql zahláslo: MySQL "vypsalo: You have an error in your SQL syntax near 'ENGINE=MyISAM DEFAULT CHARSET=utf8' at line 11". Tabulka se vytvoří jen když člověk daný řádek smaže, ale nejsem si jistý, zda je to zcela v pořádku. (web bezi na serverech O2)

(pokoušel jsem se to i přepsat na různé varianty cp1250, ale nevedlo to k ničemu)

Prostě: ač jsem se snažil maximálně dodržet Váš postup, nikdy se mi obrázek s písmeny nevygeneroval (jen prázdné pole). Hádám, že vina bude někde v "Pripadne zmodifikujete konstanty v captcha.php "..

Ale vubec netusim kde.

Chtel bych poprosit Vas, ci kohokoliv jineho, zda byste opravdu nedokazali vytvorit nejaky BFU friendly text, ktery byste zverejnili. Nechci vodit za rucicku, rad bych pochopil kde co nastavit a proc a jak. A pritom, priznavam, se nemusel ucit cele PHP a MySQL... Ano, jsem BFU. Pred rokem jsem se zorientoval natolik, abych phpRS nasadil i s nejakymi doplnky. Dnes koukam, ze mi vedle drtive vetsiny zdejsich uzivatelu ujel vlak.

Slibuji, ze budete-li potrebovat poradit treba s necim z raneho stredoveku, take vas neodmitnu... ;-)

Diky moc. Vazne. A omlouvam se za prechod k bezdiakritice. Je to silnejsi nez ja. ;-)

Re: Captcha
Zaslán uživatelem/kou: code_breaker (IP adresa zaznamenána)
Datum: 2007-03-09, 16:36

mám stejný problém, ale nejsem si jist, že je to těmi fonty

Re: Captcha
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2007-03-09, 17:57

zkousim upravit comment.php u phpRS 2.8.0 a porad mi to haze tohle:

Fatal error: Call to a member function get_public() on a non-object in ....../captcha.php on line 304

a na te radce najdu toto:

return(captcha_get_script_path()."?public=".urlencode($c->get_public()));


nevedel by nekdo poradit? uz newim co tam mam spatne :'-(



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.