| @@ -223,8 +223,9 @@ | ||
| 223 | 223 | |
| 224 | 224 | /** |
| 225 | 225 | * Process Register Form |
| 226 | 226 | * |
| 227 | + * @since 4.16.6 Require a valid nonce before processing registration. | |
| 227 | 228 | * @since 2.0 |
| 228 | 229 | * |
| 229 | 230 | * @param array $data Data sent from the register form |
| 230 | 231 | * |
| @@ -239,8 +240,12 @@ | ||
| 239 | 240 | if ( empty( $_POST['give_register_submit'] ) ) { |
| 240 | 241 | return false; |
| 241 | 242 | } |
| 242 | 243 | |
| 244 | + if ( empty( $data['give_register_nonce'] ) || ! wp_verify_nonce( $data['give_register_nonce'], 'give-register-nonce' ) ) { | |
| 245 | + return false; | |
| 246 | + } | |
| 247 | + | |
| 243 | 248 | /** |
| 244 | 249 | * Fires before processing user registration. |
| 245 | 250 | * |
| 246 | 251 | * @since 1.0 |
| @@ -292,15 +297,17 @@ | ||
| 292 | 297 | if ( empty( $errors ) ) { |
| 293 | 298 | |
| 294 | 299 | $redirect = apply_filters( 'give_register_redirect', $data['give_redirect'] ); |
| 295 | 300 | |
| 296 | - give_register_and_login_new_user( array( | |
| 297 | - 'user_login' => $data['give_user_login'], | |
| 298 | - 'user_pass' => $data['give_user_pass'], | |
| 299 | - 'user_email' => $data['give_user_email'], | |
| 300 | - 'user_registered' => date( 'Y-m-d H:i:s' ), | |
| 301 | - 'role' => get_option( 'default_role' ), | |
| 302 | - ) ); | |
| 301 | + give_register_and_login_new_user( | |
| 302 | + array( | |
| 303 | + 'user_login' => $data['give_user_login'], | |
| 304 | + 'user_pass' => $data['give_user_pass'], | |
| 305 | + 'user_email' => $data['give_user_email'], | |
| 306 | + 'user_registered' => date( 'Y-m-d H:i:s' ), | |
| 307 | + 'role' => get_option( 'default_role' ), | |
| 308 | + ) | |
| 309 | + ); | |
| 303 | 310 | |
| 304 | 311 | wp_redirect( $redirect ); |
| 305 | 312 | give_die(); |
| 306 | 313 | } |
| @@ -342,11 +349,14 @@ | ||
| 342 | 349 | 'remoteip' => $_POST['give_ip'], |
| 343 | 350 | ); |
| 344 | 351 | |
| 345 | 352 | if ( ! empty( $args['response'] ) ) { |
| 346 | - $request = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', array( | |
| 347 | - 'body' => $args, | |
| 348 | - ) ); | |
| 353 | + $request = wp_remote_post( | |
| 354 | + 'https://www.google.com/recaptcha/api/siteverify', | |
| 355 | + array( | |
| 356 | + 'body' => $args, | |
| 357 | + ) | |
| 358 | + ); | |
| 349 | 359 | if ( ! is_wp_error( $request ) || 200 == wp_remote_retrieve_response_code( $request ) ) { |
| 350 | 360 | |
| 351 | 361 | $response = json_decode( $request['body'], true ); |
| 352 | 362 | |