#11015 closed enhancement (wontfix)
Admin Ajax actions should pass relevant global variables
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | normal | Version: | 2.9 |
| Component: | JavaScript | Keywords: | admin-ajax has-patch |
| Focuses: | Cc: |
Description
The wp_ajax_* action hooks should pass the global $_REQUEST variable so that callbacks can reduce the number of global objects they have to be aware of and so that they can get the data in a state prior to being modified by anything else.
Attachments (1)
Change History (7)
#2
follow-up:
↓ 3
@
16 years ago
-1. Don't see the benefit in doing this. If you have a function that accepts data from different contexts, you would always want to filter what comes from $_REQUEST.
#3
in reply to:
↑ 2
@
16 years ago
Replying to azaozz:
-1. Don't see the benefit in doing this.
The benefit is
- You don't have to access global objects in your callback
- You can be agnostic about whether the "action" is from POST or GET.
- Testing is more straightforward.
- There's no harm.
This helps avoid having to check whether "action" is set in POST or GET, and it allows code reuse: I can use the same callback in different places.
#4
@
16 years ago
- Milestone 2.9 deleted
- Resolution set to wontfix
- Status changed from new to closed
Strong -1
It should be obvious inside a function when you are accessing a superglobal.
Passing $_REQUEST as a argument hides the use of the superglobal in the function.
That makes it much easier to audit code and identify where user supplied data is/isnt being trusted.
This ticket was mentioned in PR #11100 on WordPress/wordpress-develop by @adamsilverstein.
6 days ago
#5
## Summary
Builds on #11015. Adds dimension validation to the sideload endpoint.
- Adds
validate_image_dimensions()private method toWP_REST_Attachments_Controller - Validates uploaded image dimensions against expected size constraints in the
wp/v2/media/<id>/sideloadendpoint - Moves
wp_getimagesize()call earlier insideload_item()to validate before metadata handling
### Validation rules:
- 'original' size: must match original attachment dimensions exactly
- 'full' and 'scaled' sizes: requires positive dimensions only
- Regular sizes: dimensions must not exceed registered size maximums (with 1px tolerance for rounding differences)
## Test plan
- [x]
test_sideload_item_rejects_oversized_dimensions— uploads 640x480 image as thumbnail (150x150), expects 400 withrest_upload_dimension_mismatch - [x]
test_sideload_item_accepts_valid_dimensions— uploads 50x50 image as thumbnail, expects 200
Corresponding Gutenberg PR: https://github.com/WordPress/gutenberg/pull/74903
🤖 Generated with Claude Code
@adamsilverstein commented on PR #11100:
4 days ago
#6
This worked well in my manual testing.
Why not 2.9. It's simple and there are no backwards-compatibility issues. :-)