The plugin layer accounts for ninety percent of the vulnerabilities, isn't it more worry-free for a website system with fewer plugins?

📅 2026-11-01 👁️ 0

It is said that 90% of the vulnerabilities are in the plugin layer, then isn't the website system with fewer plugins easier to maintain? This statistic actually points out the source of the maintenance burden: the risk is concentrated in the extension layer, not the program itself. Fewer plugins indeed reduce a batch of update sources that need to be tracked individually, but the premise of being hassle-free is replaced by another thing - whether the features you need are already in the system. If not, you still have to rely on code补, just changing 'wait for the plugin author to release' to 'schedule it yourself or outsource it.'

What is this number of 90% vulnerabilities saying?

For example, the annual security white paper of the WordPress ecosystem recorded 11,334 new vulnerabilities in 2025, of which 91% fell in the plugin layer, the theme layer accounted for the majority of the remainder, and the core reported only 6. The same statistics also provided a more attention-worthy number: the median time from the public disclosure of vulnerabilities to their exploitation is on the order of hours.

These two numbers together can lead to a selection conclusion: The core layer being compromised is a low-probability, high-impact event, and the extension layer being compromised is a high-probability, single-point impact event. The difference in selection does not lie in 'whether an accident will happen' but in 'how many release sources need to be monitored.'

Where do the differences between more and fewer plugins manifest?

Breaking down daily maintenance into four actions makes a lot of difference:

Maintenance actions Sites that rely on a large number of extensions Sites with built-in functions
Tracking updates Each extension has a release source, which needs to be checked one by one Follow only one main program version line
Compatibility verification Combination of extensions between, extensions and core version combination A major version upgrade with a relatively fixed regression range
Content-side audit Form and comment processing are scattered in different extensions Sensitive word filtering and content audit in the same entry
Risk rollback Need to determine which extension introduced the problem Overall rollback according to the main program version and backup

It should be emphasized that this table compares workload and responsibility boundaries, not absolute safety. Built-in functions will also have implementation defects, but the scope of investigation has been condensed from dozens of third-party packages to a single code library.

Count the built-in capabilities in the selection account

It is a common practice when selecting to compare the number of templates, the size of the plugin market, and the security maintenance cost is rarely included in the table. It can be directly categorized into three types: the first type is the entry-level capability, whether the login uses JWT such as standard ticket mechanism, whether it is built-in with SQL injection and XSS protection, and whether the form has a captcha;The second category is content layer capability, whether sensitive word filtering, keyword replacement and content audit are in the system instead of relying on external plugins; the third category is runtime cost, based on GoLang implementation with Iris framework and GORM, memory usage is reduced by about 80% compared to PHP-based systems, which affects how many sites can be placed on servers of the same specification.

Three categories are counted, and the benefits of fewer plugins are only visible: it saves the time-consuming tasks of updating source tracking and composite verification, not the security itself.

How to use the maintenance action reference table

In practice, it is recommended to reset once a quarter: list all third-party code on the site, judge one by one whether it can be replaced by built-in capabilities; schedule replacements for those that can be replaced, remove the extension instead of disabling it after replacement; record the source and person responsible for those that cannot be replaced. After the number of extensions decreases, the change in maintenance costs will be reflected directly in the length of the list that needs to be checked each time a security report is issued.

Common questions

What does it mean when there are fewer plugins, does it mean that the functions are definitely fewer?

It depends on whether the plugins or capabilities are reduced. When the system has built-in SEO push, multi-site, content model, and batch import, the requirements that were originally implemented by plugins can be directly configured; when there is a lack of built-in functions, indeed, secondary development is required, and the cost of this part should be included in the selection account.

Do we no longer need to perform security checks after the functions are built-in?

No. The risk shifts from the extension layer to the code you write and the files you upload, and you still need to do version verification, backup verification, and permission convergence, but the objects to be investigated are more concentrated.

Ask: The site has already installed many extensions, how to reduce it?

First, merge similar functions and remove extensions that provide the same capabilities repeatedly; then replace them according to built-in capabilities, removing one item for each replacement; finally, write the remaining list and source into the ledger to avoid recurrence.

Related articles

After the PHP engine-level remote code execution alert, should we upgrade PHP first or tighten the site configuration first?

The impact scope of the engine-level vulnerability is determined by the runtime, not the attribute of a certain website system. Therefore, after the alert, we should upgrade the version first and then change the configuration. This article provides the judgment order, temporary mitigation measures when the upgrade fails, and the backup and rollback preparation to be completed on the site side, and explains why the built-in injection filtering and cross-site scripting protection cannot cover the engine-level defects.

2026-11-01

How to put the subscription price of the website building platform and the total cost of self-hosting on one table for comparison

Put the monthly price of the subscription-based website building platform and the total cost of the self-hosted system into the same table, first you need to unify three things: the time unit, the boundary of items included, and the human cost pricing method. According to the information verified on the day, the paid plans of AI website building platforms are roughly between $10 and $25 per month, while code generation tools are measured separately by points or calls; on the self-hosted side, the additional costs are for servers, backup maintenance, and content operation labor. This article provides a fill-in-the-blank table and a writing style that leaves no loopholes.

2026-11-01

Drupal 10 will end support in December 2026, what needs to be confirmed before upgrading

A content management branch has entered the end of support date, which means that no new core versions or security announcements will be produced thereafter, and the risk changes from 'version old' to 'no one to take over'. According to the official schedule checked on that day, the support for Drupal 10 will close on December 9, 2026. This article lists the four items that need to be confirmed before upgrading or migrating: compatibility matrix of extensions, content and structure mapping, backup and rollback points, and whether the deployment form changes accordingly.

2026-11-01

Which PHP version's security support expiration date should small and medium-sized websites keep an eye on

To judge the runtime risk of the site, we need to look at two things: whether the current branch is still within the security fix window, and when the window will close. According to the timeline checked on the day, the expiration date of the PHP 8.2 branch is at the end of 2026, and each branch still within the window has a corresponding expiration year. This article explains how to include the version of the runtime environment in the asset list, what steps to take before the expiration date, and which part of the maintenance chain is omitted in the Go single binary deployment.

2026-11-01

In the revision record of the domestic CMS, there is a parameter binding item. How should such entries be read during selection?

The revision record parameter binding, field whitelist and other such terminology descriptions of the repair occur at the query construction layer, which is not at the same level as the interface text repair. This article teaches how to judge the depth of repair from the wording, using v3.6.6 to simultaneously repair list sorting parameter injection and login credential forgery as a control sample, and to give three items that can be checked at the selection stage: the proportion of security entries, whether the announcement is accompanied by disposal suggestions, and whether the version rhythm is stable.

2026-11-01

How to avoid such supply chain pitfalls as cracking themes and free plugins with backdoors when building a website.

Unknown origin cracked themes and free plugins directly put third-party code into writable directories and template links. In historical events, there was once a backdoor that affected 23,000 sites. This article provides three steps for origin verification, content review and sensitive word filtering on the publishing side, verification restrictions on the form and login side, and recovery paths with static file backups after an incident.

2026-11-01

The number of background brute-force alarms has increased, which part of the JWT authentication can block?

The login link can be divided into three segments: password verification, ticket issuance, and ticket usage. JWT authentication controls the latter two segments, so even if the password is guessed successfully, it cannot obtain a reusable access token; it cannot prevent the collision library from obtaining the real password. This article uses the v3.6.6 fixed list sorting parameter injection and site switching token forgery as an example to explain why the issuance link needs to be monitored separately, and provides a list of complementary actions outside of brute force.

2026-11-01

GPTBot has hundreds of billions of requests per month, should the content site be expanded separately for AI traffic?

The request volume of AI crawlers is not equal to the referral visit volume, the pressure is mainly on the dynamic rendering and no cache penetration section. This article proposes the judgment sequence of first calculating the carrying capacity and then discussing expansion: distinguish between the costs of crawling and real visits, estimate the capacity with the level of a single machine carrying about 5 million PV and memory reducing about 80%, and then decide whether to expand capacity for AI traffic according to the three lines of robots configuration, staticization, and crawling boundary.

2026-11-01