Changeset 3723184
- Timestamp:
- 10/01/2026 12:56:25 PM (3 weeks ago)
- Location:
- octanist
- Files:
-
- 8 edited
- 1 copied
-
tags/4.1.2 (copied) (copied from octanist/trunk )
-
tags/4.1.2/README.md (modified) (2 diffs)
-
tags/4.1.2/includes/forms/class-octanist-form-capture.php (modified) (2 diffs)
-
tags/4.1.2/octanist.php (modified) (2 diffs)
-
tags/4.1.2/readme.txt (modified) (2 diffs)
-
trunk/README.md (modified) (2 diffs)
-
trunk/includes/forms/class-octanist-form-capture.php (modified) (2 diffs)
-
trunk/octanist.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
octanist/tags/4.1.2/README.md
r3680970 r3723184 5 5 **Requires at least:** 6.0 6 6 **Tested up to:** 7.1 7 **Stable tag:** 4.1. 17 **Stable tag:** 4.1.2 8 8 **License:** GPLv2 or later 9 9 **License URI:** https://www.gnu.org/licenses/gpl-2.0.html … … 47 47 48 48 ## Changelog 49 50 ### 4.1.2 51 52 - Form capture accepts only valid Octanist session and client IDs, so oversized values sent with a form submission can no longer slow down the site. 49 53 50 54 ### 4.1.1 -
octanist/tags/4.1.2/includes/forms/class-octanist-form-capture.php
r3608511 r3723184 84 84 85 85 if (!empty($_COOKIE['octa_cid']) && is_string($_COOKIE['octa_cid'])) { 86 $payload['cid'] = sanitize_text_field(wp_unslash($_COOKIE['octa_cid'])); 86 $cid = self::clean_id($_COOKIE['octa_cid']); 87 if ($cid !== null) { 88 $payload['cid'] = $cid; 89 } 87 90 } 88 91 … … 392 395 private static function clean_sid(string $sid): ?string 393 396 { 394 $sid = sanitize_text_field(wp_unslash($sid)); 395 $sid = trim($sid); 396 return $sid === '' ? null : $sid; 397 return self::clean_id($sid); 398 } 399 400 /** 401 * Session and client ids from the pixel are UUIDs. They arrive from anyone who submits 402 * a form, so anything that is not a short plain id is dropped here, before 403 * sanitize_text_field, which slows down sharply on long crafted input. 404 */ 405 private static function clean_id(string $value): ?string 406 { 407 $value = trim(wp_unslash($value)); 408 if ($value === '' || strlen($value) > 128 || !preg_match('/^[A-Za-z0-9._-]+$/', $value)) { 409 return null; 410 } 411 return $value; 397 412 } 398 413 -
octanist/tags/4.1.2/octanist.php
r3680970 r3723184 3 3 * Plugin Name: Octanist 4 4 * Description: First-party proxy for the Octanist pixel. Serves the tracking script, forwards events and call-tracking assignments, and captures form submissions server-side from popular form plugins. 5 * Version: 4.1. 15 * Version: 4.1.2 6 6 * Author: Octanist 7 7 * Author URI: https://www.octanist.com/ … … 17 17 } 18 18 19 define('OCTANIST_VERSION', '4.1. 1');19 define('OCTANIST_VERSION', '4.1.2'); 20 20 define('OCTANIST_PATH', plugin_dir_path(__FILE__)); 21 21 define('OCTANIST_URL', plugin_dir_url(__FILE__)); -
octanist/tags/4.1.2/readme.txt
r3680970 r3723184 4 4 Requires at least: 6.0 5 5 Tested up to: 7.1 6 Stable tag: 4.1. 16 Stable tag: 4.1.2 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 63 63 == Changelog == 64 64 65 = 4.1.2 = 66 * **FIX:** Form capture accepts only valid Octanist session and client IDs, so oversized values sent with a form submission can no longer slow down the site. 67 65 68 = 4.1.1 = 66 69 * **FIX:** The pixel endpoint downloads the tracking script immediately when the local cache is empty, instead of waiting for WP-Cron. -
octanist/trunk/README.md
r3680970 r3723184 5 5 **Requires at least:** 6.0 6 6 **Tested up to:** 7.1 7 **Stable tag:** 4.1. 17 **Stable tag:** 4.1.2 8 8 **License:** GPLv2 or later 9 9 **License URI:** https://www.gnu.org/licenses/gpl-2.0.html … … 47 47 48 48 ## Changelog 49 50 ### 4.1.2 51 52 - Form capture accepts only valid Octanist session and client IDs, so oversized values sent with a form submission can no longer slow down the site. 49 53 50 54 ### 4.1.1 -
octanist/trunk/includes/forms/class-octanist-form-capture.php
r3608511 r3723184 84 84 85 85 if (!empty($_COOKIE['octa_cid']) && is_string($_COOKIE['octa_cid'])) { 86 $payload['cid'] = sanitize_text_field(wp_unslash($_COOKIE['octa_cid'])); 86 $cid = self::clean_id($_COOKIE['octa_cid']); 87 if ($cid !== null) { 88 $payload['cid'] = $cid; 89 } 87 90 } 88 91 … … 392 395 private static function clean_sid(string $sid): ?string 393 396 { 394 $sid = sanitize_text_field(wp_unslash($sid)); 395 $sid = trim($sid); 396 return $sid === '' ? null : $sid; 397 return self::clean_id($sid); 398 } 399 400 /** 401 * Session and client ids from the pixel are UUIDs. They arrive from anyone who submits 402 * a form, so anything that is not a short plain id is dropped here, before 403 * sanitize_text_field, which slows down sharply on long crafted input. 404 */ 405 private static function clean_id(string $value): ?string 406 { 407 $value = trim(wp_unslash($value)); 408 if ($value === '' || strlen($value) > 128 || !preg_match('/^[A-Za-z0-9._-]+$/', $value)) { 409 return null; 410 } 411 return $value; 397 412 } 398 413 -
octanist/trunk/octanist.php
r3680970 r3723184 3 3 * Plugin Name: Octanist 4 4 * Description: First-party proxy for the Octanist pixel. Serves the tracking script, forwards events and call-tracking assignments, and captures form submissions server-side from popular form plugins. 5 * Version: 4.1. 15 * Version: 4.1.2 6 6 * Author: Octanist 7 7 * Author URI: https://www.octanist.com/ … … 17 17 } 18 18 19 define('OCTANIST_VERSION', '4.1. 1');19 define('OCTANIST_VERSION', '4.1.2'); 20 20 define('OCTANIST_PATH', plugin_dir_path(__FILE__)); 21 21 define('OCTANIST_URL', plugin_dir_url(__FILE__)); -
octanist/trunk/readme.txt
r3680970 r3723184 4 4 Requires at least: 6.0 5 5 Tested up to: 7.1 6 Stable tag: 4.1. 16 Stable tag: 4.1.2 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 63 63 == Changelog == 64 64 65 = 4.1.2 = 66 * **FIX:** Form capture accepts only valid Octanist session and client IDs, so oversized values sent with a form submission can no longer slow down the site. 67 65 68 = 4.1.1 = 66 69 * **FIX:** The pixel endpoint downloads the tracking script immediately when the local cache is empty, instead of waiting for WP-Cron.
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)