{"id":10977,"date":"2026-05-23T21:29:58","date_gmt":"2026-05-23T13:29:58","guid":{"rendered":"https:\/\/aeosub.com\/trustsig-security\/"},"modified":"2026-05-23T21:29:58","modified_gmt":"2026-05-23T13:29:58","slug":"trustsig-security","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/trustsig-security\/","title":{"rendered":"TrustSig Security"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/trustsig-security\/assets\/icon-256x256.png?rev=3545156\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/robertvahhi\/\" target=\"_blank\" rel=\"noopener\">trustsig<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.2.8<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.0 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-23 1:26pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/trustsig-security\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Stop bots, spam and brute-force attacks on every WordPress form. No CAPTCHA. No account. No keys. Installs and protects in one click.<\/div>\n<p><strong>TrustSig Security blocks scripted bots before they ever reach your site \u2014 silently, with zero friction for real visitors.<\/strong> No puzzles. No &#8220;I am not a robot&#8221; checkboxes. No third-party signup required to start.<\/p>\n<p><a href=\"https:\/\/ps.w.org\/trustsig-security\/assets\/screenshot-1.png\" rel=\"nofollow ugc noopener\" target=\"_blank\"><\/a><br \/>\n<a href=\"https:\/\/ps.w.org\/trustsig-security\/assets\/screenshot-2.png\" rel=\"nofollow ugc noopener\" target=\"_blank\"><\/a><br \/>\n<a href=\"https:\/\/ps.w.org\/trustsig-security\/assets\/screenshot-3.png\" rel=\"nofollow ugc noopener\" target=\"_blank\"><\/a><\/p>\n<h4>Why TrustSig<\/h4>\n<ul>\n<li>\ud83d\udee1\ufe0f <strong>Protects every important form out of the box<\/strong> \u2014 login, registration, comments, password reset, WooCommerce checkout, BuddyPress signup, Easy Digital Downloads, Elementor Pro forms, and any custom form via shortcode.<\/li>\n<li>\ud83d\udeab <strong>Stops brute-force login attempts<\/strong> with built-in lockout after repeated failures.<\/li>\n<li>\ud83d\udc7b <strong>Invisible to humans<\/strong> \u2014 real visitors are verified in under a second by a non-interactive browser check. No CAPTCHA, no images to click.<\/li>\n<li>\u2699\ufe0f <strong>Three protection modes<\/strong> \u2014 Monitor (log only), Challenge (default, soft block with auto-retry), Enforce (hard block).<\/li>\n<li>\ud83d\udd0c <strong>Zero configuration<\/strong> \u2014 activate the plugin and protection is live immediately. Anonymous free tier needs no account.<\/li>\n<li>\ud83e\udde9 <strong>Works with caching plugins, WPML, multisite and most themes<\/strong> \u2014 forms are signed server-side with a per-site secret.<\/li>\n<li>\ud83d\udee0\ufe0f <strong>Developer-friendly<\/strong> \u2014 PHP helper <code>trustsig_verify()<\/code>, REST endpoint <code>\/wp-json\/trustsig\/v1\/verify<\/code>, filters and actions for custom forms.<\/li>\n<li>\ud83d\udd12 <strong>Optional admin-ajax and REST API guard<\/strong> for advanced sites.<\/li>\n<li>\ud83d\udcdc <strong>GPLv2<\/strong> \u2014 fully open source.<\/li>\n<\/ul>\n<h4>How it works<\/h4>\n<p>TrustSig injects a lightweight browser SDK, signs every rendered form with a per-site secret, and verifies submissions against the TrustSig Edge service. Real visitors pass an invisible check in about a second; scripted clients that never run JavaScript are stopped.<\/p>\n<p>When a request arrives without a valid token, TrustSig does not silently fail<br \/>\nopen. Depending on the mode you choose it serves a lightweight &#8220;please wait&#8221;<br \/>\ninterstitial that re-verifies the browser and then transparently continues the<br \/>\noriginal request \u2014 or blocks it.<\/p>\n<p>The plugin works out of the box with <strong>no account and no API keys<\/strong> (anonymous<br \/>\nfree tier). Connecting a TrustSig dashboard account is optional and only adds<br \/>\nanalytics and higher limits.<\/p>\n<h4>Protection modes<\/h4>\n<ul>\n<li><strong>Monitor<\/strong> \u2014 verify and log only, never block. Used for safe rollout; the<br \/>\nupgrade path also pins existing sites here so behaviour never changes<br \/>\nsilently on update.<\/li>\n<li><strong>Challenge<\/strong> (default for new installs) \u2014 a missing or invalid token shows<br \/>\nthe interstitial, then continues or blocks.<\/li>\n<li><strong>Enforce<\/strong> \u2014 a missing or invalid token is blocked immediately.<\/li>\n<\/ul>\n<h4>What it protects<\/h4>\n<p>Browser forms are protected automatically with no code:<\/p>\n<ul>\n<li>WordPress core \u2014 login, registration, comments, lost\/reset password<\/li>\n<li>WooCommerce \u2014 login, registration, checkout, pay order, lost password<\/li>\n<li>BuddyPress \u2014 registration<\/li>\n<li>Easy Digital Downloads \u2014 login, registration<\/li>\n<li>Elementor Pro forms<\/li>\n<li>Any other form (site-wide &#8220;protect all forms&#8221; option, the <code>[trustsig_form]<\/code><br \/>\nshortcode, or a hidden <code>trustsig-response<\/code> input)<\/li>\n<\/ul>\n<p>It also includes optional brute-force lockout for repeated failed logins, an<br \/>\nopt-in admin-ajax \/ REST API guard, and a developer verification API.<\/p>\n<h4>For developers<\/h4>\n<ul>\n<li>PHP: <code>trustsig_verify( array( 'token' =&gt; $t, 'action' =&gt; 'my_form' ) )<\/code><br \/>\nreturns <code>pass<\/code> | <code>fail<\/code> | <code>challenge<\/code>. Filters: <code>trustsig_pre_verify<\/code>,<br \/>\n  trustsig_result. Action: <code>trustsig_blocked<\/code>.<\/li>\n<li>REST: <code>POST \/wp-json\/trustsig\/v1\/verify<\/code> with <code>{ \"token\": \"...\" }<\/code>.<\/li>\n<\/ul>\n<h4>Known limitations<\/h4>\n<ul>\n<li>XML-RPC (<code>xmlrpc.php<\/code>) is intentionally out of scope and is not verified.<br \/>\nDisable XML-RPC separately if it is unused on your site.<\/li>\n<li>admin-ajax and the REST API are only protected when explicitly enabled in<br \/>\nSettings, to avoid breaking third-party integrations.<\/li>\n<li>File-upload and AJAX submissions cannot show the interstitial; under<br \/>\nChallenge or Enforce mode a missing token on those is blocked, never<br \/>\nsilently allowed.<\/li>\n<\/ul>\n<h3>External services<\/h3>\n<p>This plugin relies on the <strong>TrustSig Edge<\/strong> service to decide whether a request<br \/>\ncomes from a human or an automated client. This bot-detection verdict cannot be<br \/>\nproduced locally, so the service is required for the plugin&#8217;s core<br \/>\nfunctionality.<\/p>\n<p><strong>Service provider:<\/strong> TrustSig \u2014 https:\/\/trustsig.eu<\/p>\n<p><strong>Remote script loaded in the browser:<\/strong><br \/>\n    https:\/\/edge.trustsig.eu\/trustsig.js is loaded on pages that contain a<br \/>\nprotected form, on the login screen, and on the verification interstitial. The<br \/>\nscript runs the non-interactive browser check and produces a verification<br \/>\ntoken.<\/p>\n<p><strong>Data sent from the visitor&#8217;s browser \/ your server to<br \/>\n    https:\/\/edge.trustsig.eu\/verify:<\/strong><\/p>\n<ul>\n<li>the TrustSig verification token generated by the SDK in the visitor&#8217;s browser;<\/li>\n<li>your site&#8217;s host name (e.g. <code>example.com<\/code>) on the anonymous free tier, or, if<br \/>\nyou connect a dashboard account, the secret key you entered;<\/li>\n<li>as part of any HTTPS request, the visitor&#8217;s IP address and standard request<br \/>\nmetadata (such as the user-agent) are visible to the service.<\/li>\n<\/ul>\n<p><strong>When data is sent:<\/strong> when the SDK loads on a protected page, when a protected<br \/>\nform is submitted, and once per browser when the optional verified-session<br \/>\ncookie is bootstrapped.<\/p>\n<p><strong>Data stored locally on your site:<\/strong> TrustSig writes a verification log to<br \/>\nyour own WordPress database (custom tables) that includes visitor IP addresses,<br \/>\nthe action attempted, and the verdict. This data is not sent to TrustSig; you<br \/>\ncan clear it at any time from Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> TrustSig <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Tools.<\/p>\n<p>By installing and activating this plugin you (the site administrator) consent to<br \/>\nthis data being sent to TrustSig so that requests can be verified. Inform your<br \/>\nown site&#8217;s visitors as required by your local privacy obligations.<\/p>\n<ul>\n<li>Terms of Service: https:\/\/trustsig.eu\/terms-of-service\/<\/li>\n<li>Privacy Policy: https:\/\/trustsig.eu\/privacy<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Stop bots, spam and brute-force attacks on every WordPress form. No CAPTCHA. No account. No keys. Installs and protects in one click.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1391,1101,664,1033,569,555],"class_list":["post-10977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-bot-protection","tag-brute-force","tag-security","tag-spam","tag-woocommerce","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10977"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10977\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}