Explorar o código

Nonce check can be disabled (for embedding into applications that restart frequently)

bel %!s(int64=11) %!d(string=hai) anos
pai
achega
ae7ff2273c
Modificáronse 1 ficheiros con 5 adicións e 1 borrados
  1. 5 1
      src/civetweb.c

+ 5 - 1
src/civetweb.c

@@ -2758,7 +2758,10 @@ static int parse_auth_header(struct mg_connection *conn, char *buf,
         }
     }
 
-    /* Convert the nonce from the client to a number and check it */
+#ifndef NO_NONCE_CHECK
+    /* Convert the nonce from the client to a number and check it. */
+    /* Server side nonce check is valuable in all situations but one: if the server restarts frequently, 
+       but the client should not see that, so the server should accept nonces from previous starts. */
     nonce = strtoul(ah->nonce, &s, 10);
     if ((s == NULL) || (*s != 0)) {
         return 0;
@@ -2771,6 +2774,7 @@ static int parse_auth_header(struct mg_connection *conn, char *buf,
     if (nonce>=conn->ctx->start_time+conn->ctx->nonce_count) {
         return 0;
     }
+#endif
 
     /* CGI needs it as REMOTE_USER */
     if (ah->user != NULL) {