2014-09-16 18 views
5

Każda nowa strona z plonem jako/contact-info/url z ogólnym formularzem e-mail.Jak usunąć stronę z informacjami kontaktowymi ze strony internetowej?

Spamboty mogą łatwo znaleźć to i użyć go do spamowania webmastera za pomocą złośliwych wiadomości e-mail (należy zwrócić uwagę, że temat można ustawić w wiadomości e-mail).

Ten stary wątek http://plone.293351.n2.nabble.com/modify-or-disable-site-contact-form-td7258555.html sugeruje, że możesz po prostu zaktualizować szablon tak, aby był pustą stroną. Jednak to nie wystarczy, aby zapobiec spamowi.

wget http://localhost:8080/contact-info --post-data "sender_fullname=d&[email protected]&subject=d&message=d&form.submitted=1" 

Nadal będzie wysyłać wiadomości e-mail w module obsługi formularza.

Jak całkowicie wyłączyć obsługę formularza?

edit: widzę, można zmodyfikować skrypt obsługi formularza na stronie:

/portal_skins/plone_form_scripts/send_feedback_site/manage_main 
/portal_skins/custom/contact-info 

Aby wygenerować niestandardowy skrypt uchwytu i zastąpić domyślne akcje. Jednak to naprawdę nie usuwa strony, po prostu sprawia, że ​​nic nie robi.

Odpowiedz

7

To, co musisz dostosować, nie jest szablonem, ale punktem końcowym jest skrypt send_feedback_site.

Wymienić cały kod skryptu z:

from zExceptions import NotFound 
raise NotFound() 

Albo prawdopodobnie Unauthorized jest lepsza.

+0

Czy ma znaczenie, który z nich dostosujesz? oba są w pewnym sensie hackowaniem, ponieważ plon powinien zapewnić odpowiednie rozwiązanie. – Mathias

+0

IMO to ma znaczenie. Jeśli dostosujesz tylko formularz 'contact-info', bot może wywołać bezpośrednio skrypt' send_feedback_site'. Niezależnie od tego: tak ... Plone musi obsłużyć to natywnie (lub możesz użyć collective.captchacontactinfo) –

+0

To prawda +1 – Mathias

0

Jeśli używasz nginx lub apache przed swoją witryną Plone, możesz napisać regułę przekierowania dla tego adresu URL. Można go następnie dodać do "standardowego" rozszerzenia, tak aby zawsze istniało dla nowych witryn.