CIDRAM: Classless Inter-Domain Routing Access Manager.

Overview

Join the chat at https://gitter.im/CIDRAM/Lobby v1: PHP >= 5.4.0 v2: PHP >= 7.2.0 License: GPL v2 PRs Welcome

What is CIDRAM?

CIDRAM (Classless Inter-Domain Routing Access Manager) is a PHP script designed to protect websites by blocking requests originating from IP addresses regarded as being sources of undesirable traffic, including (but not limited to) traffic from non-human access endpoints, cloud services, spambots, scrapers, etc. It does this by calculating the possible CIDRs of the IP addresses supplied from inbound requests and then attempting to match these possible CIDRs against its signature files (these signature files contain lists of CIDRs of IP addresses regarded as being sources of undesirable traffic); If matches are found, the requests are blocked.


Features:

  • Licensed as GNU General Public License version 2.0 (GPLv2).
  • Easy to install, easy to customise, easy to use.
  • Works for any system with PHP+PCRE installed, regardless of OS (PHP+PCRE required).
  • Fully configurable based on your needs.
  • Ideal solution for websites and forum systems using shared hosting services.
  • Does NOT require shell access.
  • Does NOT require administrative privileges.
  • Good, strong, stable support base.

Documentation:

[CONTRIBUTING.md] Want to help?


Current major version development status:

Stage reached Major version v0 v1-v2 v3
Pre-Alpha
- Exploring early concepts/ideas. No code written/available yet.
Alpha
- Branched, but unstable. Not production-ready (high risk if used).
Beta
- Branched, but unstable. Not production-ready (low risk if used).
Stable
- First production-ready version has been tagged/released.
Mature
- Multiple stable versions/releases exist.
Locked
- Still maintained, but new features won't be implemented anymore.
EoL/Dead
- Not maintained anymore. If possible, stop using, and update ASAP.

Last Updated: 10 June 2020 (2020.06.10).

Comments
  • CIDRAM log entries with no IPs

    CIDRAM log entries with no IPs

    Hi, Maikuolan

    I've been seeing these CIDRAM log entries that have no IPs recorded:

    ID: 1439
    Script Version: CIDRAM v0.1.2
    Date/Time: Thu, 17 Mar 2016 08:09:47 -0400
    IP Address: 
    Query: 
    Referrer: 
    Signatures Count: 1
    Signatures Reference: Invalid IP!
    User Agent: Wget/1.15 (linux-gnu)
    
    ID: 1442
    Script Version: CIDRAM v0.1.2
    Date/Time: Thu, 17 Mar 2016 08:18:54 -0400
    IP Address: 
    Query: 
    Referrer: 
    Signatures Count: 1
    Signatures Reference: Invalid IP!
    User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
    

    I didn't find correlating entries in the web server logs that might give me a clue on what triggered these entries. I don't have any CRON events that correlate either.

    I'm on a typical shared hosting plan so my investigative means are severely limited. My site is Wordpress-based and working through CloudFlare.

    Any ideas on what these blank IPs might be?

    Thanks

    Bug Fixed 
    opened by Gaffnet 62
  • GDPR

    GDPR

    This issue is in regards to the The EU General Data Protection Regulation (GDPR), which will come into effect on 25 May 2018 (that's 11 days from now).

    I'm not a lawyer, but I've been carefully reading over the publicly available information I could find about it, and trying to make sense of it all, to figure out exactly what measures should be implemented, both here for CIDRAM, and for other, related projects (e.g., phpMussel), in order to mitigate any legal risks as much as possible.

    In reference to:

    Of particular note:

    What constitutes personal data?

    Any information related to a natural person or ‘Data Subject’, that can be used to directly or indirectly identify the person. It can be anything from a name, a photo, an email address, bank details, posts on social networking websites, medical information, or a computer IP address.

    I'm not entirely sure what effect this would have on basic logging functionality from a legal perspective (e.g., logging blocked IP addresses, and with an IP address being considered "personal data" in most contexts according to GDPR), but due to that logging is an essential part of the package (so, not practical to remove at all; forcibly disabling or removing it would make no sense, I think), and considering that it requires modifying various configuration directives (e.g., specifying which filenames to use for logging block events) in order to work properly anyway, my current thought, is to leave it be and not change anything about it at all, but to add some information to the documentation (I would propose, in the form of a new FAQ entry, advising users that they are responsible for deciding what to enable in the package and what to leave disabled, advising users that we aren't lawyers, and that they should seek their own legal advice about these matters if they need help in making these decisions, and that certain features of the packages might be incompatible with GDPR or similar such laws).

    If anyone else had ideas about this though (possibly other suggestions, or opinions about what I've suggested above), I would be happy to hear those ideas.

    Next, in reference to:

    Currently, both CIDRAM and phpMussel leverage some Google Webfonts for some of their themes (including the default theme). A configuration directive (disable_webfonts) is already supplied in both packages, allowing package users to disable webfonts if they so choose. However, this directive is set to false by default. As using Google Webfonts without explicit consent from the end-user may cause non-compliance with GDPR, I propose that the default value of this directive should be changed to true, in order to mitigate any legal risk for package users (thus disabling webfonts by default). Additionally, the directive documentation should cross-reference to the newly added FAQ entry. (It's on the to-do list currently to be able to host WOFF files locally within installations at some point, but as this feature hasn't yet been implemented, simply changing the default value of an existing directive might be the simpler, more expedient solution for now).

    Next: Use of reCAPTCHA in CIDRAM.

    Official statement from Google in regards to GDPR compliance:

    Our commitment to GDPR

    We are working hard to prepare for the EU’s General Data Protection Regulation (GDPR). Keeping users’ information safe and secure is among our highest priorities at Google. Over the years, we have spent a lot of time working closely with Data Protection Authorities in Europe, and we have already implemented strong privacy protections that reflect their guidance. We are committed to complying with the new legislation and will collaborate with partners throughout this process.

    ..Which is great and all, and great to hear that collected data is apparently secure, but doesn't really address the problem of user consent.

    One possible solution, is to force that a predefined "privacy agreement" be presented to users, before reCAPTCHA is loaded, in order to gain their explicit consent. I don't think this is really practical though, due to possible language barriers, possible interference with normal logging routines, general inconvenience for users as they would be being forced to read a lot of information, just to be allowed to prove that they are human (e.g., to be given the opportunity to complete the reCAPTCHA instance). Alternatively, a similar approach could be taken as per suggested above with logging and webfonts: Have the configuration directives related to reCAPTCHA be crossed-referenced with the newly added FAQ entry, to make it clear that there may be possible legal compliance issues, and that websites serving EU users might want to leave it disabled. Going on this idea, we wouldn't need to implement any changes to the codebase itself, seeing as reCAPTCHA requires API keys in order to work (thus meaning that it is disabled by default, until the package user enters some API keys into the configuration).

    Worth noting too: Current implementation of the "invisible" reCAPTCHA would definitely be non-compliant, due to that CIDRAM handles everything automatically, meaning there'd be a high chance that the end-user wouldn't notice anything anyway (thus eliminating the possibility of gaining meaningful consent). At the very least, websites targeting EU users should probably revert to the older, more primitive "V2" reCAPTCHA, due to that it isn't automatic (though disabling reCAPTCHA entirely would still be preferable, from the perspective of mitigating legal risks).

    There are also some provisions in GDPR about websites based in member countries not being allowed to block IPs from other member countries (which.. could be problematic for website owners, to say the least), but shouldn't be any problem from the perspective of package maintainers, due to the basic warranty disclaimer as per the GNU/GPLv2 license and such ("This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE" ...), and that a maintainer is not the same thing as the entity which installs or operates the package (which would be responsible themselves for however they choose to install and operate the package). It's also mentioned in our FAQ already that individual website owners are responsible for what they choose to block and not block:

    I've been blocked by CIDRAM from a website that I want to visit! Please help!

    CIDRAM provides a means for website owners to block undesirable traffic, but it's the responsibility of website owners to decide for themselves how they want to use CIDRAM. In case of the false positives relating to the signature files normally included with CIDRAM, corrections can be made, but in regards to being unblocked from specific websites, you'll need to take that up with the owners of the websites in question. In cases where corrections are made, at the very least, they'll need to update their signature files and/or installation, and in other cases (such as, for example, where they've modified their installation, created their own custom signatures, etc), the responsibility to solve your problem is entirely theirs, and is entirely outside our control.

    In summary, what I've proposed above:

    • Adding a new FAQ entry to the documentation to address possible legal risks, advising users to seek their own legal advice if necessary, and to reiterate that we aren't lawyers, nor legally responsible for their choices.
    • Cross-referencing directives related to possibly affected features to this newly added FAQ entry.
    • Changing the default value of disable_webfonts to true.

    Thoughts, ideas, opinions, etc, are invited. Whatever we decide though, I'll want to get started ASAP, in order to try to get everything finished before May 25th (changes proposed thus far are pretty small anyway, so, I could probably get it all done in a day or so, assuming we don't decide on something much more complicated).

    Proposal Implemented Documentation QA 
    opened by Maikuolan 46
  • An easier, more user-friendly way to generate signatures.

    An easier, more user-friendly way to generate signatures.

    Regarding an idea mentioned via CIDRAM's Gitter.im channel:

    just a thought - have you considered providing an Instaban interface via the front end? So it allows me to define one of a UA, whyblocked, referrer, IP, hostname etc, and then it automatically blocks everything for that entity with a 503, or whatever the setup defines. simpler than coding a custom mod.

    Earmarking for a future v1.8.0 release.

    Implemented Suggestion 
    opened by Maikuolan 44
  • Progress towards v3 beta/stable.

    Progress towards v3 beta/stable.

    Posting this issue regarding progress towards v3 beta/stable, to give everyone a clearer idea about exactly where we're at currently, and about what to expect.

    Firstly, as a quick review of the terminology used here, insofar as at least how I define those terms in the context of CIDRAM and its major version life cycle:

    • Pre-Alpha: Anything earlier than the "alpha" stage (generally, this would suggest that no code has been written yet, or at least, nothing is available yet, and could be regarded as an "ideas" stage of development). v3 has already moved beyond this stage.
    • Alpha: Work has began, and at least some code has been written, but not to the extent of calling it "beta" just yet (although the distinction between "alpha" and "beta" doesn't depend on the amount of work done, but rather on the implications of that work insofar as stability is concerned). Both "alpha" and "beta" are open to potential backwards-incompatible changes. The difference between "alpha" and "beta" is in the stability of the work done thus far. If the work done is still "unstable", I would label it as "alpha" (v3 is currently here).
    • Beta: Continuing on from there, if the work done is "stable", I would label it as "beta". Generally, it would continue as "beta" until the fist tagged release for the new major version occurs (the "general release"), thus no longer being in "beta" anymore.
    • Mature: This generally means that the major version has been around for a while, and multiple minor versions/releases have occurred for that major version at the point in question (v1 and v2 are currently here).
    • Stable: Implies that between individual commits, or between distinct states leading up from one version to the immediate next version, installations aren't expected to totally break, or undergo any major fundamental changes beyond what has already been planned.
    • Unstable: And conversely.. If specific changes are planned which I absolutely know will break stuff between the states from before to after the changes in question, or if I can't yet rule out potential fundamental changes beyond what has already been planned, I would label it as "unstable". To clarify, "unstable" doesn't necessarily mean that code is broken, or that things don't work; We would try to avoid that as best as possible regardless, and we have tests/workflows/linting/etc to help us to avoid that situation.

    Currently, v3 is available in an alpha state in the v3 branch of the main CIDRAM repository (this repository). The available code, as it is currently, for the most part, does work. However, as suggested by the above term definitions, there are still some things I plan to do which would cause breaks between the before and after.

    The most significant unstable changes I want to implement concern the updater. There are some syntactical changes I want to introduce to the updates metadata, and some significant changes I want to introduce to the way the updater works under the hood (although, for the most part, I don't plan to introduce many changes to the UI). I don't want to put a specific schedule to those changes, because I'm not sure exactly how long it'll take to complete those changes (although I hope to have it done sooner rather than later).

    The moment I finish implementing all the changes I have planned for the updater is when I currently anticipate v3 transitioning from "alpha" to "beta", at which point, it should be safe to update from v2 to v3 for anyone wanting to give it a go prior to the "general release".

    I haven't started any of the changes planned for the updater yet, because there are a few things I need to get done first, before I can start that. The most significant of those things is restructuring the file structure of CIDRAM as a whole, which is something I have started already, although haven't had time to finish yet.

    Unfortunately, due to work and various other offline commitments, there has been delays, and I haven't progressed anywhere near as quickly as I would've liked, although progress is still happening regularly, and we're still moving forward, albeit being a little slower than I would've liked (which is also why I don't want to put a specific schedule on anything just yet, but yeah.. like I mentioned before, I hope to get everything finished sooner rather than later).

    Worth mentioning too, that as part of that restructuring, and due to various technical considerations (I'll go into this in more depth a little later, but it's getting kind of late right now, and I need to finish writing this soon, so that I can get some sleep for the night and be able to get up early in the morning for work), I anticipate bundling all the modules and themes for CIDRAM directly in the main repository, to have them all be installed by default (still installable/uninstallable/updatable via the front-end updater as per usual and per previous major versions). This'll resolve some potential problems I foresee for certain kinds of implementations for v3 in the future, and will also allow me to have specific versions of modules and themes available for specific major versions of CIDRAM, without needing to worry too much about retaining backwards compatibility within current versions of modules and themes across multiple major versions of CIDRAM. Anyway.. I haven't done that yet, so that's something I'll still need to do as part of the restructuring, before I can call that done, and before being able to move onto the updater changes.

    There's still be a number of other changes planned for after the changes planned for the updater, but the post-updater planned changes shouldn't affect stability at all, and are a little ways off just yet, so I'll post about those a little later.

    Implemented Info v3 
    opened by Maikuolan 43
  • Auto block scrapers (rate limiting)

    Auto block scrapers (rate limiting)

    I suffer from lots of scrapers that slip through the net. Sometimes it's obvious, other times I notice they are trying very hard to get around CIDRAM. Is it possible to add a feature where is automatically adds an IP to a blocklist after X amount of clicks/pageviews?

    Implemented Suggestion 
    opened by glennish 38
  • To-do: Improve how CIDRAM determines entry IDs.

    To-do: Improve how CIDRAM determines entry IDs.

    Via our Gitter channel:

    @mikeruss1 wrote:

    have looked at the latest Statistics reset which was yesterday. There were 8 GETS from Russia all within a second. 5 were rejected , stats reset, then the following 3 were rejected starting from ID1. Flat files I guess?

    @Maikuolan wrote:

    Yeah, pretty much.

    @DanielRuf made a suggestion at one of the issues recently, about a better approach to entry IDs for logging. If I implement it, I'm sure that at least a few different users will complain, that the entries IDs aren't following nice, simple, logical increments anymore. But, I think I'll implement it anyway, because implementing it would also mean that CIDRAM wouldn't need to maintain an ID counter in the cache anymore (thus rendering the problem of an ID counter resetting redundant and obsolete).

    I still need to finish properly documenting how to use the supplementary cache options. Particularly, for things like the PDO option, how users can properly set up SQL databases and such things so that CIDRAM can cache there, instead of using flat files.

    Once those two things have been done, I'll probably start recommending for people to switch to one of the other cache options, to avoid these kinds of problems. Not needing to track an ID counter anymore would mean far less read/write operations to the cache (in theory, we could enable logging, and still wouldn't need to do so for every blocked request, when we don't need to worry about tracking an ID counter), would mean that if it resets, that it won't affect entry IDs anymore, and using one of the other caching options would mean far less read/write operations to writable flat files. So, we have a possible plan there for how to resolve this, I think.

    Related: https://github.com/CIDRAM/CIDRAM/issues/128#issuecomment-501995522

    TL;DR: I know the downsides, but I think the problem of cache data disappearing and ID numbers resetting probably outweighs the downsides at this point, enough so that something should be done. Anyway.. creating this issue to track progress, provide an avenue to discuss it further, etc.

    Implemented Suggestion 
    opened by Maikuolan 36
  • Selective logging

    Selective logging

    I have an idiot that is constantly going to my site with Tor, and while he's blocked each and every time, my log is filling up with his ref spam crap. And he must be a human since CloudFlare has a captcha for some of the countries the IP is coming from that I set up.. Unless CloudFlare isn't working like usual. They certainly can't do a direct IP connection. My host doesn't allow it.

    So I was wondering if there can be an ON/OFF switch for modules or what ever to disable logging for things that logs may not be needed for.

    Tor is a dirty little punk, and I have reported a pedophile site many times to the authorities, but nothing has been done. Probably because they can't track down the server origin.

    Implemented Suggestion Resolved Support 
    opened by 737simpilot 35
  • Suggestions

    Suggestions

    Hi Maik, here's few:

    1) I think bogon (**edit/update:** it is not caused by bogon, wp_cron is still being blocked from other rules/ranges) option should be set to false by default, because of this:

    ID: 1 Script Version: CIDRAM v0.1.2 Date/Time: Wed, 16 Mar 2016 12:44:17 +0100 IP Address: 192.168.0.1 (modified, left for illustration purposes only) Query: doing_wp_cron=1458128657.1168138980865478515625 Referrer: Signatures Count: 1 Signatures Reference: 192.168.0.0/16 (modified, left for illustration purposes only) User Agent: WordPress/4.4.2

    Now, we could at least add bypass IPs to the list, so that they are excluded from the above rules. Additionally, bogon description here sounds... well, martian/strange. If its main purpose is to block local range, shouldn't it be called more user-friendly, block_local perhaps? :)

    2) outgen.inc (& others .inc) should be renamed to outgen.php, let's depart from the terrible practice of the past, and name files with proper extensions :wink:

    If .inc is so desperately needed, we could keep it, but append .php finally in the end. My code editor & me likes it.

    3) I might be missing something, but I don't see here Why? section :confused: It should be added as short as possible, but informative (e.g. "ONLINE S.A.S.")

    ID: 2 Script Version: CIDRAM v0.1.2 Date/Time: Wed, 16 Mar 2016 13:11:42 +0100 IP Address: 212.129.56.230 Query: Referrer: Signatures Count: 1 Signatures Reference: 212.129.0.0/18 User Agent: PHP/5.3.56

    4) Surely I am still catching up :) but is there a whitelist (ipwldb.csv) somewhere? Or do I need to use my good old wrapper? **edit/update:** already did, had to copy ipwldb.csv and use it, to prevent wp_cron from not running.

    5) Would be nice to have option in config.ini if we wish 403 or 503 headers. Just throwing my idea here first, should be easy to implement later.

    Thanks

    Implemented Suggestion 
    opened by dev-101 35
  • AbuseIPDB integration

    AbuseIPDB integration

    Is it possible to use the API to integrate with CIDRAM? https://www.abuseipdb.com/api.html

    I see that they have a CIDR API that may be what we are after. Or perhaps it would just be the Check IP API.

    Implemented Suggestion 
    opened by 737simpilot 34
  • Problems with CDN

    Problems with CDN

    Hello,

    Today I started using BunnyCDN for my websites, but unfortunately now I'm having problems. BunnyCDN can't pull files due to CIDRAM.

    Possible solutions?

    Resolved Support 
    opened by Dibbyo456 30
  • Tracking problem

    Tracking problem

    using PDO

    IP Tracking page giving errors Warning: count(): Parameter must be an array or an object that implements Countable in /var/sites/w/xxxxx/public_html/cidram/vault/frontend.php on line 3288

    Warning: uasort() expects parameter 1 to be array, string given in /var/sites/w/xxxx/public_html/cidram/vault/frontend.php on line 3301

    Warning: Invalid argument supplied for foreach() in /var/sites/w/xxx/public_html/cidram/vault/frontend.php on line 3304

    cidram error page also throwing a group of errors since this morning, probably with each block(?).

    [2020-01-04T10:35:46+00:00] Error at outgen.php:L229 (error code 8): "A non well formed numeric value encountered". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L237 (error code 8): "A non well formed numeric value encountered". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L237 (error code 2): "Illegal string offset '137.226.113.28'". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L237 (error code 8): "Array to string conversion". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L244 (error code 8): "A non well formed numeric value encountered". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L244 (error code 2): "Illegal string offset '137.226.113.28'". Eep.. Something went wrong during "Tracking". [2020-01-04T10:35:46+00:00] Error at outgen.php:L244 (error code 2): "Illegal string offset 'Count'". Eep.. Something went wrong during "Tracking".

    I did a signature update this morning, there were 3 to do, one failed with a update sigatures, so repeated and seemed to be OK

    Bug Fixed v3 
    opened by mikeruss1 29
  • BGPView and V3

    BGPView and V3

    Trying to test a bit the BGPView module, it doesn't seem to work for me.

    I add a few countries 2 digits CCS, including mine for testing, and i can browse everything.....

    Am i missing something?

    Bug Testing QA 
    opened by eurobank 12
  • Mixed aux rule

    Mixed aux rule

    I wanted to create a rule which used a regex for one line and a Windows string for another. Specifically a regex on the UA and a Windows string for a URL. Seems not possible? I guess I could use regex on each line but that's beyond my skills. Not important.

    Attention Required 
    opened by mikeruss1 1
  • V3

    V3

    I am happy with the reliability of v3, its not breaking, its not rejecting stuff it shouldnt, and as far as I can tell its not accepting stuff it shouldnt, but the latter is difficult to prove 100%. I am using it now for the home page which attracts a lot of rubbish.

    the only significant issue for me is memcached, I like the performance improvement and prefer not to commit completely without it.

    I have tried memcache again with the same results as last time, in the front end tracking and stats are empty, and the cache page just has a Memcached entry with no detail, plus a link to delete it. incidentally v2 with memcached shows "the cache is empty" on the cache page also noticed that v3 log page with memcache only shows the first entry, thats very strange as the log isnt cached and v3 without memcache is working normally. No config change apart from memcached equals true.

    the cache itself looks OK, there is IP tracking data and "CIDRAM_Statistics-Since" contains 1669832913 thats presumably a unix date/time = I cant see any traffic count variable

    Bug Attention Required 
    opened by mikeruss1 13
  • Bobuam default browser OOD

    Bobuam default browser OOD

    I think the defaults for out of date browsers in bobuam are a bit aggressive. They are set to around a year old and will lose a lot of valid traffic. Mine are set around 6 years old and maybe could be updated. The bad guys generally use really out of date UAs.

    RFC 
    opened by mikeruss1 2
Releases(v3.0.0-beta2)
  • v3.0.0-beta2(Oct 30, 2022)

  • v2.9.2(Oct 30, 2022)

    Version/Release 2.9.2

    • [2022.09.02; Maikuolan]: IPs can now be added to tracking manually (#310).

    • [2022.09.27; Maikuolan]: Added warnings to the edit file feature of the file manager regarding editing PHP files directly via browsers and regarding editing files which belong to components.

    • [2022.10.25; Maikuolan]: Hardened some configuration constraints.

    • [2022.10.28; Maikuolan]: Reworked how the configuration page deals with volume-based configuration.

    • [2022.10.29; Maikuolan]: CAPTCHAs won't be offered when fake search engine requests are blocked anymore.

    Caleb M (Maikuolan), October 30, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.22.2(Oct 30, 2022)

    Version/Release 1.22.2

    • [2022.09.02; Maikuolan]: IPs can now be added to tracking manually (#310).

    • [2022.09.27; Maikuolan]: Added warnings to the edit file feature of the file manager regarding editing PHP files directly via browsers and regarding editing files which belong to components.

    • [2022.10.25; Maikuolan]: Hardened some configuration constraints.

    • [2022.10.28; Maikuolan]: Reworked how the configuration page deals with volume-based configuration.

    • [2022.10.29; Maikuolan]: CAPTCHAs won't be offered when fake search engine requests are blocked anymore.

    Caleb M (Maikuolan), October 30, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.9.1(Aug 1, 2022)

    Version/Release 2.9.1

    • [2022.05.02; Maikuolan]: Front-end warnings have been hidden from non-logged in users.

    • [2022.05.08; Maikuolan]: Made the warnings/notices at the front-end accounts page slightly smaller.

    • [2022.05.23; Bug-fix; Maikuolan]: The nonblocked_status_code configuration directive wasn't displaying as intended at the front-end configuration page; Fixed.

    • [2022.05.24; Maikuolan]: Safer handling of CAPTCHA salts. Added the copy SVG to the front-end signature file fixer page.

    • [2022.05.26; Bug-fix; Maikuolan]: Instead of "GMT", the "Last modified" header given for front-end assets specified "+0000", which some browsers don't understand properly; Fixed.

    • [2022.05.30; Bug-fix; Maikuolan]: When using the front-end IP test page, hostnames sometimes weren't looked up properly under some conditions; Fixed (#313).

    • [2022.06.09; Maikuolan]: Following symlinks for RecursiveDirectoryIterator instances enabled.

    • [2022.06.17; Maikuolan]: Slightly improved RTL support.

    • [2022.06.20; Maikuolan]: Verification update.

    • [2022.07.11; Maikuolan]: Added the ability to enable/disable auxiliary rules (#318).

    • [2022.07.13; Maikuolan]: Synced common classes package.

    • [2022.07.17; Maikuolan]: Made IPs at the IP test page searchable.

    • [2022.07.21; Maikuolan]: Coloured the "delete" option available at various dropdown menus red, to make it stand out a little from the other options.

    • [2022.07.22; Maikuolan]: Confirmation is now sought before engaging an attempt to delete an auxiliary rule, and the option moved to the far right to reduce the risk of engaging by accident (#333).

    • [2022.07.23; Maikuolan]: Added the ability to reset specific parts of the configuration back to their defaults (#331).

    Caleb M (Maikuolan), August 1, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.22.1(Aug 1, 2022)

    Version/Release 1.22.1

    • [2022.05.02; Maikuolan]: Front-end warnings have been hidden from non-logged in users.

    • [2022.05.08; Maikuolan]: Made the warnings/notices at the front-end accounts page slightly smaller.

    • [2022.05.23; Bug-fix; Maikuolan]: The nonblocked_status_code configuration directive wasn't displaying as intended at the front-end configuration page; Fixed.

    • [2022.05.24; Maikuolan]: Safer handling of CAPTCHA salts. Added the copy SVG to the front-end signature file fixer page.

    • [2022.05.26; Bug-fix; Maikuolan]: Instead of "GMT", the "Last modified" header given for front-end assets specified "+0000", which some browsers don't understand properly; Fixed.

    • [2022.05.30; Bug-fix; Maikuolan]: When using the front-end IP test page, hostnames sometimes weren't looked up properly under some conditions; Fixed (#313).

    • [2022.06.09; Maikuolan]: Following symlinks for RecursiveDirectoryIterator instances enabled.

    • [2022.06.17; Maikuolan]: Slightly improved RTL support.

    • [2022.06.20; Maikuolan]: Verification update.

    • [2022.07.11; Maikuolan]: Added the ability to enable/disable auxiliary rules (#318).

    • [2022.07.13; Maikuolan]: Synced common classes package.

    • [2022.07.17; Maikuolan]: Made IPs at the IP test page searchable.

    • [2022.07.21; Maikuolan]: Coloured the "delete" option available at various dropdown menus red, to make it stand out a little from the other options.

    • [2022.07.22; Maikuolan]: Confirmation is now sought before engaging an attempt to delete an auxiliary rule, and the option moved to the far right to reduce the risk of engaging by accident (#333).

    • [2022.07.23; Maikuolan]: Added the ability to reset specific parts of the configuration back to their defaults (#331).

    Caleb M (Maikuolan), August 1, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0-beta1(Jul 14, 2022)

  • v2.9.0(May 1, 2022)

    Version/Release 2.9.0

    • [2022.02.17; Maikuolan]: Verification update.

    • [2022.02.18; Maikuolan]: False positive fix (#263).

    • [2022.02.21; Maikuolan]: Improved IP address resolution strategy (#286).

    • [2022.02.21; Bug-fix; Maikuolan]: File manager component files categorisation didn't account for multi-domain installation configuration files; Fixed.

    • [2022.03.01; Maikuolan]: Ensure that IP tracking code at the beginning of the output generator is staged as Tracking.

    • [2022.03.02; Maikuolan]: Added a mechanism to the front-end IP test and IP tracking pages to enable the copying of IPs displayed there.

    • [2022.03.09; Bug-fix; Maikuolan]: Some specific files were being misclassified by the file manager; Fixed.

    • [2022.03.10; Bug-fix; Maikuolan]: HCaptcha class was sending invalid headers when generating output; Fixed (#293).

    • [2022.03.10; NEW FEATURE; Maikuolan]: Added two new configuration directives, "block_event_title" and "captcha_title", allowing users to customise the page title used for block events and CAPTCHA requests (#216).

    • [2022.03.11; Maikuolan]: Added a copy mechanism for the output of all range-based pages.

    • [2022.03.16; Maikuolan]: Reworked hide_version.

    • [2022.03.16; Bug-fix; Maikuolan]: Wrong CSP headers being set by the HCaptcha class; Fixed (#294).

    • [2022.03.24; Bug-fix; Maikuolan]: Fixed a bottleneck caused by the ReadFile closure.

    • [2022.04.03; Maikuolan]: At the range tables page, show the IPv4/IPv6 totals side by side, for easier comparison between the two.

    • [2022.04.04; Maikuolan]: Removed some unused file manager icons and slightly simplified its logic.

    • [2022.04.26; Maikuolan]: Added a JavaScript warning to the front-end login.

    Caleb M (Maikuolan), May 1, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.22.0(May 1, 2022)

    Version/Release 1.22.0

    • [2022.02.17; Maikuolan]: Verification update.

    • [2022.02.18; Maikuolan]: False positive fix (#263).

    • [2022.02.21; Maikuolan]: Improved IP address resolution strategy (#286).

    • [2022.02.21; Bug-fix; Maikuolan]: File manager component files categorisation didn't account for multi-domain installation configuration files; Fixed.

    • [2022.03.01; Maikuolan]: Ensure that IP tracking code at the beginning of the output generator is staged as Tracking.

    • [2022.03.02; Maikuolan]: Added a mechanism to the front-end IP test and IP tracking pages to enable the copying of IPs displayed there.

    • [2022.03.09; Bug-fix; Maikuolan]: Some specific files were being misclassified by the file manager; Fixed.

    • [2022.03.10; Bug-fix; Maikuolan]: HCaptcha class was sending invalid headers when generating output; Fixed (#293).

    • [2022.03.10; NEW FEATURE; Maikuolan]: Added two new configuration directives, "block_event_title" and "captcha_title", allowing users to customise the page title used for block events and CAPTCHA requests (#216).

    • [2022.03.11; Maikuolan]: Added a copy mechanism for the output of all range-based pages.

    • [2022.03.16; Maikuolan]: Reworked hide_version.

    • [2022.03.16; Bug-fix; Maikuolan]: Wrong CSP headers being set by the HCaptcha class; Fixed (#294).

    • [2022.03.24; Bug-fix; Maikuolan]: Fixed a bottleneck caused by the ReadFile closure.

    • [2022.04.03; Maikuolan]: At the range tables page, show the IPv4/IPv6 totals side by side, for easier comparison between the two.

    • [2022.04.04; Maikuolan]: Removed some unused file manager icons and slightly simplified its logic.

    • [2022.04.26; Maikuolan]: Added a JavaScript warning to the front-end login.

    Caleb M (Maikuolan), May 1, 2022.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Feb 14, 2022)

    Version/Release 2.8.0

    • [2021.11.27; Maikuolan]: At the front-end configuration page, configuration directives relying on specific extensions (specifically, at this time, the supplementary cache options) will now include a notice as to whether the extensions relied upon are available.

    • [2021.11.29; Maikuolan]: Rate limiting now leverages the supplementary cache options, making it possible to store rate limiting data with APCu, Memcached, Redis, etc, instead of the standard rl.dat file.

    • [2021.12.21; Maikuolan]: Added an auxiliary rules option to suppress logging.

    • [2022.01.08; Maikuolan]: Added the ability to specify an expiry date for auxiliary rules, enabling auxiliary rules to be automatically disabled after the specified date. Added the ability to specify time constraints to specific, individual signatures within signature files, providing a means to expire those specific signatures without the need for a section expiry tag. Added the ability to specify start times for an auxiliary rule.

    • [2022.01.08; Maikuolan]: The IP tracking page now displays the exact number of days/months/etc remaining until entries expire alongside the date/time.

    • [2022.01.14; Bug-fix; Maikuolan]: An apostrophe in a rule name would break the ability to perform move or delete operations to that rule from within the auxiliary rules view mode page (thanks to 737simpilot for reporting this bug); Fixed.

    • [2022.01.18; Maikuolan]: Removed the default ignore.dat file.

    • [2022.01.22; Maikuolan]: Dropped Gitter chat in favour of using GitHub Discussions instead. Block reason shorthand messages now also append to profiles.

    • [2022.02.01; Bug-fix; Maikuolan]: Failed to correctly determine the client's IP address under certain circumstances (e.g., multiple choices available via HTTP_X_FORWARDED_FOR); Fixed.

    • [2022.02.07; Bug-fix; Maikuolan]: Fixed an undefined index error.

    • [2022.02.14; Maikuolan]: Synced common classes package.

    Caleb M (Maikuolan), February 14, 2022.

    Source code(tar.gz)
    Source code(zip)
  • v1.21.0(Feb 14, 2022)

    Version/Release 1.21.0

    • [2021.11.27; Maikuolan]: At the front-end configuration page, configuration directives relying on specific extensions (specifically, at this time, the supplementary cache options) will now include a notice as to whether the extensions relied upon are available.

    • [2021.11.29; Maikuolan]: Rate limiting now leverages the supplementary cache options, making it possible to store rate limiting data with APCu, Memcached, Redis, etc, instead of the standard rl.dat file.

    • [2021.12.21; Maikuolan]: Added an auxiliary rules option to suppress logging.

    • [2022.01.08; Maikuolan]: Added the ability to specify an expiry date for auxiliary rules, enabling auxiliary rules to be automatically disabled after the specified date. Added the ability to specify time constraints to specific, individual signatures within signature files, providing a means to expire those specific signatures without the need for a section expiry tag. Added the ability to specify start times for an auxiliary rule.

    • [2022.01.08; Maikuolan]: The IP tracking page now displays the exact number of days/months/etc remaining until entries expire alongside the date/time.

    • [2022.01.14; Bug-fix; Maikuolan]: An apostrophe in a rule name would break the ability to perform move or delete operations to that rule from within the auxiliary rules view mode page (thanks to 737simpilot for reporting this bug); Fixed.

    • [2022.01.18; Maikuolan]: Removed the default ignore.dat file.

    • [2022.01.22; Maikuolan]: Dropped Gitter chat in favour of using GitHub Discussions instead. Block reason shorthand messages now also append to profiles.

    • [2022.02.01; Bug-fix; Maikuolan]: Failed to correctly determine the client's IP address under certain circumstances (e.g., multiple choices available via HTTP_X_FORWARDED_FOR); Fixed.

    • [2022.02.07; Bug-fix; Maikuolan]: Fixed an undefined index error.

    • [2022.02.14; Maikuolan]: Synced common classes package.

    Caleb M (Maikuolan), February 14, 2022.

    Source code(tar.gz)
    Source code(zip)
  • v2.7.0(Nov 20, 2021)

    Version/Release 2.7.0

    • [2021.07.04; Bug-fixes; Maikuolan]: When the metadata for an already installed component was missing from the upstream, a wrong parameter type error could occur, causing the updates page to not load correctly; Fixed. Due to the scope that the executor queue would be iterated from, an infinite loop could theoretically occur under certain circumstances when attempting to install or update a component via the front-end updates page; Fixed.

    • [2021.07.05; Bug-fix; Maikuolan]: The option to update signatures only via the updates page could potentially miss some signature files if they utilise mixed 'used with' options; Fixed.

    • [2021.07.12; Bug-fix; Maikuolan]: Mistake found in the code for activating imports via component descriptions; Fixed.

    • [2021.07.12; Signatures; Maikuolan]: Rewrote the default signature bypasses, made most of them configurable, and added a new bypass. The component is also now activable (not provisional).

    • [2021.07.14; Maikuolan]: It's now possible, when updating via Cronable, to specify whether to update just the signature files, or to update everything.

    • [2021.07.16; Bug-fix; Maikuolan]: The code to check whether a component is active was mistakenly checking class files, causing components to appear inactive at times; Fixed.

    • [2021.08.11; NEW FEATURE; Maikuolan]: Components can now be activated as events in order to be required in immediately after the event handlers file.

    • [2021.08.27; NEW FEATURE; Maikuolan]: The front-end logs page now supports pagination! It's now possible to paginate through entries, instead of viewing them all together.

    • [2021.08.30; Bug-fix; Maikuolan]: Fixed a problem which occurred while viewing descending log entries with pagination.

    • [2021.09.05; Maikuolan]: Precaution against potential future undefined index added to fallback closure.

    • [2021.09.18; Maikuolan]: Added verification support for AmazonAdBot.

    • [2021.10.01; Maikuolan]: Added a validator to the front-end CIDR calculator.

    • [2021.10.01; Maikuolan]: The front-end IP tracking page will now display the "why reason" for blocked IPs when checking them against signature files.

    • [2021.10.02; Maikuolan]: Added a new shorthand entry, "Attacks". This is because I'd been using some different shorthand entries before for a similar purpose, and I felt that something a little less ambiguous was needed.

    • [2021.10.18; Bug-fix; Maikuolan]: OperatorFromAuxValue didn't consider entities when building stubs; Fixed.

    • [2021.10.22; Maikuolan]: Added some default auxiliary rules.

    • [2021.10.23; Bug-fix; Maikuolan]: Aggregating a single IP address with its own CIDR equivalent (i.e., a range containing just one IP address) produced output with a wider than expected range; Fixed.

    • [2021.10.30; Maikuolan]: Code-style cleanup: Public before private properties, magic before public before private methods.

    • [2021.10.31; NEW FEATURE; Maikuolan]: Added the ability to segregate cache data on the basis of prefixes specified by the instance. This could be useful for when different installations are utilising the same caching mechanisms at the same server.

    • [2021.11.20; Maikuolan]: Added options to the auxiliary rules view mode page for moving a rule up or down by exactly one position.

    Caleb M (Maikuolan), November 20, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.20.0(Nov 20, 2021)

    Version/Release 1.20.0

    • [2021.07.04; Bug-fixes; Maikuolan]: When the metadata for an already installed component was missing from the upstream, a wrong parameter type error could occur, causing the updates page to not load correctly; Fixed. Due to the scope that the executor queue would be iterated from, an infinite loop could theoretically occur under certain circumstances when attempting to install or update a component via the front-end updates page; Fixed.

    • [2021.07.05; Bug-fix; Maikuolan]: The option to update signatures only via the updates page could potentially miss some signature files if they utilise mixed 'used with' options; Fixed.

    • [2021.07.12; Bug-fix; Maikuolan]: Mistake found in the code for activating imports via component descriptions; Fixed.

    • [2021.07.12; Signatures; Maikuolan]: Rewrote the default signature bypasses, made most of them configurable, and added a new bypass. The component is also now activable (not provisional).

    • [2021.07.14; Maikuolan]: It's now possible, when updating via Cronable, to specify whether to update just the signature files, or to update everything.

    • [2021.07.16; Bug-fix; Maikuolan]: The code to check whether a component is active was mistakenly checking class files, causing components to appear inactive at times; Fixed.

    • [2021.08.11; NEW FEATURE; Maikuolan]: Components can now be activated as events in order to be required in immediately after the event handlers file.

    • [2021.08.27; NEW FEATURE; Maikuolan]: The front-end logs page now supports pagination! It's now possible to paginate through entries, instead of viewing them all together.

    • [2021.08.30; Bug-fix; Maikuolan]: Fixed a problem which occurred while viewing descending log entries with pagination.

    • [2021.09.05; Maikuolan]: Precaution against potential future undefined index added to fallback closure.

    • [2021.09.18; Maikuolan]: Added verification support for AmazonAdBot.

    • [2021.10.01; Maikuolan]: Added a validator to the front-end CIDR calculator.

    • [2021.10.01; Maikuolan]: The front-end IP tracking page will now display the "why reason" for blocked IPs when checking them against signature files.

    • [2021.10.02; Maikuolan]: Added a new shorthand entry, "Attacks". This is because I'd been using some different shorthand entries before for a similar purpose, and I felt that something a little less ambiguous was needed.

    • [2021.10.18; Bug-fix; Maikuolan]: OperatorFromAuxValue didn't consider entities when building stubs; Fixed.

    • [2021.10.22; Maikuolan]: Added some default auxiliary rules.

    • [2021.10.23; Bug-fix; Maikuolan]: Aggregating a single IP address with its own CIDR equivalent (i.e., a range containing just one IP address) produced output with a wider than expected range; Fixed.

    • [2021.10.30; Maikuolan]: Code-style cleanup: Public before private properties, magic before public before private methods.

    • [2021.10.31; NEW FEATURE; Maikuolan]: Added the ability to segregate cache data on the basis of prefixes specified by the instance. This could be useful for when different installations are utilising the same caching mechanisms at the same server.

    • [2021.11.20; Maikuolan]: Added options to the auxiliary rules view mode page for moving a rule up or down by exactly one position.

    Caleb M (Maikuolan), November 20, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Jul 2, 2021)

    Version/Release 2.6.0

    • [2021.04.12; Bug-fix; Maikuolan]: The front-end auxiliary rules page wasn't sanitising characters properly prior to displaying fields; Fixed.

    • [2021.04.14; Bug-fix; Maikuolan]: Including the configured theme as a default dependency would prevent updates occurring for the component in question when using custom themes; Removed the dependency to resolve the problem.

    • [2021.04.19; Bug-fix; Maikuolan]: BuildPath could potentially trigger warnings when open_basedir is defined, causing logging, among various other internal file operations, to fail (related to PHP bug 69240); Fixed.

    • [2021.04.23; Bug-fix; Maikuolan]: The "one-step solution" options available at the front-end updates page were broken; Fixed.

    • [2021.04.24; Maikuolan]: Migrated most of the code responsible for handling reCAPTCHAs over to its own class.

    • [2021.04.24-25; NEW FEATURE; Maikuolan]: Added HCaptcha support (thus providing an optional alternative to reCAPTCHA). The available configuration directives for HCaptcha support mirrors that available for reCAPTCHA. Dropdown menu options have been added to the front-end configuration page for the reCAPTCHA and HCaptcha usemode directives. All code, L10N data, configuration, and other peripherals relating to captcha support has been slightly refactored.

    • [2021.04.25-26; NEW FEATURE; Maikuolan]: Added the ability to serve CAPTCHAs to non-blocked requests, in order to prevent automated traffic from among all requests, regardless of signatures, modules, and rules used or not used.

    • [2021.04.27; Maikuolan]: Removed the default username/password tip from the front-end login page. Added the ability for custom themes to deploy their own custom favicon.

    • [2021.04.29; Bug-fix; Maikuolan]: Missing index warning and wrong error stage being reported for non-blocked CAPTCHAs; Fixed.

    • [2021.05.01; Bug-fix; Maikuolan]: Log truncation not being calculated properly; Fixed.

    • [2021.05.07; Maikuolan]: Very slightly reworked/improved the front-end CSS. File manager update: Successfully uploaded files now return a 201 status. Non-blocked CAPTCHA support update: Added a new configuration directive, nonblocked_status_code, allowing users to specify the status code to return for non-blocked CAPTCHAs (similar idea to forbid_on_block).

    • [2021.05.08; Maikuolan]: Slightly optimised the log rotation closure.

    • [2021.05.09; Bug-fixes; Maikuolan]: All conditions matching pure negative tests weren't able to match; Fixed. When editing auxiliary rules, empty values weren't always deleted properly; Fixed. When displaying empty values for auxiliary rules in view mode, some lines wouldn't display properly; Fixed.

    • [2021.05.09; NEW FEATURE; Maikuolan]: Added the ability to enforce extended IP tracking options via auxiliary rules.

    • [2021.05.09; Bug-fix; Maikuolan]: Newly discovered component annotations were being immediately dumped instead of being written to the corresponding component metadata files; Fixed.

    • [2021.05.15; Maikuolan]: Fixed a false positive and performed some QA work.

    • [2021.05.17; Maikuolan]: The front-end IP test page results table would sometimes stretch a little due to the additional information appended, such as profiles, marked fields, etc; Fixed.

    • [2021.05.20; NEW FEATURE; Maikuolan]: Added a new field to the auxiliary rules page for attaching notes to rules.

    • [2021.05.21; Maikuolan]: Strengthened XVerification guard code.

    • [2021.05.22; Maikuolan]: Synced common classes package.

    • [2021.05.28; NEW FEATURE; Maikuolan]: Added the ability to log when signature files are updated via the front-end.

    • [2021.05.29; Maikuolan]: Compatibility and early prepwork for #204.

    • [2021.06.06; Maikuolan]: Reworked checkbox support for the front-end configuration page in preparation for some future configuration directives.

    • [2021.06.08; Maikuolan]: Subtle aesthetic patch.

    • [2021.06.22; Maikuolan]: Slightly improved the field detection code for the tally mode of the front-end logs page.

    • [2021.06.25; Maikuolan]: The front-end sections list page now shows how many files a signatures section spans across.

    • [2021.06.28; Maikuolan]: Added a new configuration directive to toggle whether modules are/aren't allowed to override tracking options (tracking_override).

    • [2021.06.29; Bug-fix; Maikuolan]: The front-end file manager's pie chart's components accordion was broken; Fixed.

    • [2021.07.01; NEW FEATURE; Maikuolan]: Added support for a new type of component: Configuration imports. This will be helpful for allowing third-parties to add their own custom 'provides' data to CIDRAM for use with auxiliary rules, or their own configuration for their own custom modules and signature files, distinct from those components. 'Used with' can now also be an array, to allow components of mixed type.

    • [2021.07.02; Maikuolan]: Synced common classes package.

    • [2021.07.02; Maikuolan]: Added the ability for modules to support multiple languages.

    Caleb M (Maikuolan), July 2, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.19.0(Jul 2, 2021)

    Version/Release 1.19.0

    • [2021.04.12; Bug-fix; Maikuolan]: The front-end auxiliary rules page wasn't sanitising characters properly prior to displaying fields; Fixed.

    • [2021.04.14; Bug-fix; Maikuolan]: Including the configured theme as a default dependency would prevent updates occurring for the component in question when using custom themes; Removed the dependency to resolve the problem.

    • [2021.04.19; Bug-fix; Maikuolan]: BuildPath could potentially trigger warnings when open_basedir is defined, causing logging, among various other internal file operations, to fail (related to PHP bug 69240); Fixed.

    • [2021.04.23; Bug-fix; Maikuolan]: The "one-step solution" options available at the front-end updates page were broken; Fixed.

    • [2021.04.24; Maikuolan]: Migrated most of the code responsible for handling reCAPTCHAs over to its own class.

    • [2021.04.24-25; NEW FEATURE; Maikuolan]: Added HCaptcha support (thus providing an optional alternative to reCAPTCHA). The available configuration directives for HCaptcha support mirrors that available for reCAPTCHA. Dropdown menu options have been added to the front-end configuration page for the reCAPTCHA and HCaptcha usemode directives. All code, L10N data, configuration, and other peripherals relating to captcha support has been slightly refactored.

    • [2021.04.25-26; NEW FEATURE; Maikuolan]: Added the ability to serve CAPTCHAs to non-blocked requests, in order to prevent automated traffic from among all requests, regardless of signatures, modules, and rules used or not used.

    • [2021.04.27; Maikuolan]: Removed the default username/password tip from the front-end login page. Added the ability for custom themes to deploy their own custom favicon.

    • [2021.04.29; Bug-fix; Maikuolan]: Missing index warning and wrong error stage being reported for non-blocked CAPTCHAs; Fixed.

    • [2021.05.01; Bug-fix; Maikuolan]: Log truncation not being calculated properly; Fixed.

    • [2021.05.07; Maikuolan]: Very slightly reworked/improved the front-end CSS. File manager update: Successfully uploaded files now return a 201 status. Non-blocked CAPTCHA support update: Added a new configuration directive, nonblocked_status_code, allowing users to specify the status code to return for non-blocked CAPTCHAs (similar idea to forbid_on_block).

    • [2021.05.08; Maikuolan]: Slightly optimised the log rotation closure.

    • [2021.05.09; Bug-fixes; Maikuolan]: All conditions matching pure negative tests weren't able to match; Fixed. When editing auxiliary rules, empty values weren't always deleted properly; Fixed. When displaying empty values for auxiliary rules in view mode, some lines wouldn't display properly; Fixed.

    • [2021.05.09; NEW FEATURE; Maikuolan]: Added the ability to enforce extended IP tracking options via auxiliary rules.

    • [2021.05.09; Bug-fix; Maikuolan]: Newly discovered component annotations were being immediately dumped instead of being written to the corresponding component metadata files; Fixed.

    • [2021.05.15; Maikuolan]: Fixed a false positive and performed some QA work.

    • [2021.05.17; Maikuolan]: The front-end IP test page results table would sometimes stretch a little due to the additional information appended, such as profiles, marked fields, etc; Fixed.

    • [2021.05.20; NEW FEATURE; Maikuolan]: Added a new field to the auxiliary rules page for attaching notes to rules.

    • [2021.05.21; Maikuolan]: Strengthened XVerification guard code.

    • [2021.05.22; Maikuolan]: Synced common classes package.

    • [2021.05.28; NEW FEATURE; Maikuolan]: Added the ability to log when signature files are updated via the front-end.

    • [2021.05.29; Maikuolan]: Compatibility and early prepwork for #204.

    • [2021.06.06; Maikuolan]: Reworked checkbox support for the front-end configuration page in preparation for some future configuration directives.

    • [2021.06.08; Maikuolan]: Subtle aesthetic patch.

    • [2021.06.22; Maikuolan]: Slightly improved the field detection code for the tally mode of the front-end logs page.

    • [2021.06.25; Maikuolan]: The front-end sections list page now shows how many files a signatures section spans across.

    • [2021.06.28; Maikuolan]: Added a new configuration directive to toggle whether modules are/aren't allowed to override tracking options (tracking_override).

    • [2021.06.29; Bug-fix; Maikuolan]: The front-end file manager's pie chart's components accordion was broken; Fixed.

    • [2021.07.01; NEW FEATURE; Maikuolan]: Added support for a new type of component: Configuration imports. This will be helpful for allowing third-parties to add their own custom 'provides' data to CIDRAM for use with auxiliary rules, or their own configuration for their own custom modules and signature files, distinct from those components. 'Used with' can now also be an array, to allow components of mixed type.

    • [2021.07.02; Maikuolan]: Synced common classes package.

    • [2021.07.02; Maikuolan]: Added the ability for modules to support multiple languages.

    Caleb M (Maikuolan), July 2, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.5.1(Apr 11, 2021)

    Version/Release 2.5.1

    • [2021.03.11; Maikuolan]: Added some missing return type declarations.

    • [2021.03.12; Maikuolan]: Added a third configuration directive (other verification) to work alongside those for search engine and social media verification (since this merely extends existing functionality, rather than adding new functionality, I'm not marking this as a new feature).

    • [2021.03.18; Maikuolan]: Added closure for adding new profile entries, to make adding profile entries via modules a little cleaner and easier. Added closure to determine, based on current signature count and on whether any CAPTCHA solutions are enabled, whether to honour API lookups (ensures compatibility with modules written with future v3 code in mind).

    • [2021.03.31; Maikuolan]: Adjusted the IP test page as to allow testing user agents without the need to also specify an IP address. Added links to the entries displayed on the IP tracking page to immediately search for those particular entries in the logs.

    • [2021.04.06; Bug-fix; Maikuolan]: Unnecessary count check enforced on interdependent replacements; Removed.

    • [2021.04.07-09; Maikuolan]: Added proper component dependency support to the front-end updates page and revamped related code and update mechanisms.

    • [2021.04.10; Maikuolan]: Search engine verification update.

    • [2021.04.11; Maikuolan]: Updates handler activation closure will now activate its own dependencies, too.

    Caleb M (Maikuolan), April 11, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.18.1(Apr 11, 2021)

    Version/Release 1.18.1

    • [2021.03.12; Maikuolan]: Added a third configuration directive (other verification) to work alongside those for search engine and social media verification (since this merely extends existing functionality, rather than adding new functionality, I'm not marking this as a new feature).

    • [2021.03.18; Maikuolan]: Added closure for adding new profile entries, to make adding profile entries via modules a little cleaner and easier. Added closure to determine, based on current signature count and on whether any CAPTCHA solutions are enabled, whether to honour API lookups (ensures compatibility with modules written with future v3 code in mind).

    • [2021.03.31; Maikuolan]: Adjusted the IP test page as to allow testing user agents without the need to also specify an IP address. Added links to the entries displayed on the IP tracking page to immediately search for those particular entries in the logs.

    • [2021.04.06; Bug-fix; Maikuolan]: Unnecessary count check enforced on interdependent replacements; Removed.

    • [2021.04.07-09; Maikuolan]: Added proper component dependency support to the front-end updates page and revamped related code and update mechanisms.

    • [2021.04.10; Maikuolan]: Search engine verification update.

    • [2021.04.11; Bug-fix; Maikuolan]: Some component aliases were missing; Fixed.

    • [2021.04.11; Maikuolan]: Updates handler activation closure will now activate its own dependencies, too.

    Caleb M (Maikuolan), April 11, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Mar 3, 2021)

    Version/Release 2.5.0

    • [2020.10.08; Maikuolan]: Added some 'copy to clipboard' buttons to the homepage and statistics page.

    • [2020.10.09; Maikuolan]: Aesthetic patch + added a new theme.

    • [2020.10.09; NEW FEATURE; Maikuolan]: Added a range intersector to the front-end (along with the IP aggregator and the range subtractor, the range intersector provides an additional tool for managing sets of CIDRs, in this case, producing an intersect of two given sets of CIDRs). Also added the ability to the range subtractor to preserve section tags and some other kinds of peripheral data (the range intersector also has this ability).

    • [2020.10.10; Maikuolan]: Added the ability to edit existing auxiliary rules to the auxiliary rules page, to add new conditions, new webhooks, to be able to rearrange the execution order for all auxiliary rules at the same time, and improved the design of the page.

    • [2020.10.10; Bug-fix; Maikuolan]: MajorVersionNotice not declared early enough in frontend.php, causing an undefined index notice to occur; Fixed.

    • [2020.10.30; Maikuolan]: Redesigned the login pips and refactored some CSS.

    • [2020.11.12; Bug-fix; Maikuolan]: Fixed potential undefined index error caused by the front-end updates page repair mechanism.

    • [2020.11.13; Maikuolan]: Expanded the front-end range tables page to be able to distinguish between ignored and non-ignored signatures.

    • [2020.11.27; Maikuolan]: Ditched external test frameworks in favour of GitHub Actions. Replaced existing tests. (More work needs to eventually be done towards tests. This will eventually happen at some point).

    • [2020.11.27; Maikuolan]: Some minor code-style cleanup and removed support showing test results at the updates page (since we're using different mechanisms now anyway).

    • [2020.12.05; NEW FEATURE; Maikuolan]: Added the ability to the front-end logs page to specify whether to sort log entries by ascending or descending order, and added the ability to remember log page preferences, including the default log file to view when accessing the logs page.

    • [2020.12.05; Bug-fix; Maikuolan]: Possible compatibility problem with Cronable introduced on November 27th; Fixed.

    • [2020.12.13; Maikuolan]: Added fireEvent calls to the Trigger and Bypass closures.

    • [2021.01.10; Maikuolan]: Separated the code for performing outbound requests through cURL out to its own independent class.

    • [2021.02.05; Maikuolan]: The default timeout for external requests is now configurable.

    • [2021.02.05; Maikuolan]: The preview text next to the input fields on the configuration page didn't quite align properly; Fixed.

    • [2021.02.05; Maikuolan]: The message corresponding to the reCAPTCHA API used, which is ordinarily displayed when a request is blocked, can now be optionally enabled or disabled via the configuration.

    • [2021.02.16; NEW FEATURE; Maikuolan]: Added the ability to trigger the execution of PHP files via auxiliary rules.

    • [2021.02.18; Maikuolan]: Replaced some exceptions with errors, to provide more convenient feedback when using the front-end IP test page.

    • [2021.02.20; Maikuolan]: Sync common classes package.

    • [2021.02.22; Bug-fix; Maikuolan]: Reactivate flag within the front-end updater's internal procedure for updating and repairing components sometimes raised incorrectly; Fixed.

    • [2021.02.25; NEW FEATURE; Maikuolan]: The ability to ignore specific sections via the front-end sections list page has been extended as to be able to now ignore just specific countries of origin from within specific sections.

    • [2020.02.27; Bug-fixes; Maikuolan]: When using the front-end auxiliary rules page's edit mode, new rules would always be created, even when it wasn't wanted; Fixed. The infractions field provided by the front-end auxiliary rules page was being ignored by the back-end, rendering it useless; Fixed. When using the front-end auxiliary rules page's edit mode to change the action associated with a rule from 'run' to something else, conditions wouldn't transfer across properly and would be lost; Fixed. Also refactored various code associated with the auxiliary rules system.

    • [2021.02.28; Maikuolan]: Updated the 'other options and special flags' feature of the auxiliary rules system as to allow opposing values for some of the already existing options available, improved its aesthetics, and refactored the relevant code to make it more efficient and more extensible.

    • [2021.03.01; NEW FEATURE; Maikuolan]: Added a request profiling mechanism to the CIDRAM codebase. The profiling mechanism can be leveraged through standard signature files, through modules, or through auxiliary rules. This mechanism allows easier debugging of specific addresses or signatures when testing an address via the front-test IP test page, and allows the possibility of creating more complex auxiliary rules by way of seamlessly chaining more simpler rules together to accomplish a task or creating rules that utilise one or more flags without performing any other notable action.

    • [2021.03.01; Maikuolan]: Added CIDRs and profiles to the available sources list for auxiliary rules.

    • [2021.03.02; Bug-fix; Maikuolan]: Existing logic settings weren't preselected properly in the front-end auxiliary rules page's edit mode; Fixed.

    Caleb M (Maikuolan), March 3, 2021.

    Source code(tar.gz)
    Source code(zip)
  • v1.18.0(Mar 3, 2021)

    Version/Release 1.18.0

    • [2020.10.08; Maikuolan]: Added some 'copy to clipboard' buttons to the homepage and statistics page.

    • [2020.10.09; Maikuolan]: Aesthetic patch + added a new theme.

    • [2020.10.09; NEW FEATURE; Maikuolan]: Added a range intersector to the front-end (along with the IP aggregator and the range subtractor, the range intersector provides an additional tool for managing sets of CIDRs, in this case, producing an intersect of two given sets of CIDRs). Also added the ability to the range subtractor to preserve section tags and some other kinds of peripheral data (the range intersector also has this ability).

    • [2020.10.10; Maikuolan]: Added the ability to edit existing auxiliary rules to the auxiliary rules page, to add new conditions, new webhooks, to be able to rearrange the execution order for all auxiliary rules at the same time, and improved the design of the page.

    • [2020.10.10; Bug-fix; Maikuolan]: MajorVersionNotice not declared early enough in frontend.php, causing an undefined index notice to occur; Fixed.

    • [2020.10.30; Maikuolan]: Redesigned the login pips and refactored some CSS.

    • [2020.11.12; Bug-fix; Maikuolan]: Fixed potential undefined index error caused by the front-end updates page repair mechanism.

    • [2020.11.13; Maikuolan]: Expanded the front-end range tables page to be able to distinguish between ignored and non-ignored signatures.

    • [2020.11.27; Maikuolan]: Ditched external test frameworks in favour of GitHub Actions. Replaced existing tests. (More work needs to eventually be done towards tests. This will eventually happen at some point).

    • [2020.11.27; Maikuolan]: Some minor code-style cleanup and removed support showing test results at the updates page (since we're using different mechanisms now anyway).

    • [2020.12.05; NEW FEATURE; Maikuolan]: Added the ability to the front-end logs page to specify whether to sort log entries by ascending or descending order, and added the ability to remember log page preferences, including the default log file to view when accessing the logs page.

    • [2020.12.05; Bug-fix; Maikuolan]: Possible compatibility problem with Cronable introduced on November 27th; Fixed.

    • [2020.12.13; Maikuolan]: Added fireEvent calls to the Trigger and Bypass closures.

    • [2021.01.10; Maikuolan]: Separated the code for performing outbound requests through cURL out to its own independent class.

    • [2021.02.05; Maikuolan]: The default timeout for external requests is now configurable.

    • [2021.02.05; Maikuolan]: The preview text next to the input fields on the configuration page didn't quite align properly; Fixed.

    • [2021.02.05; Maikuolan]: The message corresponding to the reCAPTCHA API used, which is ordinarily displayed when a request is blocked, can now be optionally enabled or disabled via the configuration.

    • [2021.02.16; NEW FEATURE; Maikuolan]: Added the ability to trigger the execution of PHP files via auxiliary rules.

    • [2021.02.18; Maikuolan]: Replaced some exceptions with errors, to provide more convenient feedback when using the front-end IP test page.

    • [2021.02.20; Maikuolan]: Sync common classes package.

    • [2021.02.22; Bug-fix; Maikuolan]: Reactivate flag within the front-end updater's internal procedure for updating and repairing components sometimes raised incorrectly; Fixed.

    • [2021.02.25; NEW FEATURE; Maikuolan]: The ability to ignore specific sections via the front-end sections list page has been extended as to be able to now ignore just specific countries of origin from within specific sections.

    • [2020.02.27; Bug-fixes; Maikuolan]: When using the front-end auxiliary rules page's edit mode, new rules would always be created, even when it wasn't wanted; Fixed. The infractions field provided by the front-end auxiliary rules page was being ignored by the back-end, rendering it useless; Fixed. When using the front-end auxiliary rules page's edit mode to change the action associated with a rule from 'run' to something else, conditions wouldn't transfer across properly and would be lost; Fixed. Also refactored various code associated with the auxiliary rules system.

    • [2021.02.28; Maikuolan]: Updated the 'other options and special flags' feature of the auxiliary rules system as to allow opposing values for some of the already existing options available, improved its aesthetics, and refactored the relevant code to make it more efficient and more extensible.

    • [2021.03.01; NEW FEATURE; Maikuolan]: Added a request profiling mechanism to the CIDRAM codebase. The profiling mechanism can be leveraged through standard signature files, through modules, or through auxiliary rules. This mechanism allows easier debugging of specific addresses or signatures when testing an address via the front-test IP test page, and allows the possibility of creating more complex auxiliary rules by way of seamlessly chaining more simpler rules together to accomplish a task or creating rules that utilise one or more flags without performing any other notable action.

    • [2021.03.01; Maikuolan]: Added CIDRs and profiles to the available sources list for auxiliary rules.

    • [2021.03.02; Bug-fix; Maikuolan]: Existing logic settings weren't preselected properly in the front-end auxiliary rules page's edit mode; Fixed.

    Caleb M (Maikuolan), March 3, 2021.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.4.4(Oct 5, 2020)

    Version/Release 2.4.4

    • [2020.07.12; Maikuolan]: Added a major version checker to the front-end updates page.

    • [2020.07.13; Bug-fix; Maikuolan]: PHPMailer notifications would encode incorrectly when dealing with non-ANSI data (i.e., when using languages other than English); Fixed.

    • [2020.07.13; Bug-fix; Maikuolan]: Possible problem found with IsActivable when updating certain components via the front-end updates page; Fixed.

    • [2020.07.23; Maikuolan]: Updated channels.

    • [2020.07.31; Maikuolan]: Improved the way that the (generated by ...) notice, displayed at the footer of HTML pages, is rendered.

    • [2020.08.04; Maikuolan]: Addressed a potential compatibility problem with installations where PHP has its output proxied through to a different host. Also slightly improved the aesthetics of the front-end, and changed the logout link to a logout button.

    • [2020.08.06; Maikuolan]: Addressed a potential problem with calculating the number of bytes removed when updating components and slightly refactored the front-end functions file.

    • [2020.09.24; Maikuolan]: Added the option to the auxiliary rules to forcibly disable IP tracking.

    • [2020.09.30; Maikuolan]: Synced up common classes.

    • [2020.10.05; Maikuolan]: Very minor aesthetic fix.

    Caleb M (Maikuolan), October 5, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.17.4(Oct 5, 2020)

    Version/Release 1.17.4

    • [2020.07.12; Maikuolan]: Added a major version checker to the front-end updates page.

    • [2020.07.13; Bug-fix; Maikuolan]: PHPMailer notifications would encode incorrectly when dealing with non-ANSI data (i.e., when using languages other than English); Fixed.

    • [2020.07.13; Bug-fix; Maikuolan]: Possible problem found with IsActivable when updating certain components via the front-end updates page; Fixed.

    • [2020.07.23; Maikuolan]: Updated channels.

    • [2020.07.31; Maikuolan]: Improved the way that the (generated by ...) notice, displayed at the footer of HTML pages, is rendered.

    • [2020.08.04; Maikuolan]: Addressed a potential compatibility problem with installations where PHP has its output proxied through to a different host. Also slightly improved the aesthetics of the front-end, and changed the logout link to a logout button.

    • [2020.08.06; Maikuolan]: Addressed a potential problem with calculating the number of bytes removed when updating components and slightly refactored the front-end functions file.

    • [2020.09.24; Maikuolan]: Added the option to the auxiliary rules to forcibly disable IP tracking.

    • [2020.09.30; Maikuolan]: Synced up common classes.

    • [2020.10.05; Maikuolan]: Very minor aesthetic fix.

    Caleb M (Maikuolan), October 5, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Jul 3, 2020)

    Version/Release 2.4.3

    • [2020.06.20; Bug-fix; Maikuolan]: Logs were being written to the wrong directory in some cases due to the way that paths were being reconstructed; Fixed. Also improved some updates page guard code.

    • [2020.06.30; Maikuolan]: Added the ability for auxiliary rules conditions to be optionally matched via (not-)(greater|less)-than(-or-equal-to) operators.

    • [2020.07.03; Maikuolan]: Performed some minor refactoring.

    Caleb M (Maikuolan), July 3, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.17.3(Jul 3, 2020)

    Version/Release 1.17.3

    • [2020.06.20; Bug-fix; Maikuolan]: Logs were being written to the wrong directory in some cases due to the way that paths were being reconstructed; Fixed. Also improved some updates page guard code.

    • [2020.06.30; Maikuolan]: Added the ability for auxiliary rules conditions to be optionally matched via (not-)(greater|less)-than(-or-equal-to) operators.

    • [2020.07.03; Maikuolan]: Performed some minor refactoring.

    Caleb M (Maikuolan), July 3, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Jun 19, 2020)

    Version/Release 2.4.2

    • [2020.05.07; Maikuolan]: Some very minor aesthetic improvements.

    • [2020.05.16; Maikuolan]: Slightly improved the safety of some included hyperlinks by way of including rel tags like noopener, noreferrer, external. Added the ability for configuration defaults to define regular expressions to be applied to their own values through preg_replace, thus complimenting the existing auto-typing functionality (CIDRAM won't yet be using this functionality for its own configuration defaults, but it is added with the intent to provide a mechanism by which modules may be able to provide additional safeguards of their own against bad configuration values).

    • [2020.05.28; Bug-fix; Maikuolan]: The front-end accounts page was incorrectly reporting argon2id passwords as invalid; Fixed.

    • [2020.06.02; Maikuolan]: Worked on some more minor aesthetic improvements. Also added some configuration filters (based on the work done last month) to some specific potentially error-prone configuration directives to help reduce the risk of erroneous values being specified there.

    • [2020.06.03; Maikuolan]: The IP test page will now show when an IP belongs to an ignored signature section, regardless of whether that IP is blocked (this is to aid users checking IP addresses before suggesting them as new additions to ensure that they aren't already listed). Slightly strengthened the sanity checks performed by the front-end updates page when it verifies components.

    • [2020.06.07; Maikuolan]: Very slightly improved the logic at the front-end updates page for determining whether a component is active or inactive.

    • [2020.06.11; Maikuolan]: Slightly improved some PHPDoc annotations.

    • [2020.06.15; Maikuolan]: Performed some minor refactoring.

    • [2020.06.17; Maikuolan]: Strengthened some guard code (the potential existed for some edge-case errors to occasionally slip through the existing code).

    • [2020.06.19; Bug-fix; Maikuolan]: Logging broken due to missing parameter in the preg_split call in the recently introduced BuildPath closure; Fixed.

    Caleb M (Maikuolan), June 19, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.17.2(Jun 19, 2020)

    Version/Release 1.17.2

    • [2020.05.07; Maikuolan]: Some very minor aesthetic improvements.

    • [2020.05.16; Maikuolan]: Slightly improved the safety of some included hyperlinks by way of including rel tags like noopener, noreferrer, external. Added the ability for configuration defaults to define regular expressions to be applied to their own values through preg_replace, thus complimenting the existing auto-typing functionality (CIDRAM won't yet be using this functionality for its own configuration defaults, but it is added with the intent to provide a mechanism by which modules may be able to provide additional safeguards of their own against bad configuration values).

    • [2020.05.28; Bug-fix; Maikuolan]: The front-end accounts page was incorrectly reporting argon2id passwords as invalid; Fixed.

    • [2020.06.02; Maikuolan]: Worked on some more minor aesthetic improvements. Also added some configuration filters (based on the work done last month) to some specific potentially error-prone configuration directives to help reduce the risk of erroneous values being specified there.

    • [2020.06.03; Maikuolan]: The IP test page will now show when an IP belongs to an ignored signature section, regardless of whether that IP is blocked (this is to aid users checking IP addresses before suggesting them as new additions to ensure that they aren't already listed). Slightly strengthened the sanity checks performed by the front-end updates page when it verifies components.

    • [2020.06.07; Maikuolan]: Very slightly improved the logic at the front-end updates page for determining whether a component is active or inactive.

    • [2020.06.11; Maikuolan]: Slightly improved some PHPDoc annotations.

    • [2020.06.15; Maikuolan]: Performed some minor refactoring.

    • [2020.06.17; Maikuolan]: Strengthened some guard code (the potential existed for some edge-case errors to occasionally slip through the existing code).

    • [2020.06.19; Bug-fix; Maikuolan]: Logging broken due to missing parameter in the preg_split call in the recently introduced BuildPath closure; Fixed.

    Caleb M (Maikuolan), June 19, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(May 1, 2020)

    Version/Release 2.4.1

    • [2020.04.04; Maikuolan]: Updated the execution chain as such that a whitelist action performed from within a module can immediately terminate any further processing of modules for the given request. Updated the front-end configuration page as so that some basic formatting and normalisation of dropdown menu options will now occur when possible.

    • [2020.04.13; Maikuolan]: Performed some minor refactoring. Also added some code to allow modules to install their own class dependencies when installing/updating, when needed.

    • [2020.04.24; Maikuolan]: Reworked the auxiliary rules interface, changing the structure and layout to hopefully make it somewhat more intuitive and easier to use. Added the ability for auxiliary rules to override the default HTTP status code provided to blocked requests on a per-rule basis. Added the ability to attach webhooks to auxiliary rules. Added the ability to create auxiliary rules to redirect requests elsewhere without blocking them. Added the ability for auxiliary rules to mark requests for use with reCAPTCHA and to suppress output templates. Reworked the webhooks system to make it a little cleaner and to provide the ability for multiple webhooks to be triggered per request. Updated the IP test page to display when a tested IP raises a flag (e.g., marked for use with reCAPTCHA, suppress output template, don't log, etc).

    Caleb M (Maikuolan), May 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.17.1(May 1, 2020)

    Version/Release 1.17.1

    • [2020.04.04; Maikuolan]: Updated the execution chain as such that a whitelist action performed from within a module can immediately terminate any further processing of modules for the given request. Updated the front-end configuration page as so that some basic formatting and normalisation of dropdown menu options will now occur when possible.

    • [2020.04.13; Maikuolan]: Performed some minor refactoring. Also added some code to allow modules to install their own class dependencies when installing/updating, when needed.

    • [2020.04.24; Maikuolan]: Reworked the auxiliary rules interface, changing the structure and layout to hopefully make it somewhat more intuitive and easier to use. Added the ability for auxiliary rules to override the default HTTP status code provided to blocked requests on a per-rule basis. Added the ability to attach webhooks to auxiliary rules. Added the ability to create auxiliary rules to redirect requests elsewhere without blocking them. Added the ability for auxiliary rules to mark requests for use with reCAPTCHA and to suppress output templates. Reworked the webhooks system to make it a little cleaner and to provide the ability for multiple webhooks to be triggered per request. Updated the IP test page to display when a tested IP raises a flag (e.g., marked for use with reCAPTCHA, suppress output template, don't log, etc).

    Caleb M (Maikuolan), May 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Mar 1, 2020)

    Version/Release 2.4.0

    • [2020.01.01; Bug-fix; Maikuolan]: The cache handler's PDO query template for deleting expired cache entries was malformed; Fixed.

    • [2020.01.11; Bug-fixes; Maikuolan]: Syntactically invalid IPv6 addresses could be potentially accepted or produced by the aggregator, the CIDR calculator, or the range subtractor in some obscure circumstances due an insufficiently bound regular expression; Fixed. The range subtractor occasionally wasn't producing the correct differences when IPv6 ranges and addresses with sufficiently contracted shortforms were supplied for subtraction; Fixed.

    • [2020.01.11; Maikuolan]: Added social media verification support for Facebook external hit requests (requires an ASN lookup facility in order to work correctly; the BGPView module can be used for this purpose). Added the ability for CIDRAM to cache module objects in order to prevent superfluous IO operations to module files. This is similar to the way that files associated with 'Run' parameters can already be cached. Added ASNLookup and CCLookup as silent BlockInfo fields (not populated by default, but can be populated by an appropriate facility, leveraged by modules, search engine and social verification, etc).

    • [2020.01.12; Bug-fix; Maikuolan]: Found and fixed a small typo in the choice filter for the default_algo configuration directive.

    • [2020.01.13; Bug-fix; Maikuolan]: Repair was always failing, specifically for just the very first component to appear in any particular components metadata file; Fixed.

    • [2020.01.24; Maikuolan]: Added the ability to graphically represent the currently active signatures files as a dynamic image at the front-end range tables page.

    • [2020.01.25; Maikuolan]: Performed some minor refactoring.

    • [2020.02.02; Maikuolan]: Added a new configuration directive, "exceptions", to provide a way to exempt whitelisted requests, and verified search engine and social media requests, from being rate limited (for when rate limiting is enabled). Added the ability to create auxiliary rules on the basis of ASN lookups, country code lookups, and verified identities (i.e., positive returns from search engine and social media verification). Updated the IP test page as to be able to identify ignored sections and signatures.

    • [2020.01.25; Maikuolan]: Dropped Teoma support from search engine verification (it's completely dead) and added support for Qwantify/Bleriot.

    • [2020.02.13; Bug-fix; Maikuolan]: Fixed an undefined index error.

    • [2020.02.08/29; Maikuolan]: Performed some minor refactoring.

    Caleb M (Maikuolan), March 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.17.0(Mar 1, 2020)

    Version/Release 1.17.0

    • [2020.01.01; Bug-fix; Maikuolan]: The cache handler's PDO query template for deleting expired cache entries was malformed; Fixed.

    • [2020.01.11; Bug-fixes; Maikuolan]: Syntactically invalid IPv6 addresses could be potentially accepted or produced by the aggregator, the CIDR calculator, or the range subtractor in some obscure circumstances due an insufficiently bound regular expression; Fixed. The range subtractor occasionally wasn't producing the correct differences when IPv6 ranges and addresses with sufficiently contracted shortforms were supplied for subtraction; Fixed.

    • [2020.01.11; Maikuolan]: Added social media verification support for Facebook external hit requests (requires an ASN lookup facility in order to work correctly; the BGPView module can be used for this purpose). Added the ability for CIDRAM to cache module objects in order to prevent superfluous IO operations to module files. This is similar to the way that files associated with 'Run' parameters can already be cached. Added ASNLookup and CCLookup as silent BlockInfo fields (not populated by default, but can be populated by an appropriate facility, leveraged by modules, search engine and social verification, etc).

    • [2020.01.12; Bug-fix; Maikuolan]: Found and fixed a small typo in the choice filter for the default_algo configuration directive.

    • [2020.01.13; Bug-fix; Maikuolan]: Repair was always failing, specifically for just the very first component to appear in any particular components metadata file; Fixed.

    • [2020.01.25; Maikuolan]: Performed some minor refactoring.

    • [2020.02.02; Maikuolan]: Added a new configuration directive, "exceptions", to provide a way to exempt whitelisted requests, and verified search engine and social media requests, from being rate limited (for when rate limiting is enabled). Added the ability to create auxiliary rules on the basis of ASN lookups, country code lookups, and verified identities (i.e., positive returns from search engine and social media verification). Updated the IP test page as to be able to identify ignored sections and signatures.

    • [2020.01.25; Maikuolan]: Dropped Teoma support from search engine verification (it's completely dead) and added support for Qwantify/Bleriot.

    • [2020.02.13; Bug-fix; Maikuolan]: Fixed an undefined index error.

    • [2020.02.08/29; Maikuolan]: Performed some minor refactoring.

    Caleb M (Maikuolan), March 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Jan 1, 2020)

    Version/Release 2.3.0

    • [2019.12.10; Maikuolan]: Replaced pow() calls with the exponentiation operator, which per benchmarks, is just marginally faster.

    • [2019.12.10; Bug-fix; Maikuolan]: Undefined variable notice when uninstalling components via the front-end updates page; Fixed.

    • [2019.12.11; Bug-fix; Maikuolan]: Internal duplication of component metadata at the downstream could sometimes occur in some specific contexts, thereby preventing the front-end updates page offering the option to repair the affected components; Fixed.

    • [2019.12.12; Maikuolan]: Added some callable hooks to the IP aggregator to assist with benchmarking and progress reporting in some contexts (e.g., CLI). See raw.githubusercontent.com/CIDRAM/CIDRAM-Extras/master/cli/cli-benchmark-sample-2019-12-12.txt

    • [2019.12.12; Maikuolan]: Added a "clear all" button to the cache data page.

    • [2019.12.12; Bug-fix; Maikuolan]: The directory traversal detection code was unintentionally catching .htaccess files, thereby causing unnecessary forced failures on some specific front-end operations; Fixed.

    • [2019.12.22; NEW FEATURE; Maikuolan]: Added a range subtractor to the front-end (this is kind of like a compliment/reverse to the IP aggregator).

    • [2019.12.23; Bug-fix; Maikuolan]: The IP aggregator was able to successfully capture IPs and CIDRs contained within comments, but it should be ignoring comments entirely; Fixed.

    • [2019.12.27; Bug-fix; Maikuolan]: The cache handler's mechanism for creating missing tables in PDO used a malformed query and didn't work properly; Fixed.

    • [2019.12.31; Maikuolan]: Updated channels.

    • [2019.12.31; Bug-fixes; Maikuolan]: Configuring the supplementary cache options in a certain way, due to the way that the front-end updates page interacted with the cache handler, could potentially cause the updater to perform multiple, superfluous outbound requests during normal operation, thereby causing it to lag out and generate server error messages; Fixed. Since 2019.12.11, the updater would sometimes fail to correctly detect and prepare newly found components from the upstream; Fixed. Also added a new mechanism to the codebase to aid with diagnosing bugs in the future (disabled by default; not configurable).

    • [2019.12.31; Bug-fix; Maikuolan]: Merged the code block for generating salts into the code block for loading the reCAPTCHA module within the output generator in order to avoid undefined index errors appearing.

    Caleb M (Maikuolan), January 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
  • v1.16.0(Jan 1, 2020)

    Version/Release 1.16.0

    • [2019.12.10; Bug-fix; Maikuolan]: Undefined variable notice when uninstalling components via the front-end updates page; Fixed.

    • [2019.12.11; Bug-fix; Maikuolan]: Internal duplication of component metadata at the downstream could sometimes occur in some specific contexts, thereby preventing the front-end updates page offering the option to repair the affected components; Fixed.

    • [2019.12.12; Maikuolan]: Added some callable hooks to the IP aggregator to assist with benchmarking and progress reporting in some contexts (e.g., CLI). See raw.githubusercontent.com/CIDRAM/CIDRAM-Extras/master/cli/cli-benchmark-sample-2019-12-12.txt

    • [2019.12.12; Maikuolan]: Added a "clear all" button to the cache data page.

    • [2019.12.12; Bug-fix; Maikuolan]: The directory traversal detection code was unintentionally catching .htaccess files, thereby causing unnecessary forced failures on some specific front-end operations; Fixed.

    • [2019.12.22; NEW FEATURE; Maikuolan]: Added a range subtractor to the front-end (this is kind of like a compliment/reverse to the IP aggregator).

    • [2019.12.23; Bug-fix; Maikuolan]: The IP aggregator was able to successfully capture IPs and CIDRs contained within comments, but it should be ignoring comments entirely; Fixed.

    • [2019.12.27; Bug-fix; Maikuolan]: The cache handler's mechanism for creating missing tables in PDO used a malformed query and didn't work properly; Fixed.

    • [2019.12.31; Maikuolan]: Updated channels.

    • [2019.12.31; Bug-fixes; Maikuolan]: Configuring the supplementary cache options in a certain way, due to the way that the front-end updates page interacted with the cache handler, could potentially cause the updater to perform multiple, superfluous outbound requests during normal operation, thereby causing it to lag out and generate server error messages; Fixed. Since 2019.12.11, the updater would sometimes fail to correctly detect and prepare newly found components from the upstream; Fixed. Also added a new mechanism to the codebase to aid with diagnosing bugs in the future (disabled by default; not configurable).

    • [2019.12.31; Bug-fix; Maikuolan]: Merged the code block for generating salts into the code block for loading the reCAPTCHA module within the output generator in order to avoid undefined index errors appearing.

    Caleb M (Maikuolan), January 1, 2020.

    Download CIDRAM

    Source code(tar.gz)
    Source code(zip)
A simple php (lumen) app for sharing sensitive text (basically like onetimesecret), but with full end-to-end AES-256-GCM encryption so even the server has no access to the data, and developed with very simple deployment in mind.

A simple php (lumen) app for sharing sensitive text (basically like onetimesecret), but with full end-to-end AES-256-GCM encryption so even the server has no access to the data, and developed with very simple deployment in mind.

Alan Woo 51 Nov 21, 2022
A simple, yet feature rich password manager for Nextcloud

Easy to use yet feature-rich and secure password manager for Nextcloud

M. Wieschollek 169 Jan 3, 2023
Password manager featuring client-side encryption, vaults, folders and more.

vaults is a password manager featuring client side AES-256 encryption, PBKDF2 hashing, vaults, password generation & more. Features Technical overview

null 27 Nov 18, 2022
Github Action which checks Security issues scanning package manager files

security-checker-action This action checks your composer.lock for known vulnerabilities in your package dependencies. Inputs lock optional The path to

Druid 0 May 5, 2022
PHP routing class. Lightweight yet flexible. Supports REST, dynamic and reversed routing.

AltoRouter AltoRouter is a small but powerful routing class, heavily inspired by klein.php. $router = new AltoRouter(); // map homepage $router->map(

Danny van Kooten 1.1k Jan 3, 2023
Routing - The Routing component maps an HTTP request to a set of configuration variables.

Routing Component The Routing component maps an HTTP request to a set of configuration variables. Getting Started $ composer require symfony/routing

Symfony 7.3k Jan 6, 2023
[DEPRECATED] Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List

DEPRECATED Consider to use https://github.com/jeremykendall/php-domain-parser as maintained alternative. TLDExtract TLDExtract accurately separates th

Oleksandr Fediashov 216 Oct 18, 2022
Laravel URL Localization Manager - [ccTLD, sub-domain, sub-directory].

Laravel URL Localization - (ccTLD, sub-domain, sub-directory). with Simple & Easy Helpers. Afrikaans Akan shqip አማርኛ العربية հայերեն অসমীয়া azərbayca

Pharaonic 2 Aug 7, 2022
Laravel 8 Project Restrict User Access From IP Addresses. prevent other ip address that want to access over secure api or urls.

block-ip-address-laravel Laravel 8 Project Restrict User Access From IP Addresses. prevent other ip address that want to access over secure api or url

Hasmukh Dharajiya 2 Mar 24, 2022
Middleware to generate access logs for each request using the Apache's access log format

Middleware to generate access logs for each request using the Apache's access log format. This middleware requires a Psr log implementation, for example monolog.

Middlewares 20 Jun 23, 2022
Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

null 3.2k Jan 5, 2023
GUI manager for RBAC (Role Base Access Control) Yii2. Easy to manage authorization of user

RBAC Manager for Yii 2 GUI manager for RBAC (Role Base Access Control) Yii2. Easy to manage authorization of user ?? . Documentation Important: If you

MDMunir Software 1.2k Jan 7, 2023
An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

?? RankSystem ?? An amazing Rank and Permissions Manager Description: An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-M

null 22 Nov 7, 2022
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Prasath Mani 3.5k Jan 7, 2023
flare Manager .flare framework Manager

flare-Manager flare Manager .flare framework Manager Welcome to the flare-Manager install Flare form https://github.com/flare-framework/Flare move ind

Flare framework 1 Aug 14, 2022
Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3+ that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI.

laravelpodcast | A Laravel podcast manager package - v0.0.8 Introduction Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3

Jeremy Kenedy 22 Nov 4, 2022
CI4-Lic is a software license manager modul for Codeigniter 4, connecting to WordPress license server based on the Software License Manager Plugin.

CI4-Lic CI4-Lic is a software license manager modul for Codeigniter 4, connecting to WordPress license server based on Software License Manager Plugin

George Lewe 1 Jan 15, 2022
Laragon MultiPHP per App + PECL Module + Extension manager + Ini Manager

LMPA Laragon MultiPHP per App This tools allow you to run multiple PHP version per app with Laragon, so you can have multiple site running different p

Gilbert Paquin 8 Oct 10, 2022
Laravel Manager - provides some manager functionality for Laravel

Laravel Manager Laravel Manager was created by, and is maintained by Graham Campbell, and provides some manager functionality for Laravel. Feel free t

Graham Campbell 371 Dec 17, 2022
Laravel Manager provides some manager functionality for Laravel

Laravel Manager Laravel Manager was created by, and is maintained by Graham Campbell, and provides some manager functionality for Laravel. Feel free t

Graham Campbell 371 Jul 11, 2022