DIYSEO – AI Writer for SEO Content Security & Risk Analysis

wordpress.org/plugins/diyseo-ai-powered-seo-content-generator

Harness the power of AI to generate SEO-optimized content, meta descriptions, titles, and featured images for your WordPress posts.

10 active installs v3.7 PHP 7.2+ WP 5.0+ Updated Jan 6, 2026
aicontent-generationgptopenaiseo
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is DIYSEO – AI Writer for SEO Content Safe to Use in 2026?

Generally Safe

Score 100/100

DIYSEO – AI Writer for SEO Content has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The "diyseo-ai-powered-seo-content-generator" v3.7 plugin exhibits a mixed security posture. On the positive side, it demonstrates good practices with 100% of SQL queries using prepared statements and a high percentage of properly escaped output. The absence of known CVEs and critical taint flows is also a strong indicator of a generally secure codebase. However, a significant concern arises from the presence of 4 AJAX handlers that lack authentication checks. This represents a substantial attack surface that could be exploited by unauthenticated users to trigger potentially unintended actions within the plugin.

The taint analysis, while showing no critical or high severity unsanitized paths, did reveal 6 flows with unsanitized paths. While the severity wasn't explicitly defined as critical or high, the presence of any unsanitized path warrants careful consideration, especially when combined with the unprotected AJAX endpoints. The plugin's history of zero vulnerabilities suggests a developer who generally prioritizes security. Nevertheless, the unprotected AJAX handlers are a notable weakness that requires immediate attention to mitigate potential risks of unauthorized access or manipulation.

Key Concerns

  • Unprotected AJAX handlers
  • Flows with unsanitized paths
Vulnerabilities
None known

DIYSEO – AI Writer for SEO Content Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 17, 2026

DIYSEO – AI Writer for SEO Content Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
2 prepared
Unescaped Output
10
146 escaped
Nonce Checks
46
Capability Checks
6
File Operations
0
External Requests
16
Bundled Libraries
0

SQL Query Safety

100% prepared2 total queries

Output Escaping

94% escaped156 total outputs
Data Flows
6 unsanitized

Data Flow Analysis

6 flows6 with unsanitized paths
diyseo_settings_page (diyseo-settings.php:7)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
4 unprotected

DIYSEO – AI Writer for SEO Content Attack Surface

Entry Points40
Unprotected4

AJAX Handlers 40

authwp_ajax_diyseo_cc_get_itemsdiyseo-command-center.php:77
authwp_ajax_diyseo_cc_save_itemdiyseo-command-center.php:86
authwp_ajax_diyseo_cc_delete_itemdiyseo-command-center.php:117
authwp_ajax_diyseo_deactivate_licensediyseo-settings.php:298
authwp_ajax_diyseo_clear_authdiyseo.php:305
authwp_ajax_diyseo_set_license_keydiyseo.php:390
noprivwp_ajax_diyseo_set_license_keydiyseo.php:391
authwp_ajax_diyseo_check_license_keydiyseo.php:399
noprivwp_ajax_diyseo_check_license_keydiyseo.php:400
authwp_ajax_diyseo_get_calendarsdiyseo.php:763
authwp_ajax_diyseo_get_categoriesdiyseo.php:764
authwp_ajax_diyseo_get_articlesdiyseo.php:765
authwp_ajax_diyseo_generate_calendar_articlediyseo.php:766
authwp_ajax_diyseo_get_categoriesdiyseo.php:854
authwp_ajax_diyseo_generate_meta_descriptiondiyseo.php:1159
authwp_ajax_diyseo_generate_meta_titlediyseo.php:1195
authwp_ajax_diyseo_generate_featured_imagediyseo.php:1525
authwp_ajax_diyseo_confirm_featured_imagediyseo.php:1579
authwp_ajax_diyseo_save_to_mediadiyseo.php:1607
authwp_ajax_diyseo_generate_faqdiyseo.php:2340
authwp_ajax_diyseo_cc_get_itemstrunk\diyseo-command-center.php:77
authwp_ajax_diyseo_cc_save_itemtrunk\diyseo-command-center.php:86
authwp_ajax_diyseo_cc_delete_itemtrunk\diyseo-command-center.php:117
authwp_ajax_diyseo_deactivate_licensetrunk\diyseo-settings.php:298
authwp_ajax_diyseo_clear_authtrunk\diyseo.php:305
authwp_ajax_diyseo_set_license_keytrunk\diyseo.php:390
noprivwp_ajax_diyseo_set_license_keytrunk\diyseo.php:391
authwp_ajax_diyseo_check_license_keytrunk\diyseo.php:399
noprivwp_ajax_diyseo_check_license_keytrunk\diyseo.php:400
authwp_ajax_diyseo_get_calendarstrunk\diyseo.php:763
authwp_ajax_diyseo_get_categoriestrunk\diyseo.php:764
authwp_ajax_diyseo_get_articlestrunk\diyseo.php:765
authwp_ajax_diyseo_generate_calendar_articletrunk\diyseo.php:766
authwp_ajax_diyseo_get_categoriestrunk\diyseo.php:854
authwp_ajax_diyseo_generate_meta_descriptiontrunk\diyseo.php:1159
authwp_ajax_diyseo_generate_meta_titletrunk\diyseo.php:1195
authwp_ajax_diyseo_generate_featured_imagetrunk\diyseo.php:1525
authwp_ajax_diyseo_confirm_featured_imagetrunk\diyseo.php:1579
authwp_ajax_diyseo_save_to_mediatrunk\diyseo.php:1607
authwp_ajax_diyseo_generate_faqtrunk\diyseo.php:2340
WordPress Hooks 92
actionadmin_menudiyseo-command-center.php:6
actionadmin_enqueue_scriptsdiyseo-command-center.php:137
actionadmin_enqueue_scriptsdiyseo-settings.php:276
actioninitdiyseo.php:60
actiontemplate_redirectdiyseo.php:107
actionwp_headdiyseo.php:113
actionwp_headdiyseo.php:114
actionwp_headdiyseo.php:117
actionwp_headdiyseo.php:118
actionwp_headdiyseo.php:119
actioninitdiyseo.php:121
actionwp_headdiyseo.php:161
actionwp_headdiyseo.php:177
filterwpseo_json_ld_outputdiyseo.php:188
actiontemplate_redirectdiyseo.php:195
filterpre_get_document_titlediyseo.php:206
filterwp_titlediyseo.php:207
actionwp_headdiyseo.php:250
actionwp_headdiyseo.php:251
filterplugin_row_metadiyseo.php:355
actionadmin_enqueue_scriptsdiyseo.php:466
actionadmin_menudiyseo.php:559
actionadmin_footerdiyseo.php:579
actionadd_meta_boxesdiyseo.php:683
actionsave_postdiyseo.php:1068
actionadd_meta_boxesdiyseo.php:1125
actionwp_headdiyseo.php:1432
actionadd_meta_boxesdiyseo.php:1457
actionadd_meta_boxes_postdiyseo.php:1492
actionadmin_initdiyseo.php:1501
actionwp_footerdiyseo.php:2386
filterthe_contentdiyseo.php:2428
actionsave_postdiyseo.php:2452
actionadd_meta_boxesdiyseo.php:2474
actionadd_meta_boxesdiyseo.php:2477
actioninitdiyseo.php:2544
actionsave_postdiyseo.php:2589
filterwpseo_json_ld_outputdiyseo.php:2630
filterwpseo_link_rel_canonicaldiyseo.php:2637
filterwpseo_canonicaldiyseo.php:2638
actiontemplate_redirectdiyseo.php:2641
filterwpseo_json_ld_outputdiyseo.php:2646
actionwp_headdiyseo.php:2649
filterwp_titlediyseo.php:2663
filterpre_get_document_titlediyseo.php:2664
filterwpseo_metadescdiyseo.php:2679
actionadmin_menutrunk\diyseo-command-center.php:6
actionadmin_enqueue_scriptstrunk\diyseo-command-center.php:137
actionadmin_enqueue_scriptstrunk\diyseo-settings.php:276
actioninittrunk\diyseo.php:60
actiontemplate_redirecttrunk\diyseo.php:107
actionwp_headtrunk\diyseo.php:113
actionwp_headtrunk\diyseo.php:114
actionwp_headtrunk\diyseo.php:117
actionwp_headtrunk\diyseo.php:118
actionwp_headtrunk\diyseo.php:119
actioninittrunk\diyseo.php:121
actionwp_headtrunk\diyseo.php:161
actionwp_headtrunk\diyseo.php:177
filterwpseo_json_ld_outputtrunk\diyseo.php:188
actiontemplate_redirecttrunk\diyseo.php:195
filterpre_get_document_titletrunk\diyseo.php:206
filterwp_titletrunk\diyseo.php:207
actionwp_headtrunk\diyseo.php:250
actionwp_headtrunk\diyseo.php:251
filterplugin_row_metatrunk\diyseo.php:355
actionadmin_enqueue_scriptstrunk\diyseo.php:466
actionadmin_menutrunk\diyseo.php:559
actionadmin_footertrunk\diyseo.php:579
actionadd_meta_boxestrunk\diyseo.php:683
actionsave_posttrunk\diyseo.php:1068
actionadd_meta_boxestrunk\diyseo.php:1125
actionwp_headtrunk\diyseo.php:1432
actionadd_meta_boxestrunk\diyseo.php:1457
actionadd_meta_boxes_posttrunk\diyseo.php:1492
actionadmin_inittrunk\diyseo.php:1501
actionwp_footertrunk\diyseo.php:2386
filterthe_contenttrunk\diyseo.php:2428
actionsave_posttrunk\diyseo.php:2452
actionadd_meta_boxestrunk\diyseo.php:2474
actionadd_meta_boxestrunk\diyseo.php:2477
actioninittrunk\diyseo.php:2544
actionsave_posttrunk\diyseo.php:2589
filterwpseo_json_ld_outputtrunk\diyseo.php:2630
filterwpseo_link_rel_canonicaltrunk\diyseo.php:2637
filterwpseo_canonicaltrunk\diyseo.php:2638
actiontemplate_redirecttrunk\diyseo.php:2641
filterwpseo_json_ld_outputtrunk\diyseo.php:2646
actionwp_headtrunk\diyseo.php:2649
filterwp_titletrunk\diyseo.php:2663
filterpre_get_document_titletrunk\diyseo.php:2664
filterwpseo_metadesctrunk\diyseo.php:2679
Maintenance & Trust

DIYSEO – AI Writer for SEO Content Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 6, 2026
PHP min version7.2
Downloads2K

Community Trust

Rating100/100
Number of ratings5
Active installs10
Developer Profile

DIYSEO – AI Writer for SEO Content Developer Profile

Kaseem Stephenson

1 plugin · 10 total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect DIYSEO – AI Writer for SEO Content

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/diyseo-ai-powered-seo-content-generator/dist/assets/index.css/wp-content/plugins/diyseo-ai-powered-seo-content-generator/dist/assets/index.js
Generator Patterns
DIYSEO - AI Writer for SEO Content v3.7 by LSEO
Script Paths
/wp-content/plugins/diyseo-ai-powered-seo-content-generator/dist/assets/index.js
Version Parameters
diyseo-ai-powered-seo-content-generator/dist/assets/index.css?ver=diyseo-ai-powered-seo-content-generator/dist/assets/index.js?ver=

HTML / DOM Fingerprints

Data Attributes
data-diyseo-field-namedata-diyseo-contentdata-diyseo-typedata-diyseo-post-iddata-diyseo-post-typedata-diyseo-meta-title+1 more
JS Globals
diyseo_ajax_object
REST Endpoints
/wp-json/diyseo/v1/save-settings/wp-json/diyseo/v1/get-settings/wp-json/diyseo/v1/generate-content/wp-json/diyseo/v1/save-content/wp-json/diyseo/v1/get-content-data/wp-json/diyseo/v1/save-meta-data
FAQ

Frequently Asked Questions about DIYSEO – AI Writer for SEO Content