]> granicus.if.org Git - apache/commitdiff
And check the nonce, taking care to ensure that the
authorJim Jagielski <jim@apache.org>
Thu, 13 Jan 2011 15:59:25 +0000 (15:59 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 13 Jan 2011 15:59:25 +0000 (15:59 +0000)
form actually specified a balancer.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1058630 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/mod_proxy_balancer.c

index e7566051c79502854b587843cd58cf0d3db4308a..884c1e8ea96805cb41af3d966f6b73c9acd11f61 100644 (file)
@@ -849,15 +849,20 @@ static int balancer_handler(request_rec *r)
         wsel = ap_proxy_get_worker(r->pool, bsel, conf, name);
     }
 
-#if 0
+
     /* Check that the supplied nonce matches this server's nonce;
      * otherwise ignore all parameters, to prevent a CSRF attack. */
-    if (*balancer_nonce &&
-        ((name = apr_table_get(params, "nonce")) == NULL
-         || strcmp(balancer_nonce, name) != 0)) {
+    if (!bsel ||
+        (*bsel->nonce &&
+         (
+          (name = apr_table_get(params, "nonce")) == NULL ||
+          strcmp(bsel->nonce, name) != 0
+         )
+        )
+       ) {
         apr_table_clear(params);
     }
-#endif
+
     /* First set the params */
     /*
      * Note that it is not possible set the proxy_balancer because it is not