{"id":38552,"date":"2026-04-22T19:30:51","date_gmt":"2026-04-22T12:30:51","guid":{"rendered":"https:\/\/dps.media\/?page_id=38552"},"modified":"2026-04-22T20:47:41","modified_gmt":"2026-04-22T13:47:41","slug":"cach-quet-ma-doc-wordpress-va-xu-ly-malware-triet-de-bang-ai-agent","status":"publish","type":"page","link":"https:\/\/dps.media\/zh\/cach-quet-ma-doc-wordpress-va-xu-ly-malware-triet-de-bang-ai-agent\/","title":{"rendered":"\u5982\u4f55\u5229\u7528 AI Agent \u5f7b\u5e95\u626b\u63cf WordPress \u6076\u610f\u4ee3\u7801\u5e76\u5904\u7406\u6728\u9a6c"},"content":{"rendered":"<style>\n#dps-isolated-root{\n    --bg: #F4F3F0;\n    --surface: #FFFFFF;\n    --surface2: #F9F8F6;\n    --border: #E2E0DB;\n    --border-strong: #C8C5BE;\n    --text: #1A1917;\n    --text-2: #4A4844;\n    --text-3: #8A8784;\n    --accent: #D63B1F;\n    --accent-light: #FBF0ED;\n    --accent-border: #F0C4BA;\n    --yellow: #C8860A;\n    --yellow-light: #FEF8EC;\n    --yellow-border: #F0D99A;\n    --green: #1D7D4A;\n    --green-light: #EDF7F2;\n    --green-border: #A8DFC0;\n    --blue: #1D5FA8;\n    --blue-light: #EDF3FB;\n    --blue-border: #A8C8F0;\n    --purple: #6B3FA0;\n    --purple-light: #F3EDFB;\n    --purple-border: #C8A8E8;\n    --check-color: #1D7D4A;\n    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);\n    --shadow: 0 4px 12px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.04);\n    --shadow-lg: 0 8px 24px rgba(0,0,0,0.09), 0 4px 8px rgba(0,0,0,0.05);\n  }\n\n  #dps-isolated-root *, #dps-isolated-root *::before, #dps-isolated-root *::after{ box-sizing: border-box; margin: 0; padding: 0; }\n  #dps-isolated-root{ font-size: 14px; scroll-behavior: smooth; }\n\n  #dps-isolated-root{\n    font-family: 'IBM Plex Sans', sans-serif;\n    background: var(--bg);\n    color: var(--text);\n    min-height: 100vh;\n    --sticky-top: 104px;\n    width: 100vw;\n    max-width: 100vw;\n    margin-left: calc(50% - 50vw);\n    display: flex;\n    flex-direction: column;\n    overflow-x: clip;\n  }\n\n  #dps-isolated-root .layout{\n    display: block;\n    flex: 1;\n    min-height: 0;\n    position: relative;\n    padding-left: 240px;\n    padding-right: 280px;\n  }\n\n  #dps-isolated-root .sidebar{\n    background: var(--surface);\n    border-right: 1px solid var(--border);\n    padding: 24px 0;\n    position: fixed;\n    left: 0;\n    top: var(--sticky-top);\n    width: 240px;\n    height: calc(100vh - var(--sticky-top));\n    overflow-y: auto;\n    align-self: start;\n    scrollbar-gutter: stable;\n  }\n\n  #dps-isolated-root .sidebar-section{ padding: 0 16px; margin-bottom: 8px; }\n\n  #dps-isolated-root .sidebar-label{\n    font-size: 10px; font-weight: 600;\n    letter-spacing: 0.12em; text-transform: uppercase;\n    color: var(--text-3);\n    padding: 0 8px;\n    margin-bottom: 4px;\n  }\n\n  #dps-isolated-root .sidebar-item{\n    display: flex; align-items: center; gap: 10px;\n    padding: 8px 8px;\n    border-radius: 6px;\n    cursor: pointer;\n    transition: background 0.12s;\n    text-decoration: none;\n    color: var(--text-2);\n    font-size: 13px;\n  }\n\n  #dps-isolated-root .sidebar-item:hover{ background: var(--bg); }\n  #dps-isolated-root .sidebar-item.active{ background: var(--accent-light); color: var(--accent); }\n\n  #dps-isolated-root .sidebar-phase{\n    width: 20px; height: 20px; border-radius: 4px;\n    display: flex; align-items: center; justify-content: center;\n    font-size: 9px; font-weight: 600;\n    flex-shrink: 0;\n    font-family: 'IBM Plex Mono', monospace;\n  }\n\n  #dps-isolated-root .phase-a .sidebar-phase{ background: var(--blue-light); color: var(--blue); }\n  #dps-isolated-root .phase-b .sidebar-phase{ background: var(--yellow-light); color: var(--yellow); }\n  #dps-isolated-root .phase-c .sidebar-phase{ background: var(--accent-light); color: var(--accent); }\n\n  #dps-isolated-root .sidebar-progress{ margin-left: auto; font-size: 10px; color: var(--text-3); font-family: 'IBM Plex Mono', monospace; }\n\n  #dps-isolated-root .sidebar-divider{ border: none; border-top: 1px solid var(--border); margin: 12px 16px; }\n\n  #dps-isolated-root .main{\n    padding: 32px 40px;\n    max-width: 760px;\n    margin: 0 auto;\n  }\n\n  #dps-isolated-root .article-wrap{\n    max-width: 920px;\n    margin: 0 auto 40px;\n    padding: 28px 40px 6px;\n    color: var(--text);\n  }\n\n  #dps-isolated-root .article-kicker{\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 10px;\n  }\n\n  #dps-isolated-root .article-title{\n    font-size: 34px;\n    line-height: 1.1;\n    font-weight: 700;\n    letter-spacing: -0.03em;\n    margin-bottom: 12px;\n    max-width: 760px;\n  }\n\n  #dps-isolated-root .article-lead{\n    font-size: 16px;\n    line-height: 1.7;\n    color: var(--text-2);\n    max-width: 860px;\n    margin-bottom: 24px;\n  }\n\n  #dps-isolated-root .article-section{\n    background: rgba(255,255,255,0.72);\n    border: 1px solid var(--border);\n    border-radius: 14px;\n    padding: 20px 20px 18px;\n    box-shadow: var(--shadow-sm);\n    margin-bottom: 16px;\n  }\n\n  #dps-isolated-root .article-section h3{\n    font-size: 18px;\n    line-height: 1.3;\n    margin-bottom: 10px;\n    color: var(--text);\n  }\n\n  #dps-isolated-root .article-section p{\n    font-size: 15px;\n    line-height: 1.72;\n    color: var(--text-2);\n    margin-bottom: 12px;\n  }\n\n  #dps-isolated-root .article-list{\n    display: grid;\n    gap: 8px;\n    margin: 0;\n    padding: 0;\n  }\n\n  #dps-isolated-root .article-list-item{\n    display: flex;\n    gap: 10px;\n    align-items: flex-start;\n    font-size: 15px;\n    line-height: 1.6;\n    color: var(--text-2);\n  }\n\n  #dps-isolated-root .article-bullet{\n    width: 7px;\n    height: 7px;\n    border-radius: 50%;\n    background: var(--accent);\n    margin-top: 9px;\n    flex-shrink: 0;\n  }\n\n  #dps-isolated-root .article-cta{\n    margin-top: 18px;\n    padding: 14px 16px;\n    border-radius: 12px;\n    background: linear-gradient(135deg, rgba(214,59,31,0.08), rgba(29,95,168,0.08));\n    border: 1px solid var(--accent-border);\n    color: var(--text);\n    font-size: 15px;\n    line-height: 1.7;\n  }\n\n  #dps-isolated-root .phase-header{\n    display: flex; align-items: flex-start; gap: 16px;\n    margin-bottom: 24px;\n    padding-bottom: 20px;\n    border-bottom: 1px solid var(--border);\n  }\n\n  #dps-isolated-root .phase-icon{\n    width: 40px; height: 40px; border-radius: 8px;\n    display: flex; align-items: center; justify-content: center;\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 12px; font-weight: 500;\n    flex-shrink: 0;\n    margin-top: 2px;\n  }\n\n  #dps-isolated-root .phase-icon.a{ background: var(--blue-light); color: var(--blue); border: 1px solid var(--blue-border); }\n  #dps-isolated-root .phase-icon.b{ background: var(--yellow-light); color: var(--yellow); border: 1px solid var(--yellow-border); }\n  #dps-isolated-root .phase-icon.c{ background: var(--accent-light); color: var(--accent); border: 1px solid var(--accent-border); }\n\n  #dps-isolated-root .phase-meta{ flex: 1; }\n  #dps-isolated-root .phase-tag{ font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }\n  #dps-isolated-root .phase-title{ font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--text); }\n  #dps-isolated-root .phase-desc{ font-size: 13px; color: var(--text-3); margin-top: 4px; line-height: 1.5; }\n\n  #dps-isolated-root .check-group{ margin-bottom: 32px; }\n\n  #dps-isolated-root .check-group-label{\n    font-size: 10px; font-weight: 600;\n    letter-spacing: 0.1em; text-transform: uppercase;\n    color: var(--text-3);\n    margin-bottom: 10px;\n    display: flex; align-items: center; gap: 8px;\n  }\n\n  #dps-isolated-root .check-group-label::after{ content: ''; flex: 1; height: 1px; background: var(--border); }\n\n  #dps-isolated-root .check-card{\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    margin-bottom: 8px;\n    overflow: hidden;\n    transition: border-color 0.15s, box-shadow 0.15s;\n    box-shadow: var(--shadow-sm);\n  }\n\n  #dps-isolated-root .check-card:hover{ border-color: var(--border-strong); box-shadow: var(--shadow); }\n  #dps-isolated-root .check-card.done{ background: var(--surface2); border-color: var(--green-border); }\n  #dps-isolated-root .check-card.done .check-title{ text-decoration: line-through; color: var(--text-3); }\n\n  #dps-isolated-root .check-main{\n    display: flex; align-items: flex-start; gap: 14px;\n    padding: 14px 16px;\n    cursor: pointer;\n    user-select: none;\n  }\n\n  #dps-isolated-root .check-box{\n    width: 18px; height: 18px;\n    border-radius: 4px;\n    border: 1.5px solid var(--border-strong);\n    background: var(--surface);\n    display: flex; align-items: center; justify-content: center;\n    flex-shrink: 0;\n    margin-top: 1px;\n    transition: all 0.15s;\n    position: relative;\n  }\n\n  #dps-isolated-root .check-card.done .check-box{ background: var(--check-color); border-color: var(--check-color); }\n\n  #dps-isolated-root .check-box svg{ opacity: 0; transform: scale(0.5); transition: all 0.15s; }\n  #dps-isolated-root .check-card.done .check-box svg{ opacity: 1; transform: scale(1); }\n\n  #dps-isolated-root .check-body{ flex: 1; min-width: 0; }\n\n  #dps-isolated-root .check-step-num{ font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--text-3); margin-bottom: 3px; }\n\n  #dps-isolated-root .check-title{ font-size: 13.5px; font-weight: 500; color: var(--text); line-height: 1.4; transition: color 0.15s; }\n\n  #dps-isolated-root .check-expand{\n    width: 20px; height: 20px;\n    display: flex; align-items: center; justify-content: center;\n    color: var(--text-3);\n    flex-shrink: 0; margin-top: 1px;\n    cursor: pointer; border-radius: 4px;\n    transition: background 0.12s, transform 0.2s;\n  }\n\n  #dps-isolated-root .check-expand:hover{ background: var(--bg); }\n  #dps-isolated-root .check-expand.open{ transform: rotate(180deg); }\n\n  #dps-isolated-root .check-detail{\n    border-top: 1px solid var(--border);\n    padding: 14px 16px 14px 48px;\n    background: var(--surface2);\n    display: none;\n  }\n\n  #dps-isolated-root .check-detail.open{ display: block; }\n\n  #dps-isolated-root .check-desc{ font-size: 13px; color: var(--text-2); line-height: 1.6; margin-bottom: 10px; }\n\n  #dps-isolated-root .note{\n    display: flex; align-items: flex-start; gap: 8px;\n    border-radius: 6px; padding: 10px 12px;\n    font-size: 12px; line-height: 1.5;\n    margin-top: 8px;\n  }\n\n  #dps-isolated-root .note-icon{ flex-shrink: 0; margin-top: 1px; font-size: 12px; }\n\n  #dps-isolated-root .note.info{ background: var(--blue-light); color: var(--blue); border: 1px solid var(--blue-border); }\n  #dps-isolated-root .note.warn{ background: var(--yellow-light); color: var(--yellow); border: 1px solid var(--yellow-border); }\n  #dps-isolated-root .note.danger{ background: var(--accent-light); color: var(--accent); border: 1px solid var(--accent-border); }\n  #dps-isolated-root .note.success{ background: var(--green-light); color: var(--green); border: 1px solid var(--green-border); }\n  #dps-isolated-root .note.purple{ background: var(--purple-light); color: var(--purple); border: 1px solid var(--purple-border); }\n\n  #dps-isolated-root .code{\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11.5px;\n    background: var(--bg);\n    border: 1px solid var(--border);\n    color: var(--blue);\n    padding: 2px 6px; border-radius: 3px;\n    word-break: break-all;\n  }\n\n  #dps-isolated-root .tags{ display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }\n  #dps-isolated-root .tag{\n    font-size: 11px; padding: 2px 8px; border-radius: 3px;\n    background: var(--bg);\n    border: 1px solid var(--border);\n    color: var(--text-3);\n    font-weight: 500;\n  }\n\n  \/* Prompt box *\/\n  #dps-isolated-root .prompt-block{\n    margin-top: 12px;\n  }\n\n  #dps-isolated-root .prompt-label{\n    font-size: 10px; font-weight: 600;\n    letter-spacing: 0.08em; text-transform: uppercase;\n    color: var(--purple);\n    margin-bottom: 6px;\n    display: flex; align-items: center; justify-content: space-between;\n  }\n\n  #dps-isolated-root .btn-copy{\n    font-family: 'IBM Plex Sans', sans-serif;\n    font-size: 10px; font-weight: 500;\n    color: var(--purple);\n    background: var(--purple-light);\n    border: 1px solid var(--purple-border);\n    padding: 3px 10px; border-radius: 3px;\n    cursor: pointer;\n    transition: all 0.15s;\n    letter-spacing: 0;\n    text-transform: none;\n  }\n\n  #dps-isolated-root .btn-copy:hover{ background: var(--purple-border); }\n  #dps-isolated-root .btn-copy.copied{ color: var(--green); background: var(--green-light); border-color: var(--green-border); }\n\n  #dps-isolated-root .prompt-text{\n    font-family: 'IBM Plex Mono', monospace;\n    font-size: 11px;\n    line-height: 1.6;\n    background: #1A1917;\n    color: #E8E5E0;\n    border-radius: 6px;\n    padding: 12px 14px;\n    white-space: pre-wrap;\n    word-break: break-word;\n    max-height: 200px;\n    overflow-y: auto;\n  }\n\n  #dps-isolated-root .phase-sep{ margin: 40px 0; }\n\n  #dps-isolated-root .right-panel{\n    border-left: 1px solid var(--border);\n    padding: 24px 20px;\n    position: fixed;\n    right: 0;\n    top: var(--sticky-top);\n    width: 280px;\n    height: calc(100vh - var(--sticky-top));\n    overflow-y: auto;\n    background: var(--surface);\n    align-self: start;\n    scrollbar-gutter: stable;\n  }\n\n  #dps-isolated-root .panel-title{\n    font-size: 11px; font-weight: 600;\n    letter-spacing: 0.1em; text-transform: uppercase;\n    color: var(--text-3); margin-bottom: 16px;\n  }\n\n  #dps-isolated-root .overall-progress{\n    background: var(--bg);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 16px;\n    margin-bottom: 20px;\n  }\n\n  #dps-isolated-root .overall-nums{ display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }\n\n  #dps-isolated-root .overall-count{ font-family: 'IBM Plex Mono', monospace; font-size: 28px; font-weight: 500; color: var(--text); line-height: 1; }\n  #dps-isolated-root .overall-total{ font-size: 12px; color: var(--text-3); }\n\n  #dps-isolated-root .progress-track{ height: 5px; background: var(--border); border-radius: 100px; overflow: hidden; }\n  #dps-isolated-root .progress-fill{ height: 100%; border-radius: 100px; background: var(--check-color); transition: width 0.4s cubic-bezier(0.4,0,0.2,1); }\n  #dps-isolated-root .progress-label{ font-size: 11px; color: var(--text-3); margin-top: 6px; }\n\n  #dps-isolated-root .phase-prog-list{ display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }\n  #dps-isolated-root .phase-prog{ display: flex; flex-direction: column; gap: 5px; }\n  #dps-isolated-root .phase-prog-header{ display: flex; justify-content: space-between; align-items: center; }\n  #dps-isolated-root .phase-prog-name{ font-size: 12px; font-weight: 500; color: var(--text-2); display: flex; align-items: center; gap: 6px; }\n  #dps-isolated-root .phase-badge{ font-size: 9px; font-weight: 600; padding: 1px 6px; border-radius: 2px; font-family: 'IBM Plex Mono', monospace; }\n  #dps-isolated-root .badge-a{ background: var(--blue-light); color: var(--blue); }\n  #dps-isolated-root .badge-b{ background: var(--yellow-light); color: var(--yellow); }\n  #dps-isolated-root .badge-c{ background: var(--accent-light); color: var(--accent); }\n  #dps-isolated-root .phase-prog-count{ font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--text-3); }\n  #dps-isolated-root .phase-track{ height: 4px; background: var(--border); border-radius: 100px; overflow: hidden; }\n  #dps-isolated-root .phase-fill-a{ background: var(--blue); height: 100%; border-radius: 100px; transition: width 0.4s; }\n  #dps-isolated-root .phase-fill-b{ background: var(--yellow); height: 100%; border-radius: 100px; transition: width 0.4s; }\n  #dps-isolated-root .phase-fill-c{ background: var(--accent); height: 100%; border-radius: 100px; transition: width 0.4s; }\n\n  #dps-isolated-root hr.panel-divider{ border: none; border-top: 1px solid var(--border); margin: 16px 0; }\n\n  #dps-isolated-root .log-list{ display: flex; flex-direction: column; gap: 6px; }\n  #dps-isolated-root .log-item{ display: flex; gap: 8px; font-size: 11.5px; color: var(--text-3); align-items: flex-start; }\n  #dps-isolated-root .log-dot{ width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }\n  #dps-isolated-root .log-dot.done{ background: var(--check-color); }\n  #dps-isolated-root .log-dot.undo{ background: var(--text-3); }\n  #dps-isolated-root .log-time{ font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--text-3); flex-shrink: 0; margin-top: 1px; }\n  #dps-isolated-root .log-empty{ font-size: 12px; color: var(--text-3); font-style: italic; }\n\n  #dps-isolated-root .done-banner{\n    background: var(--green-light);\n    border: 1px solid var(--green-border);\n    border-radius: 8px;\n    padding: 14px;\n    text-align: center;\n    margin-bottom: 16px;\n    display: none;\n  }\n\n  #dps-isolated-root .done-banner.show{ display: block; }\n  #dps-isolated-root .done-banner-title{ font-size: 13px; font-weight: 600; color: var(--green); }\n  #dps-isolated-root .done-banner-sub{ font-size: 11px; color: var(--green); margin-top: 3px; opacity: 0.8; }\n\n  @media (max-width: 900px) {\n    #dps-isolated-root{\n      width: 100%;\n      max-width: 100%;\n      margin-left: 0;\n      --sticky-top: 0px;\n    }\n    #dps-isolated-root .layout{ padding-left: 0; padding-right: 0; }\n    #dps-isolated-root .sidebar, #dps-isolated-root .right-panel{ display: none; }\n    #dps-isolated-root .main{ padding: 24px 20px; max-width: 100%; }\n  }\n<\/style>\n<div id=\"dps-isolated-root\">\n<div class=\"article-wrap\">\n  <div class=\"article-kicker\">SEO \/ WordPress \u5b89\u5168\u5de5\u5177<\/div>\n  <div class=\"article-title\">\u4f7f\u7528 AI Agent \u626b\u63cf WordPress \u6076\u610f\u4ee3\u7801\u5e76\u5f7b\u5e95\u6e05\u9664 malware \u7684\u65b9\u6cd5<\/div>\n  <div class=\"article-lead\">\u5f53\u4e00\u4e2a WordPress \u7f51\u7ad9\u88ab\u6000\u7591\u611f\u67d3\u6076\u610f\u4ee3\u7801\u65f6\uff0c\u95ee\u9898\u4e0d\u4ec5\u4ec5\u662f\u5220\u9664\u51e0\u4e2a\u5f02\u5e38\u6587\u4ef6\u3002Malware \u901a\u5e38\u5206\u6563\u5b58\u5728\u4e8e\u6e90\u4ee3\u7801\u3001\u6570\u636e\u5e93\u3001\u670d\u52a1\u5668\u65e5\u5fd7\u3001cron \u4efb\u52a1\u3001\u5f02\u5e38\u7528\u6237\u4ee5\u53ca . \u4e2d\u7684\u9690\u85cf\u6587\u4ef6 <span class=\"code\">wp-content<\/span>. \u6b64\u5de5\u5177\u9875\u9762\u65e8\u5728\u5e2e\u52a9\u6280\u672f\u56e2\u961f\u6309\u7167\u6b63\u786e\u6d41\u7a0b\u5904\u7406\uff0c\u51cf\u5c11\u9057\u6f0f\u5e76\u964d\u4f4e\u6e05\u7406\u540e\u518d\u6b21\u88ab\u5165\u4fb5\u7684\u98ce\u9669\u3002.<\/div>\n\n  <div class=\"article-section\">\n    <h3>\u8fd9\u4e2a\u5de5\u5177\u662f\u7528\u6765\u505a\u4ec0\u4e48\u7684\uff1f<\/h3>\n    <p>\u8fd9\u662f\u4e00\u4e2a\u5b9e\u6218\u6e05\u5355\uff0c\u9002\u7528\u4e8e\u6b63\u5728\u5904\u7406\u7591\u4f3c\u88ab\u653b\u51fb\u7684 WordPress \u7f51\u7ad9\u7684\u56e2\u961f\u3002\u5b83\u5f15\u5bfc\u7528\u6237\u7ecf\u8fc7 3 \u4e2a\u9636\u6bb5\uff1a\u786e\u8ba4\u8d23\u4efb\u3001\u4f7f\u7528 AI \u5728\u672c\u5730\u626b\u63cf\u8bca\u65ad\uff0c\u4ee5\u53ca\u6309\u5408\u7406\u987a\u5e8f\u5904\u7406\u95ee\u9898\u3002\u6bcf\u4e00\u6b65\u90fd\u9644\u6709\u7b80\u8981\u8bf4\u660e\u548c\u793a\u4f8b prompt\uff0c\u7528\u4e8e\u8ba9 AI Agent \u76f4\u63a5\u8bfb\u53d6\u6e90\u4ee3\u7801\u3001\u6570\u636e\u5e93\u6216\u8bbf\u95ee\u65e5\u5fd7\u3002.<\/p>\n    <div class=\"article-list\">\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u786e\u5b9a\u8be5\u7ad9\u70b9\u662f\u5426\u5c5e\u4e8e\u5904\u7406\u8303\u56f4\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>\u6536\u96c6\u6e90\u4ee3\u7801\u3001\u6570\u636e\u5e93\u548c\u65e5\u5fd7\u5230\u672c\u5730\u4f9b AI Agent \u626b\u63cf\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>\u68c0\u6d4b\u6076\u610f\u6587\u4ef6\u3001\u5f02\u5e38\u7528\u6237\u3001cron \u4efb\u52a1\u4ee5\u53ca\u6b8b\u7559\u7684\u6301\u4e45\u5316\u8ff9\u8c61\u3002.<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"article-section\">\n    <h3>\u4e3a\u4ec0\u4e48\u5e94\u8be5\u4f7f\u7528 AI Agent \u6765\u626b\u63cf WordPress malware\uff1f<\/h3>\n    <p>\u5927\u591a\u6570 WordPress \u95ee\u9898\u5e76\u4e0d\u53ea\u5b58\u5728\u4e8e\u5355\u4e2a\u6587\u4ef6\u3002\u9ed1\u5ba2\u53ef\u80fd\u5728\u4e3b\u9898\u4e2d\u690d\u5165\u540e\u95e8\uff0c\u5728 uploads \u4e2d\u9690\u85cf shell\uff0c\u5728\u6570\u636e\u5e93\u4e2d\u521b\u5efa\u65b0\u7684\u7ba1\u7406\u5458\u7528\u6237\uff0c\u6216\u5728 option \u4e2d\u6dfb\u52a0\u91cd\u5b9a\u5411\u3002\u5982\u679c\u624b\u52a8\u68c0\u67e5\uff0c\u7531\u4e8e\u6570\u636e\u91cf\u8fc7\u5927\uff0c\u5f88\u5bb9\u6613\u9057\u6f0f\u3002AI Agent \u53ef\u4ee5\u5feb\u901f\u8bfb\u53d6\u6574\u4e2a\u672c\u5730\u5de5\u4f5c\u533a\uff0c\u5e76\u6309\u6807\u51c6\u683c\u5f0f\u603b\u7ed3\u53ef\u7591\u70b9\u3002.<\/p>\n  <\/div>\n\n  <div class=\"article-section\">\n    <h3>\u6e05\u5355\u4e2d\u7684\u4e3b\u8981\u6d41\u7a0b<\/h3>\n    <div class=\"article-list\">\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span><b>\u9636\u6bb5 A\uff1a<\/b> \u786e\u8ba4\u7f51\u7ad9\u662f\u5426\u5c5e\u4e8e\u56e2\u961f\u7684\u5904\u7406\u8d23\u4efb\u8303\u56f4\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span><b>\u9636\u6bb5 B\uff1a<\/b> \u4f7f\u7528 AI Agent \u626b\u63cf\u6e90\u4ee3\u7801\u3001\u6570\u636e\u5e93\u548c\u8bbf\u95ee\u65e5\u5fd7\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span><b>\u9636\u6bb5 C\uff1a<\/b> \u5907\u4efd\u3001\u9501\u5b9a\u7f51\u7ad9\u3001\u66f4\u6539\u51ed\u8bc1\u3001\u91cd\u7f6e\u6838\u5fc3\u3001\u626b\u63cf <span class=\"code\">wp-content<\/span>, \u5220\u9664\u5f02\u5e38\u7528\u6237\u3001\u68c0\u67e5 cron \u4efb\u52a1\u5e76\u8fdb\u884c\u4ea4\u63a5\u3002.<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"article-section\">\n    <h3>\u5de5\u5177\u7684\u5dee\u5f02\u70b9<\/h3>\n    <p>\u6b64\u9875\u9762\u4e0d\u4ec5\u5217\u51fa\u9700\u8981\u5b8c\u6210\u7684\u4e8b\u9879\u3002\u5b83\u8fd8\u8ddf\u8e2a\u5904\u7406\u8fdb\u5ea6\uff0c\u63d0\u4f9b\u73b0\u6210\u7684\u793a\u4f8b prompt\uff0c\u5efa\u8bae\u4f18\u5148\u68c0\u67e5\u7684\u6587\u4ef6\u548c\u6570\u636e\u8868\uff0c\u540c\u65f6\u5e2e\u52a9\u56e2\u961f\u907f\u514d\u9057\u6f0f\u5173\u952e\u6b65\u9aa4\uff0c\u4f8b\u5982\u66f4\u6539\u6570\u636e\u5e93\u5bc6\u7801\u3001\u68c0\u67e5 cron \u4efb\u52a1\u6216\u5728\u6e05\u7406\u540e\u91cd\u65b0\u9a8c\u8bc1 Google Search Console\u3002.<\/p>\n  <\/div>\n\n  <div class=\"article-section\">\n    <h3>\u4ec0\u4e48\u65f6\u5019\u5e94\u8be5\u4f7f\u7528\uff1f<\/h3>\n    <div class=\"article-list\">\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>\u7f51\u7ad9\u81ea\u52a8\u91cd\u5b9a\u5411\u6216\u51fa\u73b0\u5b89\u5168\u8b66\u544a\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>uploads \u4e2d\u5b58\u5728\u5f02\u5e38 PHP \u6587\u4ef6\u6216\u4e3b\u9898\/\u63d2\u4ef6\u88ab\u5f02\u5e38\u4fee\u6539\u3002.<\/span><\/div>\n      <div class=\"article-list-item\"><span class=\"article-bullet\"><\/span><span>Search Console\u3001\u8bbf\u95ee\u65e5\u5fd7\u6216\u6570\u636e\u5e93\u4e2d\u51fa\u73b0\u6c61\u67d3\u8ff9\u8c61\u3002.<\/span><\/div>\n    <\/div>\n    <div class=\"article-cta\">\u7b80\u800c\u8a00\u4e4b\uff0c\u8fd9\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u5de5\u4f5c\u6d41\u7a0b\uff0c\u7528\u4e8e\u7cfb\u7edf\u5316\u5904\u7406 WordPress malware\uff0c\u964d\u4f4e\u9057\u6f0f\u540e\u95e8\u7684\u98ce\u9669\uff0c\u5e76\u63d0\u9ad8\u9996\u6b21\u5f7b\u5e95\u6e05\u7406\u7684\u6210\u529f\u7387\u3002.<\/div>\n  <\/div>\n<\/div>\n\n<div class=\"layout\">\n\n  <!-- SIDEBAR -->\n  <div class=\"sidebar\">\n    <div class=\"sidebar-section\">\n      <div class=\"sidebar-label\">\u9636\u6bb5<\/div>\n      <div class=\"sidebar-item phase-a\" data-scroll=\"#phase-a\" role=\"button\" tabindex=\"0\">\n        <div class=\"sidebar-phase\">A<\/div>\n        \u8d23\u4efb\u786e\u8ba4\n        <span class=\"sidebar-progress\" id=\"prog-a-side\">0\/2<\/span>\n      <\/div>\n      <div class=\"sidebar-item phase-b\" data-scroll=\"#phase-b\" role=\"button\" tabindex=\"0\">\n        <div class=\"sidebar-phase\">B<\/div>\n        \u8bca\u65ad\u4e0e\u626b\u63cf\n        <span class=\"sidebar-progress\" id=\"prog-b-side\">0\/3<\/span>\n      <\/div>\n      <div class=\"sidebar-item phase-c\" data-scroll=\"#phase-c\" role=\"button\" tabindex=\"0\">\n        <div class=\"sidebar-phase\">C<\/div>\n        \u6f0f\u6d1e\u5904\u7406\n        <span class=\"sidebar-progress\" id=\"prog-c-side\">0\/24<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"sidebar-divider\"><\/div>\n    <div class=\"sidebar-section\">\n      <div class=\"sidebar-label\">\u5904\u7406\u6b65\u9aa4<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c1\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">01<\/span>\u901a\u77e5\u56e2\u961f<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c2\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">02<\/span>\u5907\u4efd<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c3\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">03<\/span>\u9501\u5b9a\u7f51\u7ad9<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c4\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">04<\/span>\u91cd\u542f PHP<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c5\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">05<\/span>\u66f4\u6539\u6570\u636e\u5e93\u5bc6\u7801<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c6\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">06<\/span>\u66f4\u6539 FTP\/SSH \u5bc6\u7801<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c7\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">07<\/span>\u68c0\u67e5 wp-config.php<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c8\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">08<\/span>\u91cd\u7f6e WP \u6e90\u7801<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c9\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">09<\/span>\u626b\u63cf wp-content<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c10\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">10<\/span>\u65b0\u7684\u5b89\u5168\u5bc6\u94a5 (Security key)<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c11\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">11<\/span>\u5220\u9664\u591a\u4f59\u7684\u4e3b\u9898\/\u63d2\u4ef6<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c12\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">12<\/span>\u91cd\u7f6e\u6587\u4ef6\u6743\u9650<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c13\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">13<\/span>\u5220\u9664\u53ef\u7591\u7528\u6237<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c14\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">14<\/span>\u5173\u95ed\u81ea\u7531\u6ce8\u518c<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c15\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">15<\/span>\u66f4\u6539\u7ba1\u7406\u5458\u5bc6\u7801<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c16\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">16<\/span>\u91cd\u65b0\u5f00\u653e\u7f51\u7ad9<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c17\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">17<\/span>\u4fdd\u5b58\u56fa\u5b9a\u94fe\u63a5 (Permalink)<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c18\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">18<\/span>\u5b89\u88c5\u5b89\u5168\u63d2\u4ef6<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c19\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">19<\/span>\u66f4\u65b0\u4e3b\u9898\/\u63d2\u4ef6<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c20\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">20<\/span>\u68c0\u67e5\u5b9a\u65f6\u4efb\u52a1 (Cron job)<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c21\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">21<\/span>\u68c0\u67e5\u5b50\u76ee\u5f55<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c22\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">22<\/span>\u9a8c\u8bc1\/\u6d4b\u8bd5\u7f51\u7ad9<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c23\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">23<\/span>\u786e\u8ba4 GSC<\/div>\n      <div class=\"sidebar-item\" style=\"font-size:12px;color:var(--text-3);padding:5px 8px;\" data-scroll=\"#step-c24\" role=\"button\" tabindex=\"0\"><span style=\"font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-3);width:20px;\">24<\/span>\u544a\u77e5\u5ba2\u6237\/\u5229\u76ca\u76f8\u5173\u8005<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- MAIN -->\n  <div class=\"main\">\n\n    <!-- PHASE A -->\n    <div id=\"phase-a\" class=\"phase-sep\">\n      <div class=\"phase-header\">\n        <div class=\"phase-icon a\">A<\/div>\n        <div class=\"phase-meta\">\n          <div class=\"phase-tag\">\u9636\u6bb5 A<\/div>\n          <div class=\"phase-title\">\u8d23\u4efb\u786e\u8ba4<\/div>\n          <div class=\"phase-desc\">\u5728\u91c7\u53d6\u4efb\u4f55\u884c\u52a8\u4e4b\u524d\uff0c\u5148\u95ee\u8fd9\u4e24\u4e2a\u95ee\u9898\uff0c\u4ee5\u786e\u4fdd\u8fd9\u662f\u4f60\u804c\u8d23\u8303\u56f4\u5185\u7684\u5de5\u4f5c\u3002.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u786e\u8ba4\u95ee\u9898<\/div>\n\n        <div class=\"check-card\" id=\"check-a1\" onclick=\"toggleCheck('a1', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\">A.01<\/div>\n              <div class=\"check-title\">\u7f51\u7ad9\u662f\u5426\u6258\u7ba1\u5728 DPS\uff1f<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-a1', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-a1\">\n            <div class=\"check-desc\">\u5982\u679c\u4e0d\u662f\u5728 DPS \u6258\u7ba1\uff0c\u90a3\u8fd9\u53ef\u80fd\u4e0d\u662f\u6211\u4eec\u56e2\u961f\u7684\u5de5\u4f5c\u3002\u5728\u52a8\u624b\u524d\u5148\u8be2\u95ee\u3002.<\/div>\n            <div class=\"tags\"><span class=\"tag\">\u8be2\u95ee\u5f00\u53d1\u90e8<\/span><span class=\"tag\">\u8be2\u95ee\u8d22\u52a1\u90e8<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-a2\" onclick=\"toggleCheck('a2', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\">A.02<\/div>\n              <div class=\"check-title\">\u7f51\u7ad9\u662f\u5426\u5c5e\u4e8e DPS \u6b63\u5728\u8fd0\u884c\u7684\u9879\u76ee\uff1f<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-a2', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-a2\">\n            <div class=\"check-desc\">SEO\u3001\u5e7f\u544a\u2026\u2026\u5982\u679c\u6709\u6b63\u5728\u8fd0\u884c\u7684\u9879\u76ee\uff0c\u56e2\u961f\u5c31\u6709\u8d23\u4efb\u5904\u7406\u3002.<\/div>\n            <div class=\"tags\"><span class=\"tag\">\u8be2\u95ee\u5ba2\u6237\u7ecf\u7406 (Account)<\/span><span class=\"tag\">\u8be2\u95ee\u8d22\u52a1\u90e8<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PHASE B -->\n    <div id=\"phase-b\" class=\"phase-sep\">\n      <div class=\"phase-header\">\n        <div class=\"phase-icon b\">B<\/div>\n        <div class=\"phase-meta\">\n          <div class=\"phase-tag\">\u9636\u6bb5 B<\/div>\n          <div class=\"phase-title\">\u8bca\u65ad\u4e0e\u626b\u63cf<\/div>\n          <div class=\"phase-desc\">\u5728\u5904\u7406\u524d\u6536\u96c6\u5de5\u4ef6 (Artifact)\u3002\u6ca1\u6709\u8fd9\u4e00\u6b65\u5c31\u4e0d\u77e5\u9053\u9ed1\u5ba2\u4ece\u54ea\u91cc\u6f5c\u5165\uff0c\u6e05\u7406\u5b8c\u540e\u4ecd\u4f1a\u518d\u6b21\u88ab\u9ed1\u3002.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u6536\u96c6\u5de5\u4ef6\u4e0e AI \u626b\u63cf<\/div>\n\n        <div class=\"check-card\" id=\"check-b1\" onclick=\"toggleCheck('b1', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\">B.01<\/div>\n              <div class=\"check-title\">\u6536\u96c6\u6e90\u7801\u3001\u6570\u636e\u5e93\u3001\u65e5\u5fd7\uff0c\u7136\u540e\u8ba9 AI agent \u8fdb\u884c\u672c\u5730\u626b\u63cf<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-b1', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-b1\">\n            <div class=\"check-desc\">\u5728\u4e00\u4e2a\u73af\u8282\u5185\u5b8c\u6210\uff1a\u5c06\u6e90\u4ee3\u7801\u3001\u6570\u636e\u5e93\u548c\u65e5\u5fd7\u4e0b\u8f7d\u5230\u7535\u8111\uff1b\u5728 IDE \u4e2d\u6253\u5f00\u5b83\u4eec\uff1b\u7136\u540e\u8ba9 AI agent \u76f4\u63a5\u6d4f\u89c8\u672c\u5730\u5de5\u4f5c\u533a (workspace) \u8fdb\u884c\u626b\u63cf\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u5982\u679c\u6e90\u7801\u592a\u91cd\uff0c\u4f18\u5148\u4e0b\u8f7d root \u6e90\u7801 + <span class=\"code\">wp-content<\/span> + <span class=\"code\">wp-config.php<\/span> + <span class=\"code\">.htaccess<\/span> + <span class=\"code\">index.php<\/span>. \u3002\u76ee\u6807\u662f\u4fdd\u7559\u8db3\u591f\u7684\u8bc1\u636e\uff0c\u8ba9 agent \u80fd\u591f\u8bfb\u53d6\u5168\u5c40\u60c5\u51b5\u3002.<\/span><\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u8fd9\u662f\u8bca\u65ad\u6b65\u9aa4\u3002\u5b8c\u6210\u540e\u5fc5\u987b\u5f97\u51fa\uff1a\u54ea\u4e9b\u6587\u4ef6\u53ef\u7591\u3001\u54ea\u4e9b\u6570\u636e\u5e93\u884c\u53d7\u611f\u67d3\u3001\u54ea\u4e9b\u65e5\u5fd7\u663e\u793a\u4e86\u653b\u51fb\u8f7d\u4f53 (vector)\uff0c\u4ee5\u53ca\u54ea\u4e9b\u6587\u4ef6\/\u8def\u5f84\u53ef\u80fd\u662f\u5165\u4fb5\u70b9\u3002.<\/span><\/div>\n\n            <div class=\"prompt-block\">\n              <div class=\"prompt-label\">\n                \u63d0\u793a\u8bcd \u2014 \u626b\u63cf\u6e90\u4ee3\u7801\n                <button class=\"btn-copy\" onclick=\"copyPrompt('p-source', this)\">\u590d\u5236\u63d0\u793a\u8bcd<\/button>\n              <\/div>\n              <div class=\"prompt-text\" id=\"p-source\">\u4f60\u662f\u4e00\u4f4d WordPress \u5b89\u5168\u4e13\u5bb6\u3002\u6211\u5df2\u7ecf\u5c06\u4e00\u4e2a\u7591\u4f3c\u88ab\u9ed1\u7684 WordPress \u7f51\u7ad9\u7684\u5168\u90e8\u6e90\u4ee3\u7801\u4e0b\u8f7d\u5230\u7535\u8111\u5e76\u7528 IDE \u6253\u5f00\u3002\u8bf7\u76f4\u63a5\u6d4f\u89c8\u6b64\u672c\u5730\u5de5\u4f5c\u533a\u3002\\n\\n\u8bf7\u5206\u6790\u5e76\u8fd4\u56de\uff1a\\n\\n1. \u5371\u9669\u6587\u4ef6\\n   \u2013 \u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\u7684\u6587\u4ef6\uff1aeval(base64_decode), gzinflate, str_rot13, assert(), preg_replace \/e, system(), exec(), passthru()\\n   \u2013 \u4f4d\u4e8e uploads\/ \u76ee\u5f55\u4e0b\u7684 .php \u6587\u4ef6\uff08\u4e0d\u5bfb\u5e38\uff09\\n   \u2013 \u968f\u673a\u547d\u540d\u6216\u4f2a\u9020 WP \u6838\u5fc3\u540d\u79f0\u7684\u6587\u4ef6\uff08\u4f8b\u5982\uff1awp-logln.php, hello.php\uff09\\n\\n2. \u6700\u8fd1\u4fee\u6539\u7684\u6587\u4ef6\\n   \u2013 \u5217\u51fa\u4fee\u6539\u65f6\u95f4\u6233 (timestamp) \u4e0e\u5176\u4ed6\u6587\u4ef6\u76f8\u6bd4\u5f02\u5e38\u7684\u6587\u4ef6\\n   \u2013 \u4f18\u5148\u7ea7\uff1afunctions.php, wp-config.php, .htaccess, index.php\\n\\n3. \u5177\u4f53\u6076\u610f\u4ee3\u7801\\n   \u2013 \u63d0\u53d6\u53ef\u7591\u4ee3\u7801\u6bb5\uff0c\u89e3\u91ca\u5176\u529f\u80fd\\n   \u2013 \u5206\u7c7b\uff1a\u540e\u95e8 shell \/ \u5783\u573e\u4fe1\u606f\u6ce8\u5165 \/ \u91cd\u5b9a\u5411 \/ \u51ed\u636e\u7a83\u53d6 \/ \u52a0\u5bc6\u8d27\u5e01\u6316\u77ff\\n\\n4. \u5165\u4fb5\u8f7d\u4f53\u7ed3\u8bba\\n   \u2013 \u6839\u636e\u4f4d\u7f6e\u548c\u6076\u610f\u4ee3\u7801\u7c7b\u578b\uff0c\u653b\u51fb\u8f7d\u4f53\u53ef\u80fd\u662f\u4ec0\u4e48\uff1f\\n   \u2013 \u54ea\u4e2a\u63d2\u4ef6\/\u4e3b\u9898\u6700\u6709\u53ef\u80fd\u662f\u5165\u53e3\u70b9\uff1f\\n\\n\u683c\u5f0f\uff1a\u6807\u9898\u6e05\u6670\uff0c\u6bcf\u4e2a\u5371\u9669\u6587\u4ef6\u9700\u6ce8\u660e\u8def\u5f84 + \u4ee3\u7801\u884c + \u4e25\u91cd\u7a0b\u5ea6 (CRITICAL \/ HIGH \/ MEDIUM)\u3002.<\/div>\n            <\/div>\n\n            <div class=\"prompt-block\">\n              <div class=\"prompt-label\">\n                \u63d0\u793a\u8bcd \u2014 \u626b\u63cf\u6570\u636e\u5e93\n                <button class=\"btn-copy\" onclick=\"copyPrompt('p-db', this)\">\u590d\u5236\u63d0\u793a\u8bcd<\/button>\n              <\/div>\n              <div class=\"prompt-text\" id=\"p-db\">\u4f60\u662f\u4e00\u4f4d WordPress \u5b89\u5168\u4e13\u5bb6\u3002\u6211\u5df2\u7ecf\u5c06\u4e00\u4e2a\u7591\u4f3c\u88ab\u9ed1\u7f51\u7ad9\u7684 SQL \u5bfc\u51fa\u6587\u4ef6\u4e0b\u8f7d\u5230\u7535\u8111\u5e76\u7528 IDE \u6253\u5f00\u3002\u8bf7\u76f4\u63a5\u6d4f\u89c8\u6b64\u672c\u5730\u6587\u4ef6\u3002\\n\\n\u8bf7\u5206\u6790\u4ee5\u4e0b\u8868\u5e76\u8fd4\u56de\uff1a\\n\\n1. wp_options\\n   \u2013 siteurl, home \u662f\u5426\u88ab\u66f4\u6539\u6216\u63d2\u5165\u91cd\u5b9a\u5411\uff1f\\n   \u2013 active_plugins \u662f\u5426\u6709\u964c\u751f\u63d2\u4ef6\uff08\u8def\u5f84\u5f02\u5e38\uff0cwp-content \u4e2d\u4e0d\u5b58\u5728\u7684\u63d2\u4ef6\uff09\uff1f\\n   \u2013 \u662f\u5426\u6709\u4efb\u4f55 option \u5305\u542b\u53ef\u7591\u7684 base64, eval, iframe, \uff1f\\n   \u2013 admin_email \u662f\u5426\u88ab\u66f4\u6539\uff1f\\n\\n2. wp_posts \/ wp_postmeta\\n   \u2013 \u54ea\u4e9b\u6587\u7ae0\u5305\u542b\u5783\u573e\u5173\u952e\u8bcd\uff08viagra, casino, pharma, \uce74\uc9c0\ub178, \u836f\uff09\uff1f\\n   \u2013 \u54ea\u4e9b\u6587\u7ae0\u6709\u9690\u85cf\u7684 iframe\u3001\u9690\u85cf\u94fe\u63a5\uff08display:none, font-size:0\uff09\uff1f\\n   \u2013 Post_status = publish \u4f46\u6807\u9898\u6216\u5185\u5bb9\u5f02\u5e38\uff1f\\n\\n3. wp_users \/ wp_usermeta\\n   \u2013 \u54ea\u4e9b\u6700\u8fd1\u521b\u5efa\u7684\u7528\u6237\u5177\u6709 administrator \u89d2\u8272\uff1f\\n   \u2013 user_registered \u65f6\u95f4\u6233\u662f\u5426\u5f02\u5e38\uff1f\\n   \u2013 \u662f\u5426\u6709\u770b\u8d77\u6765\u50cf\u673a\u5668\u4eba\u7684 user_login\uff08\u968f\u673a\u5b57\u7b26\u4e32\u3001\u4f2a\u9020\u90ae\u7bb1\uff09\uff1f\\n\\n4. \u7ed3\u8bba\\n   \u2013 \u653b\u51fb\u7c7b\u578b\uff1a\u836f\u54c1\u9ed1\u5ba2\u653b\u51fb (Pharma hack) \/ \u65e5\u8bed SEO \u9ed1\u5ba2\u653b\u51fb \/ \u540e\u95e8\u7528\u6237 \/ Option \u6ce8\u5165\uff1f\\n   \u2013 \u611f\u67d3\u7a0b\u5ea6\uff1a\u53d7\u5f71\u54cd\u7684\u8bb0\u5f55\u6570\u91cf\uff1f\\n   \u2013 \u6e05\u7406\u6570\u636e\u5e93\u9700\u8981\u505a\u4e9b\u4ec0\u4e48\uff1f\\n\\n\u683c\u5f0f\uff1a\u8868\u683c\u5f62\u5f0f\u5217\u51fa\u53d7\u611f\u67d3\u7684\u7528\u6237\/\u9009\u9879\uff0c\u6ce8\u660e\u8868 + \u5b57\u6bb5 + \u53ef\u7591\u503c\u3002.<\/div>\n            <\/div>\n\n            <div class=\"prompt-block\">\n              <div class=\"prompt-label\">\n                \u63d0\u793a\u8bcd \u2014 \u626b\u63cf\u8bbf\u95ee\u65e5\u5fd7\n                <button class=\"btn-copy\" onclick=\"copyPrompt('p-log', this)\">\u590d\u5236\u63d0\u793a\u8bcd<\/button>\n              <\/div>\n              <div class=\"prompt-text\" id=\"p-log\">\u4f60\u662f\u4e00\u4f4d WordPress \u5b89\u5168\u4e13\u5bb6\u3002\u6211\u5df2\u7ecf\u5c06 Web \u670d\u52a1\u5668\u7684\u8bbf\u95ee\u65e5\u5fd7 (access log) \u548c\/\u6216\u9519\u8bef\u65e5\u5fd7 (error log) \u4e0b\u8f7d\u5230\u7535\u8111\u5e76\u7528 IDE \u6253\u5f00\u3002\u8bf7\u76f4\u63a5\u6d4f\u89c8\u6b64\u672c\u5730\u6587\u4ef6\u3002\\n\\n\u8bf7\u5206\u6790\u5e76\u8fd4\u56de\uff1a\\n\\n1. \u4e8b\u4ef6\u65f6\u95f4\u8f74\\n   \u2013 \u5e26\u6709\u653b\u51fb\u8ff9\u8c61\u7684\u7b2c\u4e00\u4e2a\u8bf7\u6c42\u51fa\u73b0\u5728\u4ec0\u4e48\u65f6\u5019\uff1f\\n   \u2013 \u4ece\u626b\u63cf \u2192 \u6f0f\u6d1e\u5229\u7528 \u2192 \u540e\u95e8\u4e0a\u4f20\u7684\u4e8b\u4ef6\u94fe\u662f\u5982\u4f55\u53d1\u751f\u7684\uff1f\\n\\n2. \u88ab\u5229\u7528\u7684\u7aef\u70b9 (Endpoint)\\n   \u2013 xmlrpc.php\uff1a\u662f\u5426\u88ab\u66b4\u529b\u7834\u89e3\u6216 multicall \u6ee5\u7528\uff1f\\n   \u2013 wp-login.php\uff1a\u8bf7\u6c42\u91cf\u662f\u5426\u5f02\u5e38\uff1f\\n   \u2013 admin-ajax.php\uff1a\u662f\u5426\u6709\u5f02\u5e38 action\uff1f\\n   \u2013 \u4e0a\u4f20\u7aef\u70b9\uff1a\u662f\u5426\u6709 PHP \u6587\u4ef6\u4e0a\u4f20\u6210\u529f\uff1f\\n   \u2013 \u54ea\u4e9b URL \u8fd4\u56de 200 \u4f46\u770b\u8d77\u6765\u50cf shell \u8def\u5f84\uff1f\\n\\n3. \u653b\u51fb IP\\n   \u2013 \u54ea\u4e9b IP \u884c\u4e3a\u5f02\u5e38\uff08\u626b\u63cf\u591a\u4e2a\u8def\u5f84\u3001\u6301\u7eed POST\uff09\uff1f\\n   \u2013 \u5217\u51fa\u524d 10 \u4e2a\u53ef\u7591 IP + \u8bf7\u6c42\u6570 + \u884c\u4e3a\\n\\n4. \u6301\u4e45\u5316\u8ff9\u8c61\\n   \u2013 \u9996\u6b21\u653b\u51fb\u540e\uff0c\u662f\u5426\u6709\u9488\u5bf9\u540e\u95e8\u6587\u4ef6\u7684\u540e\u7eed\u8bf7\u6c42\uff1f\\n   \u2013 \u9ed1\u5ba2\u8fd4\u56de\u4e86\u591a\u5c11\u6b21\uff0c\u6765\u81ea\u54ea\u4e2a IP\uff1f\\n\\n5. \u5165\u4fb5\u8f7d\u4f53\u7ed3\u8bba\\n   \u2013 \u57fa\u4e8e\u65e5\u5fd7\u5206\u6790\uff0c\u6982\u7387\u6700\u9ad8\u7684\u653b\u51fb\u8f7d\u4f53\u662f\u4ec0\u4e48\uff1f\\n   \u2013 \u54ea\u4e2a\u63d2\u4ef6\/\u8def\u5f84\u662f\u5165\u53e3\u70b9\uff1f\\n\\n\u683c\u5f0f\uff1a\u6309\u65f6\u95f4\u987a\u5e8f\u7684\u65f6\u95f4\u8f74\uff0c\u8868\u683c\u5f62\u5f0f\u7684 IP \u5217\u8868\uff0c\u5217\u8868\u5f62\u5f0f\u7684\u7aef\u70b9\u53ca HTTP \u65b9\u6cd5 + \u72b6\u6001\u7801\u3002.<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u786e\u8ba4\u5f53\u524d\u9632\u5fa1\u72b6\u6001<\/div>\n\n        <div class=\"check-card\" id=\"check-b2\" onclick=\"toggleCheck('b2', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\">B.02<\/div>\n              <div class=\"check-title\">\u68c0\u67e5 DPS Shield WordPress Security \u63d2\u4ef6<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-b2', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-b2\">\n            <div class=\"check-desc\">\u8bbf\u95ee <span class=\"code\">t\u00eanweb.com\/admindps<\/span> \u8fdb\u884c\u68c0\u67e5\u3002\u80fd\u8fdb\u53bb = \u5df2\u5b89\u88c5 DPS Shield\u3002\u4e0d\u80fd\u8fdb\u53bb = \u672a\u5b89\u88c5\u3002.<\/div>\n            <div class=\"note danger\"><span class=\"note-icon\">!<\/span><span>\u6ca1\u6709 DPS Shield = \u88ab\u9ed1\u98ce\u9669\u9ad8\u8fbe 80%\u3002\u8fd9\u662f DPS \u7684\u5185\u90e8\u5b89\u5168\u63d2\u4ef6\u3002.<\/span><\/div>\n            <div class=\"note info\" style=\"margin-top:6px;\"><span class=\"note-icon\">i<\/span><span>\u4e0b\u8f7d\u63d2\u4ef6\uff1a <div style=\"color:var(--blue);text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:11px;\" data-open=\"https:\/\/github.com\/hienhoceo-dpsmedia\/dps-wordpress-security\" role=\"button\" tabindex=\"0\">github.com\/hienhoceo-dpsmedia\/dps-wordpress-security<\/div><\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-b3\" onclick=\"toggleCheck('b3', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\">B.03<\/div>\n              <div class=\"check-title\">\u68c0\u67e5\u670d\u52a1\u5668\u7aef\u9632\u706b\u5899\/WAF \u662f\u5426\u5f00\u542f<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-b3', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-b3\">\n            <div class=\"check-desc\">\u68c0\u67e5\u5e94\u7528\u578b WAF \u6216\u670d\u52a1\u5668\u7aef\u6d41\u91cf\u8fc7\u6ee4\u5c42\u662f\u5426\u5df2\u5f00\u542f\u5e76\u914d\u7f6e\u6b63\u786e\u3002.<\/div>\n            <div class=\"note success\"><span class=\"note-icon\">+<\/span><span>\u5f00\u542f\u670d\u52a1\u5668\u7aef WAF = \u5728\u6d41\u91cf\u8fdb\u5165 WordPress \u4e4b\u524d\u51cf\u5c11\u6076\u610f\u6d41\u91cf\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PHASE C -->\n    <div id=\"phase-c\" class=\"phase-sep\">\n      <div class=\"phase-header\">\n        <div class=\"phase-icon c\">C<\/div>\n        <div class=\"phase-meta\">\n          <div class=\"phase-tag\">\u9636\u6bb5 C<\/div>\n          <div class=\"phase-title\">\u5904\u7406\u6b65\u9aa4<\/div>\n          <div class=\"phase-desc\">\u6309\u6b63\u786e\u987a\u5e8f\u64cd\u4f5c\u3002\u4e0d\u8981\u8df3\u6b65\u3002\u6bcf\u4e00\u6b65\u90fd\u6709\u5176\u5177\u4f53\u539f\u56e0\u3002.<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Chu\u1ea9n b\u1ecb -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u51c6\u5907<\/div>\n\n        <div class=\"check-card\" id=\"check-c1\" onclick=\"toggleCheck('c1', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c1\">C.01<\/div>\n              <div class=\"check-title\">\u901a\u77e5\u56e2\u961f<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c1', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c1\">\n            <div class=\"check-desc\">\u544a\u77e5\u5927\u5bb6\u4f60\u6b63\u5728\u5904\u7406\u3002\u907f\u514d\u5de5\u4f5c\u51b2\u7a81\u6216\u65b9\u4fbf\u9700\u8981\u4ed6\u4eba\u914d\u5408\u3002.<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c2\" onclick=\"toggleCheck('c2', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c2\">C.02<\/div>\n              <div class=\"check-title\">\u5907\u4efd\u6e90\u4ee3\u7801\u548c\u6570\u636e\u5e93<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c2', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c2\">\n            <div class=\"check-desc\">\u5728\u6539\u52a8\u4efb\u4f55\u4e1c\u897f\u4e4b\u524d\u8fdb\u884c\u5b8c\u6574\u5907\u4efd\u3002\u5982\u679c\u6ca1\u6709 UpdraftPlus\uff0c\u8bf7\u901a\u8fc7\u4e3b\u673a\u9762\u677f\u624b\u52a8\u5907\u4efd\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u5373\u4f7f\u7f51\u7ad9\u5df2\u53d7\u611f\u67d3\uff0c\u4ecd\u9700\u4fdd\u7559\u539f\u59cb\u7248\u672c\u4ee5\u4fbf\u5bf9\u6bd4\u6216\u6062\u590d\u5185\u5bb9\u3002\u8fd9\u4e00\u6b65\u4e0d\u540c\u4e8e B.01\u2013B.02 \u2014\u2014 \u8fd9\u662f\u5f52\u6863\u5907\u4efd\uff0c\u4e0d\u662f\u4e3a\u4e86\u626b\u63cf\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c3\" onclick=\"toggleCheck('c3', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c3\">C.03<\/div>\n              <div class=\"check-title\">\u9501\u5b9a\u7f51\u7ad9 (Suspend)<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c3', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c3\">\n            <div class=\"check-desc\">\u8fdb\u5165\u4e3b\u673a\u9762\u677f\u6216 VPS \u811a\u672c\uff0c\u6302\u8d77 (suspend)\/\u9501\u5b9a\u57df\u540d\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u9ed1\u5ba2\u5728\u4f60\u5904\u7406\u671f\u95f4\u65e0\u6cd5\u7ee7\u7eed\u8bbf\u95ee\u3002\u5728\u7ee7\u7eed\u540e\u7eed\u6b65\u9aa4\u524d\u7acb\u5373\u6267\u884c\u6b64\u64cd\u4f5c\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Can thi\u1ec7p m\u00e1y ch\u1ee7 -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u5e72\u9884\u670d\u52a1\u5668<\/div>\n\n        <div class=\"check-card\" id=\"check-c4\" onclick=\"toggleCheck('c4', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c4\">C.04<\/div>\n              <div class=\"check-title\">\u91cd\u542f PHP<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c4', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c4\">\n            <div class=\"check-desc\"><b>CyberPanel\uff1a<\/b> \u5207\u6362\u5230\u53e6\u4e00\u4e2a PHP \u7248\u672c\uff0c\u7136\u540e\u518d\u6362\u56de\u65e7\u7248\u672c\u3002.<br><b>cPanel\uff1a<\/b> \u540c\u4e0a\uff0c\u6765\u56de\u5207\u6362\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u6b64\u547d\u4ee4\u5f3a\u5236\u670d\u52a1\u5668\u6740\u6389\u5185\u5b58\u4e2d\u8fd0\u884c\u7684\u6240\u6709 PHP \u8fdb\u7a0b\uff0c\u5207\u65ad\u9ed1\u5ba2\u6b63\u5728\u540e\u53f0\u8fd0\u884c\u7684\u8fde\u63a5\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c5\" onclick=\"toggleCheck('c5', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c5\">C.05<\/div>\n              <div class=\"check-title\">\u66f4\u6539\u6570\u636e\u5e93\u5bc6\u7801<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c5', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c5\">\n            <div class=\"check-desc\">\u4e3a\u6570\u636e\u5e93\u521b\u5efa\u65b0\u5bc6\u7801\uff0c\u5e76\u7acb\u5373\u66f4\u65b0\u5230\u6587\u4ef6 <span class=\"code\">wp-config.php<\/span>.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u9ed1\u5ba2\u7ecf\u5e38\u4fdd\u5b58\u6570\u636e\u5e93\u4fe1\u606f\u4ee5\u4fbf\u65e5\u540e\u8fd4\u56de\u3002\u66f4\u6539\u5bc6\u7801\u53ef\u4ee5\u5207\u65ad\u8fd9\u6761\u8def\u5f84\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c6\" onclick=\"toggleCheck('c6', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c6\">C.06<\/div>\n              <div class=\"check-title\">\u66f4\u6539 FTP \/ SFTP \/ SSH \u5bc6\u7801<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c6', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c6\">\n            <div class=\"check-desc\">\u66f4\u6539\u6240\u6709\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u51ed\u636e\uff1a\u4e3b\u673a\u9762\u677f\u4e2d\u7684 FTP \u8d26\u6237\uff0c\u5982\u679c\u76f4\u63a5\u4f7f\u7528 VPS \u5219\u66f4\u6539 SSH key \u6216\u5bc6\u7801\u3002.<\/div>\n            <div class=\"note danger\"><span class=\"note-icon\">!<\/span><span>\u8bb8\u591a WordPress \u88ab\u9ed1\u6848\u4f8b\u6e90\u4e8e FTP \u51ed\u636e\u6cc4\u9732\uff08\u5ba2\u6237\u7aef\u7535\u8111\u4e0a\u7684\u6076\u610f\u8f6f\u4ef6\u3001\u672a\u66f4\u6539\u7684\u65e7\u51ed\u636e\uff09\u3002\u5982\u679c\u53ea\u66f4\u6539\u6570\u636e\u5e93\u5bc6\u7801\u800c\u4e0d\u66f4\u6539 FTP\uff0c\u9ed1\u5ba2\u4f1a\u7acb\u5373\u518d\u6b21\u8fdb\u5165\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- L\u00e0m s\u1ea1ch m\u00e3 ngu\u1ed3n -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u6e05\u7406\u6e90\u4ee3\u7801<\/div>\n\n        <div class=\"check-card\" id=\"check-c7\" onclick=\"toggleCheck('c7', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c7\">C.07<\/div>\n              <div class=\"check-title\">\u68c0\u67e5 wp-config.php<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c7', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c7\">\n            <div class=\"check-desc\">\u6253\u5f00 <span class=\"code\">wp-config.php<\/span> \u4ed4\u7ec6\u9605\u8bfb\uff1a\u68c0\u67e5\u6587\u4ef6\u7684\u5f00\u5934\u548c\u7ed3\u5c3e\uff0c\u67e5\u770b\u662f\u5426\u6709\u5f02\u5e38\u4ee3\u7801\u6bb5\u3001eval\u3001base64\u3001\u5f02\u5e38 include\u3002\u65e0\u9700\u68c0\u67e5 <span class=\"code\">.htaccess<\/span> \u56e0\u4e3a C.08 \u6b65\u9aa4\u91cd\u7f6e WP \u4f1a\u5c06\u5176\u5220\u9664\uff0c\u4e14 C.17 \u4fdd\u5b58\u56fa\u5b9a\u94fe\u63a5\u4f1a\u91cd\u65b0\u521b\u5efa\u4e00\u4e2a\u5e72\u51c0\u7684\u6587\u4ef6\u3002.<\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span><span class=\"code\">wp-config.php<\/span> \u662f\u6700\u5bb9\u6613\u88ab\u63d2\u5165\u6076\u610f\u4ee3\u7801\u7684\u6587\u4ef6\u3002\u5728\u7ee7\u7eed\u4e4b\u524d\u786e\u8ba4\u5176\u5df2\u6e05\u7406\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c8\" onclick=\"toggleCheck('c8', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c8\">C.08<\/div>\n              <div class=\"check-title\">\u5c06 WordPress \u6e90\u4ee3\u7801\u91cd\u7f6e\u4e3a\u6700\u65b0\u7248\u672c<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c8', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c8\">\n            <div class=\"check-desc\">\u5220\u9664\u6240\u6709\u65e7\u7684 WordPress \u6587\u4ef6\uff0c\u91cd\u65b0\u5b89\u88c5\u6700\u65b0\u7684\u5e72\u51c0\u7248\u672c\u3002.<\/div>\n            <div class=\"note success\"><span class=\"note-icon\">+<\/span><span>\u4fdd\u7559\uff1a\u76ee\u5f55 <span class=\"code\">wp-content<\/span>, \u3001\u6587\u4ef6 <span class=\"code\">wp-config.php<\/span>, \uff0c\u4ee5\u53ca\u5176\u4ed6\u7f51\u7ad9\u5b50\u76ee\u5f55\uff08\u5982\u679c\u6709\uff09\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c9\" onclick=\"toggleCheck('c9', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c9\">C.09<\/div>\n              <div class=\"check-title\">\u4e0b\u8f7d wp-content \u5e76\u8ba9 AI Agent \u5168\u9762\u626b\u63cf<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c9', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c9\">\n            <div class=\"check-desc\">\u4e0b\u8f7d\u6574\u4e2a\u76ee\u5f55 <span class=\"code\">wp-content<\/span> \u5230\u672c\u5730\uff0c\u7136\u540e\u8ba9 AI Agent\uff08Claude, Codex, Gemini\uff09\u8fdb\u884c\u626b\u63cf\u3002\u626b\u63cf\u8303\u56f4\u5305\u62ec\uff1a<br>\u2022 <span class=\"code\">uploads\/<\/span> \u2014 \u67e5\u627e\u9690\u85cf\u5728\u56fe\u7247\/\u5a92\u4f53\u4e2d\u7684 .php \u6587\u4ef6<br>\u2022 <span class=\"code\">themes\/<\/span> \u2014 \u5305\u62ec\u6b63\u5728\u4f7f\u7528\u7684\u548c\u672a\u4f7f\u7528\u7684\u4e3b\u9898<br>\u2022 <span class=\"code\">plugins\/<\/span> \u2014 \u6240\u6709\u63d2\u4ef6\uff0c\u5305\u62ec\u5df2\u7981\u7528\u7684\u63d2\u4ef6<br>\u2022 <span class=\"code\">mu-plugins\/<\/span> \u2014 \u6700\u5e38\u88ab\u5ffd\u89c6\u7684\u90e8\u5206<br>\u2022 Drop-in \u6587\u4ef6\uff1a <span class=\"code\">advanced-cache.php<\/span>, <span class=\"code\">object-cache.php<\/span>, <span class=\"code\">db.php<\/span><\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u8981\u6c42 Agent \u67e5\u627e\uff1a <span class=\"code\">eval<\/span>, <span class=\"code\">base64_decode<\/span>, <span class=\"code\">gzinflate<\/span>, <span class=\"code\">shell_exec<\/span>, <span class=\"code\">assert<\/span>, <span class=\"code\">system<\/span>, <span class=\"code\">exec<\/span>, <span class=\"code\">passthru<\/span>, <span class=\"code\">preg_replace \/e<\/span>. \u3002\u6253\u5f00\u6bcf\u4e00\u4e2a\u547d\u4e2d\u7684\u6587\u4ef6\u8fdb\u884c\u4eba\u5de5\u786e\u8ba4\u3002.<\/span><\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>WP \u6838\u5fc3\u91cd\u7f6e\u4e0d\u4f1a\u89e6\u78b0 <span class=\"code\">wp-content<\/span>. \u3002\u8fd9\u91cc\u6700\u5bb9\u6613\u6b8b\u7559 Web Shell\u3001Drop-in \u548c\u6301\u4e45\u5316\u540e\u95e8\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c10\" onclick=\"toggleCheck('c10', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c10\">C.10<\/div>\n              <div class=\"check-title\">\u751f\u6210\u65b0\u7684\u5b89\u5168\u5bc6\u94a5\uff08Security Key\uff09\u548c\u76d0\uff08Salt\uff09<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c10', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c10\">\n            <div class=\"check-desc\">\u8bbf\u95ee\u94fe\u63a5\uff1a <span class=\"code\">https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/<\/span><br>\u5168\u90e8\u590d\u5236\uff0c\u7c98\u8d34\u5230 <span class=\"code\">wp-config.php<\/span> \u66ff\u6362\u65e7\u4ee3\u7801\u6bb5\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u6240\u6709\u5df2\u767b\u5f55\u7684\u7528\u6237\uff08\u5305\u62ec\u9ed1\u5ba2\uff09\u5c06\u7acb\u5373\u88ab\u5f3a\u5236\u6ce8\u9500\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c11\" onclick=\"toggleCheck('c11', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c11\">C.11<\/div>\n              <div class=\"check-title\">\u5220\u9664\u4e0d\u4f7f\u7528\u7684\u4e3b\u9898\u548c\u63d2\u4ef6<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c11', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c11\">\n            <div class=\"check-desc\">\u6e05\u7406 WordPress \u4e2d\u6240\u6709\u4e0d\u5fc5\u8981\u7684\u5185\u5bb9\u3002\u5305\u62ec\u5982\u679c\u4e0d\u4f7f\u7528\u7684\u9ed8\u8ba4\u4e3b\u9898\uff08Twenty*\uff09\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u4ee3\u7801\u8d8a\u5c11 = \u6f0f\u6d1e\u8d8a\u5c11\u3002\u6bcf\u4e2a\u4e0d\u4f7f\u7528\u7684\u63d2\u4ef6\u90fd\u662f\u4e00\u4e2a\u6f5c\u5728\u7684\u5f31\u70b9\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c12\" onclick=\"toggleCheck('c12', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c12\">C.12<\/div>\n              <div class=\"check-title\">\u91cd\u7f6e\u6587\u4ef6\u6743\u9650<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c12', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c12\">\n            <div class=\"check-desc\">\u5728\u6258\u7ba1\u9762\u677f\u4e2d\u901a\u8fc7 SSH \u6216\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b 3 \u6761\u547d\u4ee4\uff1a<br><span class=\"code\">find . -type f -exec chmod 644 {} \\;<\/span><br><span class=\"code\">find . -type d -exec chmod 755 {} \\;<\/span><br><span class=\"code\">chmod 600 wp-config.php<\/span><\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u9519\u8bef\u7684\u6587\u4ef6\u6743\u9650\uff08777\uff09\u662f\u5bfc\u81f4\u6076\u610f\u811a\u672c\u80fd\u591f\u81ea\u52a8\u5199\u5165\u670d\u52a1\u5668\u7684\u5e38\u89c1\u539f\u56e0\u3002\u5728\u91cd\u65b0\u4e0a\u7ebf\u7f51\u7ad9\u524d\u5c06\u5176\u91cd\u7f6e\u4e3a\u6807\u51c6\u6743\u9650\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- User & Access Control \u2014 TR\u01af\u1edaC khi unsuspend -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u7528\u6237\u4e0e\u8bbf\u95ee\u63a7\u5236<\/div>\n\n        <div class=\"check-card\" id=\"check-c13\" onclick=\"toggleCheck('c13', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c13\">C.13<\/div>\n              <div class=\"check-title\">\u5220\u9664\u6570\u636e\u5e93\u4e2d\u7684\u5f02\u5e38\u7528\u6237<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c13', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c13\">\n            <div class=\"check-desc\">\u8fdb\u5165 phpMyAdmin \u2192 \u8868 <span class=\"code\">wp_users<\/span>, \uff0c\u5220\u9664\u4e0d\u5c5e\u4e8e\u56e2\u961f\u7684\u5f02\u5e38\u7528\u6237\u3002\u4e0e Agent \u5728 B.05 \u4e2d\u62a5\u544a\u7684\u7528\u6237\u5217\u8868\u8fdb\u884c\u6bd4\u5bf9\u3002\u5728\u91cd\u65b0\u4e0a\u7ebf\u7f51\u7ad9\u524d\u6267\u884c\u6b64\u6b65\u9aa4\uff0c\u4ee5\u786e\u4fdd\u4e0d\u518d\u5b58\u5728\u5f02\u5e38\u7ba1\u7406\u5458\u3002.<\/div>\n            <div class=\"note danger\"><span class=\"note-icon\">!<\/span><span>\u5982\u679c\u5728\u53d6\u6d88\u6682\u505c\uff08unsuspend\uff09\u4e4b\u540e\u624d\u64cd\u4f5c\uff0c\u9ed1\u5ba2\u53ef\u80fd\u4f1a\u5728\u7f51\u7ad9\u5f00\u542f\u4e14\u5f02\u5e38\u7528\u6237\u4f9d\u7136\u5b58\u5728\u7684\u95f4\u9699\u7acb\u5373\u91cd\u65b0\u767b\u5f55\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c14\" onclick=\"toggleCheck('c14', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c14\">C.14<\/div>\n              <div class=\"check-title\">\u5173\u95ed\u81ea\u7531\u6ce8\u518c\uff08Open Registration\uff09<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c14', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c14\">\n            <div class=\"check-desc\">\u8fdb\u5165 <b>\u8bbe\u7f6e \u2192 \u5e38\u89c4<\/b>, \uff0c\u53d6\u6d88\u52fe\u9009 <b>\u201c\u4efb\u4f55\u4eba\u90fd\u53ef\u4ee5\u6ce8\u518c\u201d<\/b>. \u3002\u5982\u679c\u7f51\u7ad9\u4e0d\u9700\u8981\u6ce8\u518c\u529f\u80fd\uff0c\u8bf7\u5b8c\u5168\u5173\u95ed\u3002.<\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u81ea\u7531\u6ce8\u518c\u5141\u8bb8\u673a\u5668\u4eba\u81ea\u52a8\u521b\u5efa\u7528\u6237\uff0c\u8fd9\u662f\u8bb8\u591a\u6743\u9650\u63d0\u5347\u7c7b\u653b\u51fb\u7684\u7b2c\u4e00\u6b65\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c15\" onclick=\"toggleCheck('c15', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c15\">C.15<\/div>\n              <div class=\"check-title\">\u66f4\u6539\u6240\u6709\u7ba1\u7406\u5458\u8d26\u53f7\u7684\u5bc6\u7801<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c15', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c15\">\n            <div class=\"check-desc\">\u4e3a\u6240\u6709\u7ba1\u7406\u5458\u8d26\u53f7\u66f4\u6539\u5f3a\u5bc6\u7801\u3002\u4f7f\u7528\u5bc6\u7801\u7ba1\u7406\u5668\u751f\u6210 20 \u4f4d\u4ee5\u4e0a\u7684\u968f\u673a\u5bc6\u7801\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u7ed3\u5408 C.10 \u4e2d\u7684\u65b0\u5b89\u5168\u5bc6\u94a5\uff0c\u5305\u62ec\u9ed1\u5ba2\u5728\u5185\u7684\u6240\u6709\u65e7\u4f1a\u8bdd\u90fd\u5c06\u5931\u6548\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Kh\u00f4i ph\u1ee5c v\u00e0 c\u1ea5u h\u00ecnh -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u6062\u590d\u4e0e\u914d\u7f6e<\/div>\n\n        <div class=\"check-card\" id=\"check-c16\" onclick=\"toggleCheck('c16', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c16\">C.16<\/div>\n              <div class=\"check-title\">\u91cd\u65b0\u4e0a\u7ebf\u7f51\u7ad9\uff08Unsuspend\uff09<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c16', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c16\">\n            <div class=\"check-desc\">\u8fdb\u5165\u6258\u7ba1\u9762\u677f\uff0c\u53d6\u6d88\u5bf9\u57df\u540d\u7684\u6682\u505c\u3002\u7f51\u7ad9\u6062\u590d\u8fd0\u884c\u3002\u4ec5\u5728\u5220\u9664\u5f02\u5e38\u7528\u6237\uff08C.13\uff09\u548c\u66f4\u6539\u7ba1\u7406\u5458\u5bc6\u7801\uff08C.15\uff09\u4e4b\u540e\u624d\u6267\u884c\u6b64\u64cd\u4f5c\u3002.<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c17\" onclick=\"toggleCheck('c17', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c17\">C.17<\/div>\n              <div class=\"check-title\">\u4fdd\u5b58\u56fa\u5b9a\u94fe\u63a5 (Permalink)<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c17', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c17\">\n            <div class=\"check-desc\">\u8fdb\u5165 WP \u7ba1\u7406\u540e\u53f0\uff0c\u524d\u5f80 <b>\u8bbe\u7f6e &gt; \u56fa\u5b9a\u94fe\u63a5<\/b>, \u70b9\u51fb <b>\u4fdd\u5b58\u66f4\u6539<\/b>.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u91cd\u7f6e WordPress \u4f1a\u5bfc\u81f4\u6587\u4ef6\u4e22\u5931 <span class=\"code\">.htaccess<\/span>. \u3002\u4fdd\u5b58\u56fa\u5b9a\u94fe\u63a5\u4f1a\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6\u3002\u5b89\u5168\u63d2\u4ef6\u9700\u8981 <span class=\"code\">.htaccess<\/span> \u624d\u80fd\u6b63\u5e38\u8fd0\u884c\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c18\" onclick=\"toggleCheck('c18', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c18\">C.18<\/div>\n              <div class=\"check-title\">\u91cd\u65b0\u5b89\u88c5\u5fc5\u8981\u7684\u5b89\u5168\u63d2\u4ef6<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c18', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c18\">\n            <div class=\"check-desc\">\u5b89\u88c5\u6700\u65b0\u7248\u672c\u5e76\u5b8c\u6210\u5b8c\u6574\u914d\u7f6e\u3002\u4f18\u5148\u5b89\u88c5 DPS Shield\uff0c\u56e0\u4e3a\u5b83\u9700\u8981\u4e0a\u4e00\u6b65\u4e2d\u7684 <span class=\"code\">.htaccess<\/span> \u3002.<\/div>\n            <div class=\"tags\"><span class=\"tag\">DPS Shield Security<\/span><span class=\"tag\">UpdraftPlus<\/span><span class=\"tag\">LiteSpeed Cache<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c19\" onclick=\"toggleCheck('c19', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c19\">C.19<\/div>\n              <div class=\"check-title\">\u66f4\u65b0\u5176\u4f59\u7684\u4e3b\u9898\u548c\u63d2\u4ef6<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c19', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c19\">\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u66f4\u65b0\u65f6\u9700\u8c28\u614e\u3002\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7248\u672c\u51b2\u7a81\u5e76\u4f7f\u7f51\u7ad9\u62a5\u9519\u3002\u6bcf\u66f4\u65b0\u4e00\u4e2a\u63d2\u4ef6\u540e\u90fd\u8981\u4ed4\u7ec6\u6d4b\u8bd5\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c20\" onclick=\"toggleCheck('c20', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c20\">C.20<\/div>\n              <div class=\"check-title\">\u68c0\u67e5 Cron \u4efb\u52a1 \/ \u8ba1\u5212\u4efb\u52a1<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c20', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c20\">\n            <div class=\"check-desc\">\u68c0\u67e5 WP \u7ba1\u7406\u540e\u53f0 &gt; \u5de5\u5177 &gt; \u8ba1\u5212\u52a8\u4f5c\uff0c\u6216\u8fd0\u884c <span class=\"code\">wp cron event list<\/span> \u4ee5\u67e5\u627e\u5f02\u5e38\u4efb\u52a1\uff0c\u9632\u6b62\u6076\u610f\u4ee3\u7801\u81ea\u52a8\u91cd\u65b0\u6fc0\u6d3b\u3002.<\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u9ed1\u5ba2\u901a\u5e38\u4f1a\u8bbe\u7f6e WP-cron \u6216\u670d\u52a1\u5668 cron\uff0c\u4ee5\u4fbf\u5728 shell \u88ab\u5220\u9664\u540e\u91cd\u65b0\u4e0b\u8f7d\u3002\u8fd9\u662f\u6700\u5e38\u89c1\u7684\u6301\u4e45\u5316\u673a\u5236\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c21\" onclick=\"toggleCheck('c21', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c21\">C.21<\/div>\n              <div class=\"check-title\">\u68c0\u67e5\u540c\u7ea7\u5b50\u76ee\u5f55<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c21', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c21\">\n            <div class=\"check-desc\">\u68c0\u67e5\u7236\u76ee\u5f55\u4e0b\u662f\u5426\u6709\u5176\u4ed6\u7f51\u7ad9\u3002\u5982\u679c\u6709\uff0c\u8fd9\u4e9b\u7f51\u7ad9\u4e5f\u6709\u88ab\u611f\u67d3\u7684\u98ce\u9669\u3002.<\/div>\n            <div class=\"note danger\"><span class=\"note-icon\">!<\/span><span>\u540c\u7ea7\u76ee\u5f55\u6ca1\u6709 <span class=\"code\">open_basedir<\/span> \u4fdd\u62a4\u3002\u8be5\u7f51\u7ad9\u88ab\u9ed1\u4f1a\u7acb\u5373\u4f20\u67d3\u7ed9\u7236\u76ee\u5f55\u4e0b\u7684\u5176\u4ed6\u7f51\u7ad9\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- H\u1eadu ki\u1ec3m v\u00e0 b\u00e0n giao -->\n      <div class=\"check-group\">\n        <div class=\"check-group-label\">\u540e\u671f\u68c0\u67e5\u4e0e\u4ea4\u4ed8<\/div>\n\n        <div class=\"check-card\" id=\"check-c22\" onclick=\"toggleCheck('c22', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c22\">C.22<\/div>\n              <div class=\"check-title\">\u9a8c\u8bc1\/\u6d4b\u8bd5\u7f51\u7ad9\u6b63\u5e38\u8fd0\u884c<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c22', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c22\">\n            <div class=\"check-desc\">\u5728\u901a\u77e5\u5ba2\u6237\u4e4b\u524d\uff0c\u5148\u81ea\u884c\u5feb\u901f\u68c0\u67e5\uff1a<br>\u2022 \u9996\u9875\u52a0\u8f7d\u6b63\u5e38\uff0c\u4e0d\u518d\u51fa\u73b0 Chrome\/\u6d4f\u89c8\u5668\u7ea2\u5c4f\u8b66\u544a<br>\u2022 \u8bbf\u95ee\u90e8\u5206\u5185\u5bb9\u9875\u9762\uff0c\u65e0\u5f02\u5e38\u91cd\u5b9a\u5411<br>\u2022 \u53ef\u4ee5\u767b\u5f55 WP Admin<br>\u2022 \u4e3b\u8981\u529f\u80fd\uff08\u8868\u5355\u3001\u83dc\u5355\u3001\u641c\u7d22\uff09\u8fd0\u4f5c\u6b63\u5e38<br>\u2022 \u5728\u79fb\u52a8\u7aef\u8fdb\u884c\u68c0\u67e5<\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u5728\u672a\u81ea\u884c\u9a8c\u8bc1\u5b8c\u6210\u524d\u4e0d\u8981\u901a\u77e5\u5ba2\u6237\u3002\u5982\u679c\u9057\u6f0f\u67d0\u4e9b\u6b65\u9aa4\uff0c\u91cd\u7f6e WP \u6709\u65f6\u4f1a\u5bfc\u81f4\u5e03\u5c40\u6df7\u4e71\u6216\u56fa\u5b9a\u94fe\u63a5\u5931\u6548\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c23\" onclick=\"toggleCheck('c23', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c23\">C.23<\/div>\n              <div class=\"check-title\">\u786e\u8ba4 Google Search Console<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c23', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c23\">\n            <div class=\"check-desc\">\u68c0\u67e5 Google Search Console \u67e5\u770b\u7f51\u7ad9\u662f\u5426\u4ecd\u88ab\u6807\u8bb0\u4e3a\u5371\u9669\uff0c\u5904\u7406\u5b8c\u6bd5\u540e\u63d0\u4ea4\u7533\u8bc9\u8bf7\u6c42\u3002.<\/div>\n            <div class=\"note info\"><span class=\"note-icon\">i<\/span><span>\u5982\u679c\u7f51\u7ad9\u88ab\u9ed1\u5df2\u4e45\uff0c\u5373\u4f7f\u7ad9\u70b9\u5df2\u6e05\u7406\u5e72\u51c0\uff0cGoogle \u53ef\u80fd\u4ecd\u4f1a\u663e\u793a\u8b66\u544a\u3002\u63d0\u4ea4\u5ba1\u6838\u662f\u79fb\u9664\u8b66\u544a\u7684\u5fc5\u8981\u6b65\u9aa4\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"check-card\" id=\"check-c24\" onclick=\"toggleCheck('c24', event)\">\n          <div class=\"check-main\">\n            <div class=\"check-box\"><svg width=\"10\" height=\"8\" viewbox=\"0 0 10 8\" fill=\"none\"><path d=\"M1 4L3.5 6.5L9 1\" stroke=\"white\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/div>\n            <div class=\"check-body\">\n              <div class=\"check-step-num\" id=\"step-c24\">C.24<\/div>\n              <div class=\"check-title\">\u901a\u77e5\u5ba2\u6237\/\u5229\u76ca\u76f8\u5173\u8005<\/div>\n            <\/div>\n            <div class=\"check-expand\" onclick=\"toggleDetail('detail-c24', this, event)\"><svg width=\"12\" height=\"12\" viewbox=\"0 0 12 12\" fill=\"none\"><path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><\/div>\n          <\/div>\n          <div class=\"check-detail\" id=\"detail-c24\">\n            <div class=\"check-desc\">\u5411\u5ba2\u6237\u6216\u5229\u76ca\u76f8\u5173\u8005\u62a5\u544a\u4e8b\u6545\u60c5\u51b5\u3001\u5df2\u5904\u7406\u7684\u6b65\u9aa4\u4ee5\u53ca\u540e\u7eed\u9700\u8981\u5173\u6ce8\u7684\u4e8b\u9879\u3002.<\/div>\n            <div class=\"note warn\"><span class=\"note-icon\">!<\/span><span>\u5982\u679c\u662f\u5ba2\u6237\u7f51\u7ad9\uff0c\u4e0d\u8981\u53ea\u901a\u77e5\u5185\u90e8\u56e2\u961f\u3002\u9700\u8981\u5411\u8d1f\u8d23\u4eba\u66f4\u65b0\u5904\u7406\u7ed3\u679c\u548c\u5b89\u5168\u72b6\u6001\u3002.<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- RIGHT PANEL -->\n  <div class=\"right-panel\">\n    <div class=\"panel-title\">\u5904\u7406\u8fdb\u5ea6<\/div>\n\n    <div class=\"done-banner\" id=\"done-banner\">\n      <div class=\"done-banner-title\">\u5b8c\u6210\uff01<\/div>\n      <div class=\"done-banner-sub\">\u5728\u5173\u95ed\u5de5\u5355\u524d\u8bf7\u9ad8\u7ea7\u4eba\u5458\u68c0\u67e5\u3002.<\/div>\n    <\/div>\n\n    <div class=\"overall-progress\">\n      <div class=\"overall-nums\">\n        <span class=\"overall-count\" id=\"done-count\">0<\/span>\n        <span class=\"overall-total\">\/ 29 \u9879<\/span>\n      <\/div>\n      <div class=\"progress-track\">\n        <div class=\"progress-fill\" id=\"overall-fill\" style=\"width:0%\"><\/div>\n      <\/div>\n      <div class=\"progress-label\" id=\"progress-label\">\u5c1a\u672a\u5f00\u59cb<\/div>\n    <\/div>\n\n    <div class=\"phase-prog-list\">\n      <div class=\"phase-prog\">\n        <div class=\"phase-prog-header\">\n          <span class=\"phase-prog-name\"><span class=\"phase-badge badge-a\">A<\/span> \u786e\u8ba4<\/span>\n          <span class=\"phase-prog-count\" id=\"count-a\">0\/2<\/span>\n        <\/div>\n        <div class=\"phase-track\"><div class=\"phase-fill-a\" id=\"fill-a\" style=\"width:0%\"><\/div><\/div>\n      <\/div>\n      <div class=\"phase-prog\">\n        <div class=\"phase-prog-header\">\n          <span class=\"phase-prog-name\"><span class=\"phase-badge badge-b\">B<\/span> \u8bca\u65ad<\/span>\n          <span class=\"phase-prog-count\" id=\"count-b\">0\/3<\/span>\n        <\/div>\n        <div class=\"phase-track\"><div class=\"phase-fill-b\" id=\"fill-b\" style=\"width:0%\"><\/div><\/div>\n      <\/div>\n      <div class=\"phase-prog\">\n        <div class=\"phase-prog-header\">\n          <span class=\"phase-prog-name\"><span class=\"phase-badge badge-c\">C<\/span> \u5904\u7406<\/span>\n          <span class=\"phase-prog-count\" id=\"count-c\">0\/24<\/span>\n        <\/div>\n        <div class=\"phase-track\"><div class=\"phase-fill-c\" id=\"fill-c\" style=\"width:0%\"><\/div><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"panel-divider\"><\/div>\n\n    <div class=\"panel-title\">\u6700\u8fd1\u6d3b\u52a8<\/div>\n    <div class=\"log-list\" id=\"log-list\">\n      <div class=\"log-empty\" id=\"log-empty\">\u6682\u65e0\u6d3b\u52a8\u3002.<\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n<\/div>\n<script>\n  const state = {};\n  const log = [];\n\n  const labels = {\n    a1: 'Web l\u01b0u tr\u1eef t\u1ea1i DPS',\n    a2: 'Web thu\u1ed9c d\u1ef1 \u00e1n DPS',\n    b1: 'Thu th\u1eadp artifact + AI scan',\n    b2: 'Ki\u1ec3m tra DPS Shield',\n    b3: 'Ki\u1ec3m tra WAF server',\n    c1: 'Th\u00f4ng b\u00e1o team',\n    c2: 'Backup source + DB',\n    c3: 'Kho\u00e1 website',\n    c4: 'Restart PHP',\n    c5: '\u0110\u1ed5i DB password',\n    c6: '\u0110\u1ed5i FTP\/SSH password',\n    c7: 'Ki\u1ec3m tra wp-config',\n    c8: 'Reset m\u00e3 ngu\u1ed3n WP',\n    c9: 'Scan wp-content',\n    c10: 'Security key m\u1edbi',\n    c11: 'Xo\u00e1 theme\/plugin th\u1eeba',\n    c12: 'Reset file permissions',\n    c13: 'Xo\u00e1 user l\u1ea1',\n    c14: 'T\u1eaft \u0111\u0103ng k\u00fd t\u1ef1 do',\n    c15: '\u0110\u1ed5i m\u1eadt kh\u1ea9u admin',\n    c16: 'M\u1edf l\u1ea1i website',\n    c17: 'Save Permalink',\n    c18: 'C\u00e0i plugin b\u1ea3o m\u1eadt',\n    c19: 'Update theme\/plugin',\n    c20: 'Ki\u1ec3m tra cron job',\n    c21: 'Ki\u1ec3m tra subdirectory',\n    c22: 'Verify\/test web',\n    c23: 'X\u00e1c nh\u1eadn GSC',\n    c24: 'B\u00e1o client\/stakeholder'\n  };\n\n  function countPhase(p) {\n    return Object.keys(state).filter(k => k.startsWith(p) && state[k]).length;\n  }\n\n  function totalPhase(p) {\n    return Object.keys(labels).filter(k => k.startsWith(p)).length;\n  }\n\n  function updateProgress() {\n    const total = Object.keys(labels).length;\n    const done = Object.values(state).filter(Boolean).length;\n\n    document.getElementById('done-count').textContent = done;\n    document.getElementById('overall-fill').style.width = (done \/ total * 100) + '%';\n\n    const pct = Math.round(done \/ total * 100);\n    document.getElementById('progress-label').textContent =\n      done === 0 ? 'Ch\u01b0a b\u1eaft \u0111\u1ea7u' :\n      done === total ? 'Ho\u00e0n th\u00e0nh!' :\n      pct + '% ho\u00e0n th\u00e0nh';\n\n    ['a','b','c'].forEach(p => {\n      const d = countPhase(p);\n      const t = totalPhase(p);\n      document.getElementById('count-' + p).textContent = d + '\/' + t;\n      document.getElementById('fill-' + p).style.width = (d \/ t * 100) + '%';\n      document.getElementById('prog-' + p + '-side').textContent = d + '\/' + t;\n    });\n\n    const banner = document.getElementById('done-banner');\n    if (done === total) {\n      banner.classList.add('show');\n    } else {\n      banner.classList.remove('show');\n    }\n  }\n\n  function addLog(id, isDone) {\n    const now = new Date();\n    const time = now.getHours().toString().padStart(2,'0') + ':' + now.getMinutes().toString().padStart(2,'0');\n    log.unshift({ id, isDone, time });\n    if (log.length > 8) log.pop();\n\n    const container = document.getElementById('log-list');\n    const empty = document.getElementById('log-empty');\n    if (empty) empty.remove();\n\n    container.innerHTML = log.map(l => `\n      <div class=\"log-item\">\n        <div class=\"log-dot ${l.isDone ? 'done' : 'undo'}\"><\/div>\n        <span style=\"flex:1\">${l.isDone ? '' : '[Hu\u1ef7] '}${labels[l.id]}<\/span>\n        <span class=\"log-time\">${l.time}<\/span>\n      <\/div>\n    `).join('');\n  }\n\n  function toggleCheck(id, event) {\n    const expand = event.target.closest('.check-expand');\n    if (expand) return;\n    const copyBtn = event.target.closest('.btn-copy');\n    if (copyBtn) return;\n\n    const card = document.getElementById('check-' + id);\n    state[id] = !state[id];\n\n    if (state[id]) {\n      card.classList.add('done');\n    } else {\n      card.classList.remove('done');\n    }\n\n    const detail = document.getElementById('detail-' + id);\n    const detailBtn = card.querySelector('.check-expand');\n    if (detail) detail.classList.add('open');\n    if (detailBtn) detailBtn.classList.add('open');\n\n    addLog(id, state[id]);\n    updateProgress();\n  }\n\n  function toggleDetail(detailId, btn, event) {\n    event.stopPropagation();\n    const detail = document.getElementById(detailId);\n    const isOpen = detail.classList.contains('open');\n    detail.classList.toggle('open', !isOpen);\n    btn.classList.toggle('open', !isOpen);\n  }\n\n  function copyPrompt(promptId, btn) {\n    var e = window.event;\n    if (e && e.stopPropagation) e.stopPropagation();\n    const text = document.getElementById(promptId).textContent;\n    navigator.clipboard.writeText(text).then(() => {\n      btn.textContent = '\u0110\u00e3 copy \u2713';\n      btn.classList.add('copied');\n      setTimeout(() => {\n        btn.textContent = 'Copy prompt';\n        btn.classList.remove('copied');\n      }, 2000);\n    });\n  }\n\n  function resetAll() {\n    if (!confirm('Reset to\u00e0n b\u1ed9 checklist?')) return;\n    Object.keys(labels).forEach(id => {\n      state[id] = false;\n      const card = document.getElementById('check-' + id);\n      if (card) card.classList.remove('done');\n    });\n    log.length = 0;\n    document.getElementById('log-list').innerHTML = '<div class=\"log-empty\">Ch\u01b0a c\u00f3 ho\u1ea1t \u0111\u1ed9ng n\u00e0o.<\/div>';\n    document.getElementById('done-banner').classList.remove('show');\n    updateProgress();\n  }\n\n  function bindIsolatedRootInteractions() {\n    var root = document.getElementById('dps-isolated-root');\n    if (!root) return;\n\n    root.addEventListener('click', function (event) {\n      var scrollTarget = event.target.closest('[data-scroll]');\n      if (scrollTarget) {\n        event.preventDefault();\n        var target = document.querySelector(scrollTarget.getAttribute('data-scroll'));\n        if (target) {\n          target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n        }\n        return;\n      }\n\n      var openTarget = event.target.closest('[data-open]');\n      if (openTarget) {\n        event.preventDefault();\n        window.open(openTarget.getAttribute('data-open'), '_blank', 'noopener');\n      }\n    });\n\n    root.addEventListener('keydown', function (event) {\n      if (event.key === 'Enter') {\n        var enterTarget = event.target.closest('[role=\"button\"]');\n        if (enterTarget) {\n          event.preventDefault();\n          enterTarget.click();\n        }\n        return;\n      }\n\n      if (event.key === ' ') {\n        var spaceTarget = event.target.closest('[role=\"button\"]');\n        if (spaceTarget) {\n          event.preventDefault();\n          spaceTarget.click();\n        }\n      }\n    });\n  }\n\n  window.toggleCheck = toggleCheck;\n  window.toggleDetail = toggleDetail;\n  window.copyPrompt = copyPrompt;\n  window.resetAll = resetAll;\n\n  bindIsolatedRootInteractions();\n  updateProgress();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>SEO \/ WordPress Security Tool C\u00e1ch qu\u00e9t m\u00e3 \u0111\u1ed9c WordPress v\u00e0 x\u1eed l\u00fd malware tri\u1ec7t \u0111\u1ec3 b\u1eb1ng AI Agent Khi m\u1ed9t website WordPress b\u1ecb nghi nhi\u1ec5m m\u00e3 \u0111\u1ed9c, v\u1ea5n \u0111\u1ec1 kh\u00f4ng ch\u1ec9 l\u00e0 x\u00f3a v\u00e0i file l\u1ea1. Malware th\u01b0\u1eddng n\u1eb1m r\u1ea3i r\u00e1c \u1edf source code, database, log m\u00e1y ch\u1ee7, cron job, user l\u1ea1 v\u00e0 c\u1ea3 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-38552","page","type-page","status-publish","hentry"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/pages\/38552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/comments?post=38552"}],"version-history":[{"count":8,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/pages\/38552\/revisions"}],"predecessor-version":[{"id":38563,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/pages\/38552\/revisions\/38563"}],"wp:attachment":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media?parent=38552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}