Skip to content

Commit 1a535f2

Browse files
author
Jacob Middag
committed
Use nonces in ajax calls
1 parent 48035a9 commit 1a535f2

3 files changed

Lines changed: 14 additions & 6 deletions

File tree

src/class-tiny-notices.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ public function remove($name) {
9595
}
9696

9797
public function dismiss() {
98+
check_ajax_referer('tiny-compress');
99+
98100
if (empty($_POST['name'])) {
99101
echo json_encode(false);
100102
exit();

src/class-tiny-plugin.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ public function enqueue_scripts($hook) {
6060
wp_register_script($handle, plugins_url('/scripts/admin.js', __FILE__),
6161
array(), self::plugin_version(), true);
6262

63-
wp_localize_script($handle, 'tinyCompressL10n', array(
64-
'bulkAction' => self::translate('Compress all uncompressed sizes'),
63+
// Wordpress < 3.3 does not handle multi dimensional arrays
64+
wp_localize_script($handle, 'tinyCompress', array(
65+
'nonce' => wp_create_nonce('tiny-compress'),
66+
'L10nBulkAction' => self::translate('Compress all uncompressed sizes'),
6567
));
6668
wp_enqueue_script($handle);
6769
}
@@ -90,15 +92,17 @@ public function compress_attachment($metadata, $attachment_id) {
9092
}
9193

9294
public function compress_image() {
93-
$id = $_POST['id'];
95+
check_ajax_referer('tiny-compress');
96+
9497
if (!current_user_can('upload_files')) {
9598
echo self::translate("You don't have permission to work with uploaded files") . '.';
9699
exit();
97100
}
98-
if (!$id) {
101+
if (empty($_POST['id'])) {
99102
echo self::translate("Not a valid media file") . '.';
100103
exit();
101104
}
105+
$id = intval($_POST['id']);
102106
$metadata = wp_get_attachment_metadata($id);
103107
if (!is_array($metadata)) {
104108
echo self::translate("Could not find metadata of media file") . '.';

src/scripts/admin.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
element.closest('td').find('.spinner').css('display', 'inline')
77
jQuery.post(
88
ajaxurl, {
9+
_wpnonce: tinyCompress.nonce,
910
action: 'tiny_compress_image',
1011
id: element.data('id') || element.attr('data-id')
1112
}, function (response) {
@@ -27,8 +28,8 @@
2728
jQuery('button.tiny-compress').attr('disabled', null)
2829
}
2930

30-
jQuery('<option>').val('tiny_bulk_compress').text(tinyCompressL10n.bulkAction).appendTo('select[name="action"]')
31-
jQuery('<option>').val('tiny_bulk_compress').text(tinyCompressL10n.bulkAction).appendTo('select[name="action2"]')
31+
jQuery('<option>').val('tiny_bulk_compress').text(tinyCompress.L10nBulkAction).appendTo('select[name="action"]')
32+
jQuery('<option>').val('tiny_bulk_compress').text(tinyCompress.L10nBulkAction).appendTo('select[name="action2"]')
3233
}
3334

3435
if (adminpage === "options-media-php") {
@@ -40,6 +41,7 @@
4041
element.attr('disabled', 'disabled');
4142
jQuery.post(
4243
ajaxurl, {
44+
_wpnonce: tinyCompress.nonce,
4345
action: 'tiny_dismiss_notice',
4446
name: element.data('name') || element.attr('data-name')
4547
}, function (response) {

0 commit comments

Comments
 (0)