Commit Graph
100 Commits
Author SHA1 Message Date
jrenslin fc727932ca Make function in MD_STD_HTML_TEST final 2024-07-12 02:54:26 +02:00
jrenslin 40d83ce5b0 Add class MD_STD_HTML_TEST for validating HTML outputs 2024-07-12 02:31:42 +02:00
jrenslin cbc66c4140 Improve test coverage for MD_STD_SEC 2024-07-11 15:32:50 +02:00
jrenslin 11faeaa7e7 Improve test coverage 2024-07-11 14:53:05 +02:00
jrenslin fb008e1b59 Add function for ensuring all input in an array is strings 2024-07-09 16:43:21 +02:00
jrenslin cd46a3ec73 Add wrapper around file_put_contents 2024-06-24 16:53:01 +02:00
jrenslin 94dfa17290 Fix code smells 2024-06-11 21:57:56 +02:00
jrenslin d4918dd893 Handle dates outside of strtotime()'s range in date_to_int, int_to_date
Close #9
2024-05-05 00:48:04 +02:00
jrenslin fb1372d193 Use MD_STD::strtotime() over strtotime() 2024-05-04 01:19:52 +02:00
jrenslin 63ac1b296e Add functions for transferring dates to ints and vice versa 2024-05-03 17:42:32 +02:00
jrenslin 8c1050f40a Add wrapper around MD_STD::strtotime() that will throw an expected
exception
2024-01-30 01:21:51 +01:00
jrenslin 2bea372973 Use phpstan-specific comments for main sanitization + validation
functions
2024-01-14 22:18:48 +01:00
jrenslin 69e6850c16 Write prettier error message in MDFailedToCreateDirectory 2023-11-27 01:31:16 +01:00
jrenslin 8006695093 Throw a specific exception if MD_STD::mkdir fails
Close #8
2023-11-27 01:30:43 +01:00
jrenslin db31822a3f Use empty() over === false to also return error in case of empty strings 2023-11-10 16:17:20 +01:00
jrenslin 0fb368b96d Extend MD_STD_IN::sanitize_url to automatically set protocol / scheme
names in lowercase
2023-11-09 16:40:28 +01:00
jrenslin 66e704de47 Extend tests for MD_STD_IN considerably, fix some edge cases 2023-11-08 21:24:23 +01:00
jrenslin a03f072a69 Add function for validating ZIP codes (somewhat) 2023-11-08 02:18:34 +01:00
jrenslin d83ed2d0eb Improve indentation in phpunit 2023-11-07 22:52:23 +01:00
jrenslin 2c58e0554b Improve coverage of MD_STD_IN 2023-11-07 22:50:18 +01:00
jrenslin 1f2f63c9af Set beStrictAboutOutputDuringTests=true in phpunit.xml 2023-11-06 23:49:27 +01:00
jrenslin c9dce8f782 Annotate the available tests as @small 2023-11-06 23:26:21 +01:00
jrenslin 0c0d059dd3 Add testsuite for /tests directory in phpunit.xml 2023-11-06 23:03:35 +01:00
jrenslin 5d80f82040 Remove printer class / use testdox by default in phpunit setup 2023-11-06 23:02:44 +01:00
jrenslin 5c2c1a47cc Fully ensure all URL components are present for rewriting 2023-11-05 23:37:28 +01:00
jrenslin ae12cfdf0f Add tests for MD_STD_IN::sanitize_url() and ensure it supports rewriting
unencoded cyrillic inputs

Close #7
2023-11-05 23:29:14 +01:00
jrenslin 2176e7312b Remove MD_STD_CACHE open_redis_default() 2023-10-05 16:58:48 +02:00
jrenslin 3ece870f0c Require externally set up redis connection for caching + serving full pages via
redis
2023-10-05 16:45:35 +02:00
jrenslin b143845aea Fix type-safety issues around curl in new checking HTTP status function 2023-08-18 15:12:45 +02:00
jrenslin 88458df949 Add general abstract classes for tests, starting with test classes for
RSS feeds
2023-08-18 15:09:58 +02:00
jrenslin 9c49afe416 Improve comment on return parameter 2023-08-16 20:09:22 +02:00
jrenslin 6426947e60 Add function for getting user language without using cookies 2023-08-14 15:15:41 +02:00
jrenslin a8599667c9 Use is_file() over file_exists() in MD_STD::ensure_file() 2023-07-21 16:09:43 +02:00
jrenslin bb36388e7e Add README 2023-06-24 02:04:03 +02:00
jrenslin 66a5b77b51 Add function unlink_if_exists 2023-04-14 14:13:09 +02:00
jrenslin 23232f4e6a Remove superfluous variable assignments 2022-09-15 21:38:41 +02:00
jrenslin c38f0146dc Allow passing existing redis connections to MD_STD_CACHE 2022-09-04 23:27:04 +02:00
jrenslin bbac217aa0 Reduce factors for setting anti-brute force delays 2022-08-14 18:12:33 +02:00
jrenslin ced5a65122 Fix variable misnomers in MD_STD_SEC 2022-08-14 16:17:03 +02:00
jrenslin 52aeedd31e Set a cap to maximum delay in preventing brute force attacks
This is necessary because PHP-FPM fails if sleep / usleep runs beyond
the maximum execution time of php.ini, leading to whole vhosts falling
over.
2022-08-14 13:08:40 +02:00
jrenslin f477401114 Add functions for validating longitudes and latitutdes 2022-07-28 11:01:30 +02:00
jrenslin c362aa1283 Remove superfluous checks for empty realnames 2022-03-31 14:38:02 +02:00
jrenslin 65aaea4097 Check links for using an accepted scheme during validation (http, https,
ftp)
2022-03-30 13:03:04 +02:00
jrenslin 7c02bbb8ad Fix function comment for setting content-security-policies 2022-03-29 17:51:21 +02:00
jrenslin 6a7b8bd8fd Disable setting language cookie for curl or clients without user agents 2022-03-26 16:49:10 +01:00
jrenslin 8d7b270f6f Allow setting worker-src in MD_STD_SEC 2022-03-24 23:25:05 +01:00
jrenslin 9507387c8a Fix bug in validating ISBN 13s 2022-03-11 23:31:41 +01:00
jrenslin 589161219f Require numbers OR special chars for passwords, not AND 2022-03-09 00:16:55 +01:00
jrenslin e18b649250 Return array of error messages on password validate 2022-03-08 21:23:45 +01:00
jrenslin 5bb863ffc9 Add function validate_password 2022-03-08 20:12:54 +01:00
jrenslin 1b63951b44 Enable TCP Fast-Open for outgoing curl requests 2022-02-12 23:06:53 +01:00
jrenslin 93991225fe Use curl_setopt_array and enable http2 for speeding up CURL requests 2022-02-12 22:51:42 +01:00
jrenslin 321609306d Use strip tags in sanitize_text over deprecated FILTER_SANITIZE_STRING 2022-02-02 02:18:33 +01:00
jrenslin 2a333c1de6 Simplify MD_STD::startsWithAny 2022-01-16 15:19:40 +01:00
jrenslin c689f7568f Allow empty input haystacks in MD_STD::stri_contains() 2022-01-09 22:20:05 +01:00
jrenslin dc86540da2 Explicitly expect positive ints for depths in MD_STD::json_encode 2022-01-08 01:09:57 +01:00
jrenslin e50f1f0526 Remove superfluous parentheses 2021-12-24 02:01:53 +01:00
jrenslin e2ada291f7 Fix bug in splitting int arrays, add function for splitting string
arrays
2021-12-14 03:16:11 +01:00
jrenslin aa7a3c5012 Clarify prevention of empty returns in array splitter 2021-11-30 00:45:02 +01:00
jrenslin 3f37dd7a9e Improve phpdoc types, type-safety 2021-11-29 22:30:28 +01:00
jrenslin 86c8235dae Specify MDJsonEncodingFailedException for failure to encode JSON through
MD_STD::json_encode
2021-11-26 03:23:07 +01:00
jrenslin 8f5174e90d Move to rather locking down based on user accounts than on IP in
MD_STD_SEC, use class constants for more obvious code
2021-11-25 01:09:08 +01:00
jrenslin 80af1ef260 Add function for opening redis connection using default settings 2021-11-22 23:44:53 +01:00
jrenslin eb869071b8 Add class for splitting a list into lists of a predefined size 2021-11-16 14:40:38 +01:00
jrenslin e19e0c875c Add function for batch validating ids in an array 2021-11-03 02:41:22 +01:00
jrenslin 245d161805 Add function stri_contains for case-insensitive, but intuitive
str_contains
2021-09-28 01:15:51 +02:00
jrenslin a1e6d7773b Fix error in sorting a searched list by an inherent value 2021-09-26 19:25:07 +02:00
jrenslin d35e3ed003 Fix error in sorting by external list 2021-09-26 19:23:42 +02:00
jrenslin 9113cad57e Add new class MD_STD_SORT to provide useful sorting tools 2021-09-26 01:02:18 +02:00
jrenslin 143a4680e2 Add validation function for phone numbers 2021-09-25 21:56:01 +02:00
jrenslin a6ebab3e03 Remove superfluous parentheses 2021-09-17 15:52:37 +02:00
jrenslin 80ab3216d5 Allow setting headers when running MD_STD::runCurl 2021-08-12 13:57:25 +02:00
jrenslin 2071b57053 Add class MD_STD_DEBUG for debugging and code improvements 2021-07-27 23:44:08 +02:00
jrenslin 5e7313f166 Use MD_STD::json_encode over the generic json_encode 2021-07-20 18:25:34 +02:00
jrenslin 1c5d451619 Add json_encode_object for encoding objects (mainly SimpleXML obj.) 2021-07-20 18:15:23 +02:00
jrenslin 7fb5ad8ced Deprecate MD_STD::startsWith - can be replaced by str_starts_with 2021-07-20 12:51:46 +02:00
jrenslin 01ac23229b Use MD_STD::unlink over unlink in mime type check 2021-07-20 03:34:01 +02:00
jrenslin d53303e617 Add option to pass acceptable mime types to
MD_STD_IN::move_uploaded_file
2021-07-20 02:04:55 +02:00
jrenslin 6adf0ee0a2 Add wrapper around move_uploaded_file 2021-07-20 01:26:31 +02:00
jrenslin dbbdf4f230 Add function to ensure an input string is UTF-8 encoded 2021-07-01 15:34:46 +02:00
jrenslin f030adba20 Set worker-src 'self' in MD_STD_SEC 2021-05-15 17:17:53 +02:00
jrenslin 980c408631 Remove explicit naming of domain in setcookie 2021-05-15 15:37:05 +02:00
jrenslin a06a6ed41d Prepare for PHP 8 2021-05-13 23:02:37 +02:00
jrenslin 20c33437c9 Add function for checking the mime type of a remove file 2021-05-13 22:18:58 +02:00
jrenslin 63d6154d40 Fix spelling in setting language cookie
See #6
2021-05-13 15:21:06 +02:00
jrenslin d03befe483 Use prefixed cookies for user language 2021-05-13 14:48:44 +02:00
jrenslin fe0a8ba83b Remove obsolete phpcs exclusions 2021-05-01 22:54:37 +02:00
jrenslin 3b5f20aa96 Add missing "static" keyword in MD_STD 2021-04-14 18:16:13 +02:00
jrenslin 56f4fdc88a Add function get_user_lang for getting user language based on cookies 2021-04-14 17:59:11 +02:00
jrenslin 919ffdb1b5 Use ++$i over $i++
This slightly improves performance.
2021-04-11 21:20:44 +02:00
jrenslin 36bdb36986 Use consistent first uppercase char in MD_STD reference to exception 2021-04-09 13:45:19 +02:00
jrenslin 2c1f6a0490 Move scripts to /src subdirectory 2021-03-09 20:09:11 +01:00
jrenslin 06bbaf5f97 Ad doption to set start character on an unordered list in md output 2021-02-21 01:57:15 +01:00
jrenslin 376333b660 Add class MDFormatter for formatting contents in markdown 2021-02-19 00:49:26 +01:00
jrenslin 1b1d33229d Update MD_STD_CACHE to reload error pages 2021-02-09 15:18:40 +01:00
jrenslin 8aa9d94acf Remove inline if clauses 2021-02-06 20:08:37 +01:00
jrenslin 217e1fc86b Consistently use "null" over "NULL" 2021-02-06 19:55:54 +01:00
jrenslin 605fd88b6e Use new line for unsetting variable 2021-02-06 17:35:11 +01:00
jrenslin 7a252c6bfa Improve sanitization of color inputs 2021-01-30 22:56:00 +01:00
jrenslin 89e06769f1 Add class for validating color codes 2021-01-28 21:47:59 +01:00