diff --git a/pasterack.rkt b/pasterack.rkt index cbc02f1..02192e5 100644 --- a/pasterack.rkt +++ b/pasterack.rkt @@ -437,6 +437,17 @@ )))) (send/suspend/dispatch response-generator)) +(define (check-paste-check-bindings request) + (define bs (request-bindings request)) + (if (and (andmap (λ (b) (exists-binding? b bs)) + '(name g-recaptcha-response paste fork-from)) + (implies (exists-binding? 'irc bs) + (exists-binding? 'nick bs))) + (check-paste request) + (response/xexpr + `(html () + (head ()) + (body () "ERROR: bad paste" ,(mk-link pastebin-url "Go Back")))))) (define (check-paste request) (define bs (request-bindings request)) (define name (extract-binding/single 'name bs)) @@ -750,6 +761,7 @@ (define-values (do-dispatch mk-url) (dispatch-rules [("") serve-home] + [("rest") #:method "post" check-paste-check-bindings] [("pastes" (string-arg)) serve-paste] [("tests") serve-tests] [("bacon") serve-bacon]