Skip to content

Roadmap

Pipeline upgrade

Add auto style checkers and integration checkers, which ones?

  • travisci?
  • styleci?
  • laravel pint?
  • psalm?

Managment of blocks/events

Frontend API:

  • List of blocks
  • List of events
  • mark/unmark block permanent
  • Documentation + registering routes
  • Generic response wrapper

Frontend Views

  • Show current blocks
  • Show blocked users/ ips
  • Show events
  • mark/unmark block permanent
  • get reset key
  • Documentation

Email Notifications

  • Send the user an email when they are blocked (only on first block of the day). Maybe cache a value with a decay, that once released a new email can be sent ?
  • Send admin Digest of blocked ip per day/ slack

File Upload With Unit Tests

How to determine if a file is an attempt of malicious request?

  • type not equal to extension
  • wrong extensions/ double extensions
  • filename invalid / nullbyte
  • Checkout my own upload checker (laravelvalidation/upload) to see possible malicious detection points

RequestSize Config

  • Allow fields to be excluded from the requestsize wire
  • Specify size per field
  • Add additional test for these specs

GeoFencing and GeoData

  • Test all integrations with lookup services
  • Once IP is looked up, store in database so no subsequent calls needed (speed and costs reduction). Store IP + data in separate table and just reference in log/block
  • Collect location data from offline database https://www.maxmind.com/en/home
  • Store locationdata in database, but use different async job to update the database with locationdata

Unit Test

Creating more unit and feature tests like:

  • globally ignore certain cookies
  • globally ignore certain headers
  • Agent
  • Bot
  • Referer
  • honeypot
  • php
  • swear
  • rfi
  • bot
  • throttletripped

How to summarize logs to a block / how to make teh block depended on the violations

Currently all violations scores are added to 1 large sum. This is then used to block or no block Would be nice to block hardcore (sqli) or softcore (login) and show different views/messages/emails How to spec what to add together to determine a block type

Review config comments

Are they still up to date with the docs

PSALM Upgrade and Fix

<UndefinedThisPropertyFetch errorLevel="info" />
<UndefinedThisPropertyAssignment errorLevel="info" />
<UndefinedInterfaceMethod errorLevel="info" />
<UnusedParam errorLevel="info" />
<PossiblyNullReference errorLevel="info" />
<PossiblyNullArgument errorLevel="info" />
<PossiblyNullPropertyFetch errorLevel="info" />

<UndefinedPropertyFetch errorLevel="info" />

Released under the MIT License.