paraxial 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51fd89540b5bb3bea0b1487cc67e255c6b8597f87215ff70256370a1499b78c9
4
- data.tar.gz: 863d248900cb324777b4bfe11dc7bd0dfffd9bc4766642c2d63502b2804fbfe2
3
+ metadata.gz: 0b27974dfe877ee32f7c49718c18916c39c6d13dff2b1fd0087b8da359207713
4
+ data.tar.gz: d93d8ab5654d522f8093f998afa5f65fc77c7abc363bd89c377dccca8b140bb3
5
5
  SHA512:
6
- metadata.gz: 33df2b745e8cc43b41a4bb36cff045039fc8db0d807676d025d38553ecaf39a9f2fde3b26aafe11f12b9ddd1ff5560c18146b7d481a695c14184a6943bbf85cb
7
- data.tar.gz: be45476d228f23b7dc49436a97802c284abcaa6561f76ab49b5bfa1a729ecdaefb3d8f84d043737920eb2b72411e40eb84e42eec8eba1e433a0b801dce7f7df9
6
+ metadata.gz: 0e0e45aece62762e91542544721c3ff73ee9c0de01ee0215793ae2f4120cd9b21de34a392c0ab805805720e7955befb8a99d9a6ffa9a57571d95c73d5ebed34c
7
+ data.tar.gz: 242039eabbd12a31d0c5e48f0c7b63a18b559ec5f49d867ff7dabcd6fe81398ba8fb8e47f08cb6c1c43f3beecd94e71e62eff014acc83afb2ae718ce1864b2b3
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paraxial
4
- VERSION = '1.2.0'
4
+ VERSION = '1.3.0'
5
5
  end
data/lib/paraxial.rb CHANGED
@@ -21,17 +21,26 @@ module Paraxial
21
21
  class Error < StandardError; end
22
22
  # Your code goes here...
23
23
 
24
- class Defense
25
- def initialize(app)
24
+ class PHPAttackMiddleware
25
+ VALID_LENGTHS = [:hour, :day, :week, :infinity]
26
+
27
+ def initialize(app, length: :hour)
26
28
  @app = app
29
+ if VALID_LENGTHS.include?(length)
30
+ @ban_length = length
31
+ else
32
+ puts "[Paraxial] PHPAttackMiddleware invalid ban length: #{length}, using hour"
33
+ @ban_length = :hour
34
+ end
27
35
  end
28
36
 
29
37
  def call(env)
30
- request_path = env['PATH_INFO']
38
+ request = ActionDispatch::Request.new(env)
31
39
 
32
- if request_path.end_with?('.php')
40
+ if request.path.downcase.end_with?('.php')
41
+ Paraxial.ban_ip_msg(request.remote_ip, @ban_length, "Sent request ending in .php")
33
42
  # Return a 404 response if the request path ends with '.php'
34
- [404, { 'Content-Type' => 'text/plain' }, ['Not Found from Paraxial.io']]
43
+ [404, { 'Content-Type' => 'text/plain' }, ['Not Found']]
35
44
  else
36
45
  # Pass the request to the next middleware or the application
37
46
  @app.call(env)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paraxial
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Lubas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-07 00:00:00.000000000 Z
11
+ date: 2024-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec