resque-cleaner 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 672f128faacd1d6be65bc4e7481b335252e0ef8cd1e09c5fef5399cc1d545ae0
4
- data.tar.gz: d33de95d0ac35c3ef3ca116cdbf10a483b4a090356db1ad40674823436a613d4
3
+ metadata.gz: '066688d9fed1a436633e25bf6509017a30402383a8e60bd0bdd5f31f288fdc13'
4
+ data.tar.gz: 99d76dd63356b20f7fd625cc9b9bb3decafa307d2ca854c80be8fab06aa840af
5
5
  SHA512:
6
- metadata.gz: 42d80da673a4318005cfd38262a2969d5ddb180ed187c2948c9c5f88a7a49ffcb4b77f9eebb803d98c175fa6be8f048df850bc6a4a3263b896e87454d786659d
7
- data.tar.gz: 8857ad8aac4f722298428ed97f7c73c2893259848d3e8f6b1777b64d9d0db6fdafc0f9ba0c22cf60a2cf8bcbdd9e046fad5d45b0c78cb74fe24c7bcdc5735ac1
6
+ metadata.gz: 993e05d62bd18667e0de817e7386e7c3a5dba6543399231fd7bb0fcc0f27243a3fc19257c6f3d3d32ca08c4824ddce8b4c03152f1b30c5cdeeb859938d3c2630
7
+ data.tar.gz: d889dbf7058a33517f3048a36ba856f4fcb76177af3cd9738ca16fb938869f51027a8ef8737f0b767be39d4e4d75606e8c58ca1410e8698746008362238e797a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.5.1 (2026-10-19)
2
+
3
+ * Security: reject cross-site POSTs to Cleaner routes, for apps on resque < 3.2 (#66)
4
+
1
5
  ## 0.5.0 (2026-10-12)
2
6
 
3
7
  * Ruby 3+ support: fix rendering the Cleaner page (#53)
data/README.md CHANGED
@@ -31,7 +31,7 @@ Requires Ruby 3.2+ and Resque 2.0+.
31
31
  Resque-Web integration
32
32
  ----------------------
33
33
 
34
- ![Screen 1](https://github.com/ono/resque-cleaner/raw/master/misc/resque-cleaner-main.png)
34
+ ![Screen 1](https://github.com/ono/resque-cleaner/raw/main/misc/resque-cleaner-main.png)
35
35
  ![Screen 2](misc/resque-cleaner-list-with-regex.png)
36
36
 
37
37
 
@@ -160,6 +160,7 @@ module ResqueCleaner
160
160
  end
161
161
 
162
162
  post "/cleaner_exec" do
163
+ halt 403 if cross_site_request?
163
164
  load_cleaner_filter
164
165
  build_urls
165
166
 
@@ -190,6 +191,7 @@ module ResqueCleaner
190
191
  end
191
192
 
192
193
  post "/cleaner_stale" do
194
+ halt 403 if cross_site_request?
193
195
  cleaner.clear_stale
194
196
  redirect url_path(:cleaner)
195
197
  end
@@ -203,6 +205,14 @@ module ResqueCleaner
203
205
  @cleaner
204
206
  end
205
207
 
208
+ def cross_site_request?
209
+ fetch_site = request.env["HTTP_SEC_FETCH_SITE"]
210
+ return !%w[same-origin none].include?(fetch_site) if fetch_site
211
+
212
+ origin = request.env["HTTP_ORIGIN"]
213
+ origin && origin.sub(%r{\A[a-z][a-z0-9+.-]*://}i, "") != request.host_with_port
214
+ end
215
+
206
216
  def load_cleaner_filter
207
217
  @from = params[:f]=="" ? nil : params[:f]
208
218
  @to = params[:t]=="" ? nil : params[:t]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-cleaner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuya Ono
@@ -50,7 +50,7 @@ homepage: https://github.com/ono/resque-cleaner
50
50
  licenses:
51
51
  - MIT
52
52
  metadata:
53
- changelog_uri: https://github.com/ono/resque-cleaner/blob/master/CHANGELOG.md
53
+ changelog_uri: https://github.com/ono/resque-cleaner/blob/main/CHANGELOG.md
54
54
  source_code_uri: https://github.com/ono/resque-cleaner
55
55
  rubygems_mfa_required: 'true'
56
56
  rdoc_options: