commit 24b8084c7cce976f99df3325d10e690d5e36fed6 Author: Sophia Atkinson Date: Sun Mar 3 21:16:50 2024 -0800 Initial commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md new file mode 100644 index 0000000..b8a888f --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +Cloudflare Turnstile for YOURLS Admin +==================== + +Plugin for [YOURLS](https://yourls.org) `v1.19.2`. + +*I haven't tested it with older versions so tread with caution :)* + +**This plugin is roughly based off [this plugin](https://github.com/axilaris/admin-yourls-recaptcha-v3/)** + +Description +----------- +Adds Cloudflare Turnstile to the YOURLS Admin login. + +Installation +------------ +1. In `/user/plugins`, create a new folder named `yourls-cf-turnstile`. +2. Drop these files in that directory. +3. Change `YOUR_CF_TURNSTILE_SITE_KEY` and `YOUR_CF_TURNSTILE_SECRET_KEY` to the keys found on the [Turnstile Page](https://dash.cloudflare.com/?to=/:account/turnstile) +4. Go to the Plugins administration page ( *eg* `http://sho.rt/admin/plugins.php` ) and activate the plugin. + +Thats all folks +------------ \ No newline at end of file diff --git a/cf_turnstile_verify.php b/cf_turnstile_verify.php new file mode 100644 index 0000000..93993b8 --- /dev/null +++ b/cf_turnstile_verify.php @@ -0,0 +1,26 @@ + $token, + 'secret' => CF_TURNSTILE_SECRET_KEY, + ); + + // Send the POST request + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $verification_endpoint); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($verification_data)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $response = curl_exec($ch); + curl_close($ch); + + // Return the verification response + echo $response; +} else { + echo json_encode(array('success' => false, 'error' => 'Token not found')); +} \ No newline at end of file diff --git a/plugin.php b/plugin.php new file mode 100644 index 0000000..7f853ca --- /dev/null +++ b/plugin.php @@ -0,0 +1,64 @@ +'; +} + +// Cloudflare Turnstile widget to the YOURLS admin login form +yourls_add_action('login_form_bottom', 'cf_turnstile_login_form'); +function cf_turnstile_login_form() { + echo '
'; + echo ''; +} + +// Initialize Cloudflare Turnstile widget +yourls_add_action('login_form_end', 'cf_turnstile_inject_script'); +function cf_turnstile_inject_script() { + echo ''; +} \ No newline at end of file