2008-09-04 21:11:28 -04:00
|
|
|
! Copyright (C) 2008 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
USING: accessors kernel http.server http.server.filters
|
2008-11-24 21:26:11 -05:00
|
|
|
http.server.responses furnace.utilities ;
|
2008-06-13 23:05:41 -04:00
|
|
|
IN: furnace.referrer
|
|
|
|
|
|
|
|
TUPLE: referrer-check < filter-responder quot ;
|
|
|
|
|
|
|
|
C: <referrer-check> referrer-check
|
|
|
|
|
|
|
|
M: referrer-check call-responder*
|
|
|
|
referrer over quot>> call
|
|
|
|
[ call-next-method ]
|
|
|
|
[ 2drop 403 "Bad referrer" <trivial-response> ] if ;
|
|
|
|
|
|
|
|
: <check-form-submissions> ( responder -- responder' )
|
2008-09-23 04:34:35 -04:00
|
|
|
[ post-request? [ same-host? ] [ drop t ] if ] <referrer-check> ;
|