Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 29. 10. 2006, 19:20:30
Zdravím
Používám diskusni forum miniBB a rád bych zavedl stejnou ochranu jako je v tomto foru (pri odesilani formulare se do nej vlozi JavaScriptem automaticky cislo, ktere by robot vlozit nemohl). Můzete mi prosim poradit jaká šablony či skripty upravit? Bohužel se v nich nedokážu zorientovat sám. David |
||
Časová prodleva: 3 dny
|
|||
Anonymní Profil * |
#2 · Zasláno: 1. 11. 2006, 08:24:56
Ahoj
Jsem ochoten někomu zaplatit za přidání této funkce. David |
||
Hooonza Profil * |
David
No, nemělo by to být tak složité... MiniBB nepoužívám, takže moje nápady ber jako inspiraci k otestování na testovacím fóru, ne jako definitivní řešení, před zkoušením si všechny soubory zazálohuj, aby, v případě neúspěchu, ses mohl vrátit k původním souborů! Nemůžu ručit za chyby, které se mohou objevit:-) Teprve, když bude skript šlapat (zkusíš si i simulovat odeslání příspěvku robotem tak, že odstraníš dočasně javascript document.getElementById("protirobotum").value="4";), použij jej na ostrém fóru:-) Teoreticky: roboty neumí javascript, pomocí něj tedy do vzkazu přidáš hodnotu, kterou znáš Ty a javascript, ale nepozná ji robot. Roboty odeslílají všechny proměnné, které ve formuláři najdou, toho se dá taky někdy využít, ale tady se to nepoužívá. Ve zpracovávacím skriptu potom otestuješ, jestli je hodnota přítomná nebo ne, pokud ne - tak nazdar. Skritp se dá tady z fóra okopírovat - snad Yůhů promine, ale můžeš si vymyslet i svůj. Protože nevím přesně, jak fórum funguje, přidávám k němu identifikaci odesílání příspěvku. Do souboru main_post_form.html vložíš např. za </textarea> skript: ***** <span id="spamprotirobotum">Ochrana proti spamu. Napiąte prosím číslici čtyři: <input type="text" name="robot" value="" id="protirobotum"><input type="hidden" name="kontrolni" value="ok"></span> <script> /* tento skript vloží do příslušného políčka */ document.getElementById("protirobotum").value="4"; document.getElementById("spamprotirobotum").style.display = "none"; </script> ***** Teď testík, pokud je odesílána zpráva, jestli hodnota robot=4. Do souboru index.php, např. hned za úvodní poznámku, vložíš skript: ***** if (($_POST['kontrolni']=='ok')&&($_POST['robot']!='4')) die ('Neoprávněný přístup.'); ***** Tento skript by měl zajistit, že pokud došlo k odeslání příspěvku ($_POST['kontrolni']=='ok'), který odeslal robot, který neumí javascript a teda neví, že proměnná robot se má = 4 ($_POST['robot']!='4'), dojde k ukončení skriptu s hláškou. Místo die ('Neoprávněný přístup.') se dá použít i jiné ukončení, exit(); - bez hlášky, ta je robotu stejně ukradená, nebo třeba přesměrování na úvodní stránku... Moderátor Majkl578: Kód prosím vkládej do tagu [pre], stačí kliknout na
|
||
Anonymní Profil * |
#4 · Zasláno: 1. 11. 2006, 17:56:53
Díky za popis. To mi je vše jasné, používám tento systém ochrany na jiných částech webu, které jsem si napsal sám.
Můj problém spočívá v tom, že se nejsem schopen zorientovat v miniBB - tedy do jaké šablony vložit JavaScrit + do jakých php skriptů vložit kontrolu. David |
||
Hooonza Profil * |
#5 · Zasláno: 1. 11. 2006, 19:24:33
David
Psal jsem to: Do souboru main_post_form.html vložíš např. za </textarea> skript: ... a Do souboru index.php, např. hned za úvodní poznámku (i když to může klidně být hned za <?php ) Odhadem, ale mělo by to šlapat. Podívej, kde se vytváří text vzkazu - tam je třeba doplnit javaskript. Neviděl jsem tam jiný template s textareou. Podívej, jaký má ten formulář action - index.php, tam je to třeba zhodnotit... Zkus to, jak píši, pokud to nepojede, dej vědět. |
||
Anonymní Profil * |
#6 · Zasláno: 2. 11. 2006, 08:24:09
Aha,
omlouvám se, nejsem pozorný:( Provedl jsem to. Vše funguje jak má. Zítra uvidíme zda to skutečně odfiltrovalo robory. David |
||
Hooonza Profil * |
#7 · Zasláno: 2. 11. 2006, 08:38:55
David
:-) Super:-) A máš to zadarmo:-) Doufám, že to bude dobře fungovat :-) |
||
Hooonza Profil * |
David
Napadá mě přesto, že ta ochrana, kterou jsem ti psal, může selhat - jestliže si roboty budou pamatovat starý odesílací formulář, ve kterém není proměnná "kontrola", takže se vypnutí spamu vyhnou. Řešením by bylo zadat do index.php spíš tento kontrolní skript if ( (isset($_POST['postText'])) && ($_POST['robot']!='4') ) die ('Neoprávněný přístup.'); postText - tam by mělo být jméno textarey, do které se píšou vzkazy. Dívám se, že tady u Yůhůa se jmenuje "poslText", v souborech, které jsem stáhl z miniBB.net se jmenuje "postText", zapiš tam to jméno, co tam máš ty, tzn to, co najdeš ve svém souboru main_post_form.html v tagu <textarea> jako name=***. Tím se otestuje existence odeslaného vzkazu a mělo by to testovat i v případě starého formuláře, tahle proměnná tam byla. |
||
Hooonza Profil * |
David
Ještě malé vylepšení (kdyby to házelo chybu "Notice - Undefined variable: ...") if ( (isset($_POST['postText'])) && ((!isset($_POST['robot'])) || ($_POST['robot']!='4') ) ) die ('Neoprávněný přístup.'); |
||
Anonymní Profil * |
#10 · Zasláno: 3. 11. 2006, 12:43:26
Funguje jak má. Ani jeden spam :)
Co jsem dlužen? David |
||
Hooonza Profil * |
#11 · Zasláno: 3. 11. 2006, 14:17:35
David
:-) Super! Jestli chceš, pošli za mě něco na dobročinné účely - třeba http://www.darcovskasms.cz/, http://www.charita.cz/. Nebo se s cílem můžeš inspirovat tady: http://hoowoo.info/?q=spirit&f=1089996724-pomaham-pomahas-pomahejme . Vážně:-) Díky:-) |
||
Časová prodleva: 3 měsíce
|
|||
Kepi Profil * |
#12 · Zasláno: 14. 2. 2007, 00:16:35
taktéž díky za rychlou pomoc. Není problém to vymyslet, ale najít čas. Poslal jsem za tebe něco dětem :)
|
||
Časová prodleva: 1 měsíc
|
|||
SE cz Profil * |
#13 · Zasláno: 17. 3. 2007, 10:57:31
Super vychytávka, jen mám jiný problém, jak zabránit spamům v registraci v miniBB? Zkoušel jsem použít onu fintu a vložil jsem script do souboru "user_dataform.html", ale spamy se stále registrují. Zřejmě je nutné vložit "if ( (isset($_POST['postText'])) && ((!isset($_POST['robot'])) || ($_POST['robot']!='4') ) ) die ('Neoprávněný přístup.'); " také do jiného souboru, nevím však kde. Umíte mi někdo poradit? :-)
|
||
Časová prodleva: 2 měsíce
|
|||
labib Profil * |
#14 · Zasláno: 20. 5. 2007, 12:22:43
Ahoj, ten script co jsi popsal. Nasadil jsem ho. To ze se nema nic zobrazovat je dobre nebo spatne?
|
||
souki Profil |
#15 · Zasláno: 20. 5. 2007, 12:24:24
labib
Dobře :) Rsep funguje to nebo ne? |
||
Časová prodleva: 2 měsíce
|
|||
hula Profil * |
#16 · Zasláno: 6. 7. 2007, 20:50:48
už tři hodiny je moje fórum bez spamu, bojim, bojim, ale vypadá to slibně. díky moc.
|
||
Časová prodleva: 2 měsíce
|
|||
A Profil * |
#17 · Zasláno: 29. 8. 2007, 13:52:00
Tak to je parada :)
|
||
Časová prodleva: 2 měsíce
|
|||
spammer Profil * |
#18 · Zasláno: 30. 10. 2007, 18:27:07
a jaka je tu ochrana?
|
||
spammer Profil * |
Jinak tady je ochrana pro mini BB přes opisování obrázku - tzv. kapča :-))
http://www.minibb.net/captcha.html Jakub |
||
djlj Profil |
#20 · Zasláno: 30. 10. 2007, 18:31:55
spammer
Přečti si pozorně (určitě pozorněji než teď) výše uvedené příspěvky. |
||
spammer Profil * |
#21 · Zasláno: 30. 10. 2007, 18:36:07
spammer
Přečti si pozorně (určitě pozorněji než teď) výše uvedené příspěvky. Nerozumím ti.... Proč si mám číst něčí nefunkční návod když do BB existuje modul. |
||
djlj Profil |
spammer
Je to funkční, jak je jistě vidno i z této diskuse. A mimochodem si zkus přečíst i pravidla diskuse, především tento bod: Nevkládejte do svých textů podpisy ani podpisové odkazy. — Moderátor (M): Již jsem příspěvky, na něž upozorňuješ, umravnil. — |
||
Časová prodleva: 6 měsíců
|
|||
ja Profil * |
#23 · Zasláno: 24. 4. 2008, 18:02:01
diky, jede to :-)
|
||
Časová prodleva: 4 měsíce
|
|||
Bubák Profil |
#24 · Zasláno: 29. 8. 2008, 15:53:44
„přes opisování obrázku - tzv. kapča :-))“
Obrázková CAPTCHA je jedna z mnoha, "popularutu" si zasloužila tím, že je někdy čitelnější pro proboty, než pro lidi. |
||
prochazka.zde.cz Profil * |
#25 · Zasláno: 29. 8. 2008, 19:17:29
existuje i jina moznost nez pouziti captcha, javascripru a ruzne jine metody nez neco ppisovat?
|
||
Časová prodleva: 23 dní
|
|||
diskutujici Profil * |
#26 · Zasláno: 21. 9. 2008, 10:48:16
„Super vychytávka, jen mám jiný problém, jak zabránit spamům v registraci v miniBB? “
Potřebuji vyřešit stejný problém, do fóra mi už roboti, také díky tomuto skriptu, spam nepřidávají, ale stále se registrují a bohužel je jich hodně. Netušíte někdo, jak na to? |
||
Časová prodleva: 1 rok
|
|||
jajaaaa Profil * |
#27 · Zasláno: 15. 12. 2009, 14:39:32
Ahoj, resim stejny problem. Pouziti placeneho pluginu mi neprijde vhodne. Nechci navstevniky otravovat opisovanim cehokoli, proto jsem se rozhodl, ze do formulare pridam dalsi kolonku, kde uzivatel bude muset vyplnit aktualni rok. Pokud bude mit zapnuty JS, kolonku skryju a doplnim za nej. To by problem nebyl. Jen nejsem schopny se zorientovat v kodu minibb a nevim kam zapsat kontrolu zadaneho cisla a pokud nebude spravne, tak zastavit posilani a zobrazit znovu formular.
Poradi nekdo? Diky |
||
Chamurappi Profil |
#28 · Zasláno: 15. 12. 2009, 14:53:57
Reaguji na jajaaau:
Na této diskusi je kontrola někde na začátku souboru bb_func_pthread.php. if ($HTTP_POST_VARS['robot'] != "24") die ('Nevyplnili jste správně políčko na ochranu proti spamu.'); |
||
jajaaaa Profil * |
#29 · Zasláno: 16. 12. 2009, 09:02:53
no jo, ale kdyz to udelam pomoci die, tak pri nespravnem zadani to skonci cele chybovou hlaskou, ale me jde o to, aby se formular zobrazil znovu jen s varovanim.
|
||
Majkl578 Profil |
#30 · Zasláno: 16. 12. 2009, 10:38:36
[#28] Chamurappi
Pokud by to chtěl jajaaaa použít, doporučuji použít $_POST, $HTTP_POST_VARS je zastaralé. [#29] jajaaaa Šlo by to řešit buď nějakou proměnnou, která by informovala o chybě nebo třeba vyhozením výjimky a zachycením na správném místě. Možností je několik, vhodnost každého záleží na struktuře aplikace (validace). |
||
Časová prodleva: 14 let
|
0