Repository navigation
Verify the TLS certificate when sending media for transcoding - #2241
Conversation
🔍 WordPress Plugin Check Report
📊 Report
|
| 📍 Line | 🔖 Check | 💬 Message |
|---|---|---|
0 |
mismatched_plugin_name | Plugin name "GoDAM - Organize WordPress Media Library & File Manager with Unlimited Folders for Images, Videos & more" is different from the name declared in plugin header "GoDAM". |
0 |
trademarked_term | The plugin name includes a restricted term. Your chosen plugin name - "GoDAM - Organize WordPress Media Library & File Manager with Unlimited Folders for Images, Videos & more" - contains the restricted term "wordpress" which cannot be used at all in your plugin name. |
📁 assets/build/css/main.css (1 warning)
| 📍 Line | 🔖 Check | 💬 Message |
|---|---|---|
0 |
EnqueuedStylesScope | This style is being loaded in all contexts. |
📁 assets/src/libs/analytics.min.js (5 warnings)
| 📍 Line | 🔖 Check | 💬 Message |
|---|---|---|
0 |
EnqueuedScriptsScope | This script is being loaded in all frontend contexts. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880 (with handle analytics-library) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/2026/10/26/hello-world/ (with handle analytics-library) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/sample-page/ (with handle analytics-library) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/demo-attachment-post/ (with handle analytics-library) is loaded in the footer. Consider a defer or async script loading strategy instead. |
📁 assets/build/js/main.min.js (5 warnings)
| 📍 Line | 🔖 Check | 💬 Message |
|---|---|---|
0 |
EnqueuedScriptsScope | This script is being loaded in all frontend contexts. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880 (with handle rtgodam-script) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/2026/10/26/hello-world/ (with handle rtgodam-script) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/sample-page/ (with handle rtgodam-script) is loaded in the footer. Consider a defer or async script loading strategy instead. |
0 |
NonBlockingScripts.NoStrategy | This script on http://localhost:8880/demo-attachment-post/ (with handle rtgodam-script) is loaded in the footer. Consider a defer or async script loading strategy instead. |
🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check
The two requests that send a file to the GoDAM API for transcoding (media uploads and form recordings) turned certificate verification off. The setting dates from when the API address was plain http; every other request to the same API already verifies the certificate. Both now verify it. A new filter, godam_transcoder_verify_ssl (default true), lets a local or staging API with a self-signed certificate turn it off, like the existing godam_frappe_dispatch_verify_ssl filter.
b2a7ee5 to
5607f1e
Compare
|
Tested together with the other five 2.5.1 PRs on a hosted test site connected to production GoDAM Central. Full table and all recordings: https://github.com/rtCamp/godam-plugin-wp/issues/68 (recordings are in the rtCamp Test media library; sign in to watch). Tested commit Every test upload sent its transcoding job to app.godam.io with certificate checks on, and all of them transcoded (70 to 104 seconds), for example T1 and T3. Central's site checks pass 6 of 6: T7. |
elifvish
left a comment
There was a problem hiding this comment.
No issues found.
Verification
- Head tested:
5607f1e297. PHPUnit on this PR's head: 613/613 OK. - All seven 2.5.1 PRs merged onto
main(no conflicts): PHPUnit 915/915, Jest 690/690,build:prodOK. - Not covered: An end-to-end transcode: Central cannot reach a localhost site, so uploads fail before sending (known local limitation). The hosted-site run covers it.
Screenshots and a recording of the local run are available on request.
|
Review: ✅ Approvable — clean security fix Reviewed at high effort. The change does exactly what it should and nothing more:
No blocking or minor issues. Good to merge. 🚀 |
What changes
The two requests that send a file to the GoDAM API for transcoding turned TLS certificate verification off (
'sslverify' => false):admin/class-rtgodam-transcoder-handler.php: media uploads and retranscodes.inc/helpers/custom-functions.php: form recordings (Gravity Forms, Fluent Forms, Ninja Forms, SureForms, WPForms, Everest Forms).Both now verify the certificate, like every other request the plugin makes to the same API. The setting dates from 2016, when the API address was plain http.
A new filter,
godam_transcoder_verify_ssl(defaulttrue), lets a local or staging API with a self-signed certificate turn verification off, the same waygodam_frappe_dispatch_verify_sslworks for the Frappe installer:Will anything break?
GET /api/method/pingon each API host with certificate verification on:wp_remote_get(),sslverifytrue (WordPress 7.1.3, PHP 8.2)sslverifyis true), from 6.5 onwards at least.http://API address (some local setups) is unaffected:sslverifyonly applies to https.Testing
php -landphpcson both files: clean.QA:
RTGODAM_API_BASEset to preprod.Release ticket: rtCamp/godam-plugin-wp#68