Article View: pl.comp.www
Article #396273Re: Jak pokazać ścieżkę dostępu do dokumentu?
From: porneL
Date: Mon, 09 Mar 2009 20:22
Date: Mon, 09 Mar 2009 20:22
56 lines
4946 bytes
4946 bytes
On Mon, 09 Mar 2009 10:58:31 -0000, Marek <marek1967@spam.interia.pl> wrote:
> Więc nie robię na opak :-) Ponadto chyba każdy submit formularza ma na
> celu mieć efekt uboczny?
Zazwyczaj tak. Wyjątkiem jest wyszukiwanie, zmiana widoku (jeśli masz pole wyboru z kryteriami sortowania albo ilością elementów na stronie), wybieranie opcji przy ściąganiu programów (np. radio buttony z wersją językową programu), itp.
> Mam walidację lecz to za mało. Nie wolno np. pola nazwać "email" bo boty
> spamowe wiedzą wtedy co tam wpisać. Pole powinno nazwyać się "dupa" lub
> coś w tym stylu. Pozostałem pola to imię, nazwisko, treść - więc nie ma
> czego walidować.
Miałem na myśli walidację danych (czy pole przeznaczone na e-mail, nawet jak nazywa się dupa, zawiera coś przypominającego e-mail).
Jeśli przejmujesz się tak bardzo spamem, to pola na imie i nazwisko też można sprawdzać pod kątem spamu - nie słyszałem, żeby ktoś miał na nazwisko "http://...", a pewnie niejednego bota podkusi wpakowanie tam linku.
>> Powiedziałem dobrym botom. Te złe i tak będą ci łaziły po wszystkich
>> formularzach - GET (harvestery) i POST (spamboty).
>
> Hmmm... założyłem, że się przejęzyczyłeś. A co to zmieni jeśli złe i tak
> będą spamowały - jak sam napisałeś? Dobre przecież nie są źródłem spamu.
No właśnie nic nie zmieni. Wcześniej pisałeś, że spam dyktuje twój wybór GET/POST. Tłumaczę, że przed spamem i nadużyciami trzeba się bronić w obu przypadkach, więc nie powinno to być czynnikiem w wyborze między GET/POST.
> Ok... może przykład. Jestem na karcie produktu. Dodaję produkt do
> koszyka (np. POST), w koszyku aktualizuję ilość (POST) klikam wstecz i
> co dostaję? Z pewnością nie stronę produktową lecz komunikat o próbie
> submitu formularza.
W przeglądarkach obsługujących HTTP poprawnie dostajesz poprzednią stronę bez pytania i bez ponownego POST :)
W tych, które mylą cache z historią musisz użyć sztuczki z POST + status 303, żeby się głupio nie pytały.
> Hmm.. ciekawe. Poeksperymentuję bo faktycznie nie pomyślałem o takim
> podejściu. Mam jednakże pewną wątpliwość... a co jeśli naszą intencją
> jest pozostanie na tej samej stronie? Przykładowo taki przypadek ma
> miejsce przy aktualizacji ilości w koszyku albo akceptacji kryteriów w
> wyszukiwarce.
Wyszukiwarka nie powinna używać POST. Do wyszukiwarki używaj GET. Wtedy niedoróbka IE/FF nie przeszkadza.
W przypadku koszyka możesz przekierować spowrotem na stronę koszyka, ale pod warunkiem, że strona koszyka jest niecache'owalna (nigdy nie wysyłasz jej bez Cache-Control: no-cache). Alternatywnie możesz przekierować na koszyk?wersja=123456
> Tak, ja nawet dołączam ID transakcji - nie tylko jest wtedy unikalny
> lecz nie pozwala na celowe powtórzenie operacji. Każdy moduł programowy
> CMS'a, który przetwarza dane z formularzy bada zgodność ID transakcji z
> formularza z poprzednio obowiązującym i dopiero wtedy traktuje dane jako
> uwierzytelnione. Każde przeładowanie = nowy ID.
Tak na marginesie - obsługujesz jakoś ładnie dwukrotne wysłanie formularza? (tzn. nie wielkim błędem, tylko pokazywaniem wyniku pierwszego wysłania?)
Problem może się zdarzyć jak ktoś dwukliknie submit albo sieć nawali zanim użytkownik dostanie odpowiedź na pierwsze wysłanie formularza i umyślnie wyśle go jeszcze raz. Jeśli po prostu odrzucasz użytą transakcję, to operacja wykona się pomyślnie (za pierwszym razem), ale użytkownik zobaczy błąd (zobaczy tylko drugi raz) i pomyśli, że się nie wykonała.
--
http://pornel.net
this.author = new Geek("porneL");
Technical Details
Message-ID:
<op.uqjj73yfutk0y1@aimac.local>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<gor2lh$feg$1@achot.icm.edu.pl> <gor893$ook$1@nemesis.news.neostrada.pl> <gor9bq$oip$1@achot.icm.edu.pl> <gorb3n$a5b$1@atlantis.news.neostrada.pl> <gorvec$t65$1@achot.icm.edu.pl> <op.uqd2icdoutk0y1@aimac.local> <gotpj5$2v3$1@achot.icm.edu.pl> <op.uqfg6ae2utk0y1@aimac.local> <gougar$te3$1@achot.icm.edu.pl> <op.uqfuuky8utk0y1@aimac.local> <gp2sop$gqu$1@achot.icm.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: porneL <niusy4@pornel.net> Newsgroups: pl.comp.www Subject: Re: Jak pokazać ścieżkę dostępu do dokumentu? Date: Mon, 09 Mar 2009 20:22:41 -0000 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 57 Message-ID: <op.uqjj73yfutk0y1@aimac.local> References: <gor2lh$feg$1@achot.icm.edu.pl> <gor893$ook$1@nemesis.news.neostrada.pl> <gor9bq$oip$1@achot.icm.edu.pl> <gorb3n$a5b$1@atlantis.news.neostrada.pl> <gorvec$t65$1@achot.icm.edu.pl> <op.uqd2icdoutk0y1@aimac.local> <gotpj5$2v3$1@achot.icm.edu.pl> <op.uqfg6ae2utk0y1@aimac.local> <gougar$te3$1@achot.icm.edu.pl> <op.uqfuuky8utk0y1@aimac.local> <gp2sop$gqu$1@achot.icm.edu.pl> NNTP-Posting-Host: cpc1-acto1-2-0-cust35.4-2.cable.virginmedia.com Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1236630163 5809 82.28.217.36 (9 Mar 2009 20:22:43 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 9 Mar 2009 20:22:43 +0000 (UTC) X-User: pornelspam User-Agent: Opera Mail/10.00 (MacIntel) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit