WordPress Security Plugin · v1.5.2

Real-time
WordPress File
Integrity & Web Shell Scanner

ระบบตรวจสอบไฟล์ในเว็บไซต์ WordPress แบบเรียลไทม์ — สแกนไฟล์, ตรวจจับ Web Shell, แจ้งเตือนผ่าน Email + Telegram + LINE, บล็อก IP อัตโนมัติเมื่อถูกโจมตี

Requires WP 6.0+ PHP 7.4+ GPL-2.0-or-later GPL Plugin
andudo-security.php
$ wp andudo scan --realtime Initializing baseline cache... Preloading 12,847 files... Baseline ready · 12,847 files indexed Running pattern scan... 🚨 CRITICAL · Web Shell Detected wp-content/uploads/2024/06/malware.php ⚠ WARNING · modified_file wp-config.php ✓ Scan complete · 2 events in 4.2s Dispatching alerts to 3 channels... Email · Telegram · LINE
27
PHP Malware Signatures
รูปแบบ
14
.htaccess Abuse Patterns
รูปแบบ
3
Notification Channels
ช่องทาง
8
PHP Classes
classes
8
WP-CLI Commands
คำสั่ง
9
AJAX + REST Endpoints
endpoints
01 · OVERVIEW

ระบบตรวจสอบไฟล์ WordPress
แบบเรียลไทม์ ที่ตอบสนองทันที

Andudo Security คือปลั๊กอินความปลอดภัยสำหรับ WordPress ที่ออกแบบมาเพื่อตรวจสอบการเปลี่ยนแปลงของไฟล์ในเว็บไซต์แบบเรียลไทม์ โดยใช้เทคนิค File Integrity Monitoring (FIM) ผสานกับระบบสแกนมัลแวร์ PHP และการตรวจจับการละเมิด .htaccess เมื่อพบเหตุการณ์ผิดปกติ ระบบจะแจ้งเตือนผ่านหลายช่องทางพร้อมกัน ทั้ง Email, Telegram และ LINE Messaging API เพื่อให้ผู้ดูแลระบบสามารถตอบสนองต่อเหตุการณ์รุนแรงได้อย่างรวดเร็ว

ปลั๊กอินทำงานบนสถาปัตยกรรมที่ออกแบบมาเพื่อประสิทธิภาพและความปลอดภัย ตั้งแต่การจัดการฐานข้อมูล การสแกนไฟล์ การตรวจจับภัยคุกคาม ไปจนถึงการแจ้งเตือนหลายช่องทาง ทำให้สามารถบำรุงรักษาและขยายความสามารถได้ง่าย

Baseline + Diff

สร้าง hash baseline ของไฟล์ทั้งหมดในรอบแรก จากนั้นเปรียบเทียบ SHA-256 ในรอบถัดไปเพื่อตรวจจับการเปลี่ยนแปลง

Signature Scanning

สแกนเนื้อหาไฟล์ PHP และ .htaccess ด้วยลายเซ็นที่ออกแบบมาเฉพาะสำหรับจับ web shell และการละเมิด config

Multi-Channel Alerts

ส่งการแจ้งเตือนพร้อมกันผ่าน Email, Telegram และ LINE Messaging API เพื่อให้ทีมตอบสนองได้เร็วที่สุด

Severity Triage

จัดประเภทเหตุการณ์เป็น info / warning / critical เพื่อให้ทีมโฟกัสที่เหตุการณ์รุนแรงก่อนเสมอ

02 · CORE FEATURES

8 ความสามารถหลักที่ครอบคลุม
ทุกมุม ของ WordPress Security

แต่ละฟีเจอร์ถูกออกแบบมาให้ทำงานร่วมกันแบบ pipeline เมื่อสแกนไฟล์พบเหตุการณ์ผิดปกติ ระบบจะสร้าง event พร้อม severity ที่เหมาะสม จัดเก็บใน database แล้ว dispatch ไปยัง notification channels ที่เปิดใช้งาน ทุกขั้นตอนสามารถปรับแต่งได้ผ่าน settings ใน admin

INFO

File Integrity Monitoring

ตรวจสอบความสมบูรณ์ของไฟล์

ระบบสร้าง baseline ของไฟล์ทั้งหมดในรอบแรก จากนั้นตรวจจับการเปลี่ยนแปลงของเนื้อหาโดยเปรียบเทียบ hash อัตโนมัติ แจ้งเตือนเมื่อพบไฟล์ใหม่ ถูกแก้ไข หรือถูกลบ

Implementation

ใช้การเปรียบเทียบ hash และ metadata ของไฟล์เทียบกับ baseline ทำงานแบบ batch เพื่อประสิทธิภาพ

  • ตรวจหาไฟล์ใหม่ แก้ไข และลบ
  • สร้าง baseline cache อัตโนมัติ
  • รองรับการสแกนตามโฟลเดอร์ที่กำหนด
CRITICAL

Web Shell Detection

ตรวจจับ Web Shell

สแกนเนื้อหาไฟล์ PHP และไฟล์สคริปต์อื่น ๆ เพื่อค้นหาโค้ดอันตรายที่อาจใช้เป็น backdoor หรือ web shell โดยใช้ฐานข้อมูลลายเซ็นที่ครอบคลุม

Implementation

วิเคราะห์เนื้อหาไฟล์ด้วยรูปแบบที่ครอบคลุม ทั้งการเข้ารหัสและการซ่อนโค้ด จำกัดขนาดไฟล์เพื่อความปลอดภัย

  • สแกนไฟล์ PHP ทั้งหมด
  • ตรวจจับ eval, base64, gzinflate
  • ตรวจสอบไฟล์ในโฟลเดอร์อัปโหลด
CRITICAL

.htaccess Abuse Detection

ตรวจจับการละเมิด .htaccess

วิเคราะห์ไฟล์ .htaccess เพื่อค้นหาการตั้งค่าที่เป็นอันตราย เช่น การบังคับให้รัน PHP ในไฟล์ที่ไม่ควร หรือเปลี่ยนเส้นทางผู้ใช้ไปยังเว็บไซต์อันตราย

Implementation

ตรวจสอบรูปแบบการตั้งค่าที่รู้จัก และแทนที่ hostname จริงเพื่อลดการแจ้งเตือนเท็จ

  • ตรวจสอบ auto_prepend_file
  • จับ SetHandler ผิดปกติ
  • ตรวจจับ redirect ไปภายนอก
CRITICAL

PHP in Uploads Detection

ตรวจจับ PHP ในโฟลเดอร์อัปโหลด

แจ้งเตือนทันทีเมื่อพบไฟล์ PHP ในโฟลเดอร์ที่ควรมีเฉพาะสื่อ เช่น wp-content/uploads ซึ่งเป็นสัญญาณของการอัปโหลด web shell

Implementation

ตรวจสอบนามสกุลไฟล์และชื่อไฟล์ที่มี double extension ในเส้นทางที่กำหนด

  • แจ้งเตือนไฟล์ PHP ใน uploads
  • ตรวจจับ double extension
  • บล็อกไฟล์ที่น่าสงสัย
WARNING

Permission Auditing

ตรวจสอบสิทธิ์ไฟล์

ตรวจสอบ permission ของไฟล์เพื่อหาไฟล์ที่ตั้งค่าให้ใครก็ได้เขียน (world-writable) ซึ่งอาจถูกแก้ไขโดยผู้ไม่หวังดี

Implementation

อ่าน permission ของแต่ละไฟล์และแจ้งเตือนหากพบความเสี่ยง

  • ตรวจจับไฟล์ world-writable
  • แสดงข้อมูล owner
  • ทำงานบน Linux/Windows
INFO

Multi-Channel Alerts

แจ้งเตือนหลายช่องทาง

เมื่อพบเหตุการณ์ผิดปกติ ระบบจะส่งการแจ้งเตือนไปยังหลายช่องทางพร้อมกัน ได้แก่ Email, Telegram และ LINE เพื่อให้ทีมตอบสนองได้ทันท่วงที

Implementation

รวบรวมเหตุการณ์ทั้งหมดแล้วกระจายไปยังช่องทางที่เปิดใช้งาน พร้อมระบบป้องกันการส่งซ้ำ

  • ส่ง Email ไปยัง admin
  • แจ้งเตือนผ่าน Telegram Bot
  • รองรับ LINE Messaging API
CRITICAL

Auto IP Blocking

บล็อก IP อัตโนมัติ

ตรวจสอบการโจมตีแบบ brute-force หรือการร้องขอที่ผิดปกติจาก IP ภายนอก แล้วบล็อก IP นั้นใน .htaccess โดยอัตโนมัติ

Implementation

อ่าน log การเข้าถึงและเพิ่มกฎ Deny ให้ IP ที่เกิน threshold ที่กำหนด พร้อมแจ้งเตือนผู้ดูแล

  • ตรวจจับ IP ที่โจมตี
  • เพิ่มกฎ Deny ใน .htaccess
  • ปลดบล็อกผ่าน REST API
INFO

WP-CLI Commands

คำสั่ง WP-CLI

รองรับการจัดการปลั๊กอินผ่าน command line ด้วย WP-CLI เช่น เริ่มสแกน, ดูสถานะ, ล้าง baseline, ตั้งค่า cron

Implementation

มีคำสั่งย่อยภายใต้ `wp andudo` ครอบคลุมทุกฟังก์ชันหลัก

  • wp andudo scan
  • wp andudo status
  • wp andudo install-cron
03 · DETECTION ENGINE

ระบบตรวจจับภัยคุกคาม
ครอบคลุม PHP malware และ .htaccess abuse

ระบบ detection engine ใช้รูปแบบที่ครอบคลุมจากประสบการณ์จริง ทั้งการตรวจจับ web shell ในไฟล์ PHP และการละเมิด .htaccess โดยเน้นความสมดุลระหว่าง true positive และ false positive

01 8 รูปแบบ
Remote Code Execution

ตรวจจับฟังก์ชันอันตรายที่ใช้รันโค้ด เช่น eval, system, exec, shell_exec, passthru

02 7 รูปแบบ
Obfuscation & Encoding

จับ payload ที่ถูกซ่อนด้วยการเข้ารหัส base64, hex, octal, gzinflate และการสร้างสตริงจาก chr()

03 6 รูปแบบ
Backdoor Patterns

ตรวจจับการฝัง backdoor ผ่านการอัปโหลดไฟล์, dynamic include และ SQL injection

04 6 รูปแบบ
WordPress-Specific Threats

ตรวจสอบพฤติกรรมที่ใช้ประโยชน์จาก WordPress เช่น wp_mail spam, current_user_can bypass

01 4 รูปแบบ
PHP Configuration Abuse

ตรวจจับการแก้ไข php_value เช่น auto_prepend_file, disable_functions

02 5 รูปแบบ
Redirect & Cloaking

จับ RewriteRule ที่เปลี่ยนเส้นทางไปนอกเว็บไซต์ หรือซ่อนจาก User-Agent

03 3 รูปแบบ
Handler Manipulation

ตรวจพบ SetHandler/AddHandler ที่บังคับให้ไฟล์อื่นรันเป็น PHP

04 2 รูปแบบ
Security Header Removal

ตรวจจับการลบ header ความปลอดภัย เช่น X-Frame-Options, CSP

Event TypeSeverityDescription
new_file info ไฟล์ใหม่ถูกสร้างในระบบ
modified_file warning ไฟล์ถูกแก้ไขเนื้อหา
deleted_file warning ไฟล์ถูกลบจากระบบ
permission_warning warning ไฟล์มี permission world-writable
unreadable_file warning ไม่สามารถอ่านไฟล์ได้
scan_incomplete warning การสแกนไม่สมบูรณ์
php_in_uploads critical พบ PHP ใน uploads/
double_extension critical ไฟล์ double extension (เช่น .php.jpg)
suspicious_pattern_* critical พบลายเซ็นมัลแวร์ (27 รูปแบบ)
htaccess_* critical พบการละเมิด .htaccess (14 รูปแบบ)

ขอบเขตการตรวจจับ

ระบบสแกนไฟล์ที่มีนามสกุล PHP และไฟล์สคริปต์อื่น ๆ จำกัดขนาดเพื่อความปลอดภัย ตรวจสอบเฉพาะไฟล์ที่มีการเปลี่ยนแปลงเพื่อประสิทธิภาพสูงสุด

04 · DATABASE SCHEMA

3 ตารางฐานข้อมูล
ออกแบบมาเพื่อ performance และ audit

schema ถูกสร้างผ่าน dbDelta() ของ WordPress แต่ละตารางมี indexes ที่เหมาะกับ query patterns ของ admin UI เช่นการค้นหาไฟล์และการกรอง events

Table 01
wp_andudo_security_files
Files Baseline — บันทึก baseline ของไฟล์ทั้งหมด รวมถึง path, hash, ขนาด, permission และสถานะ

ฟิลด์สำคัญ: file_path, relative_path, file_hash, file_size, file_mtime, file_perms, status

Table 02
wp_andudo_security_events
Security Events — เก็บเหตุการณ์ความปลอดภัยทุกครั้งที่ตรวจพบ พร้อมระดับความรุนแรงและสถานะการแจ้งเตือน

ฟิลด์สำคัญ: event_type, file_path, severity, is_notified, is_resolved, detected_at

Table 03
wp_andudo_security_scans
Scan History — บันทึกประวัติการสแกนพร้อมสถิติ เช่น จำนวนไฟล์ที่สแกน, พบใหม่, แก้ไข, ลบ, น่าสงสัย

ฟิลด์สำคัญ: scan_type, started_at, finished_at, files_scanned, files_added, files_modified, files_deleted, files_suspicious

05 · NOTIFICATION CHANNELS

ระบบถูกออกแบบ ให้แจ้งเตือน 3 ช่องทาง
Email · Telegram · LINE

ระบบรวบรวมเหตุการณ์ที่ยังไม่แจ้งเตือนและกระจายไปยังทุกช่องทางที่เปิดใช้งานโดยอัตโนมัติ พร้อมระบบป้องกันการส่งซ้ำและ rate limiting

Email

ส่งอีเมลแจ้งเตือนไปยัง admin_email ของ WordPress โดยจัดกลุ่มตามระดับความรุนแรง พร้อมลิงก์ไปยังหน้าเหตุการณ์

Key Features
  • ส่งไปที่ admin_email
  • หัวข้อและเนื้อหาชัดเจน
  • รองรับภาษาไทย

Telegram Bot

ส่งข้อความผ่าน Telegram Bot API ในรูปแบบ Markdown จัดกลุ่มตาม severity

Key Features
  • ใช้ Bot Token และ Chat ID
  • ส่งข้อความกลุ่ม/ส่วนตัว
  • มีระบบ rate limit และคิวสำรอง

LINE Messaging

ส่งข้อความผ่าน LINE Messaging API ไปยังผู้ใช้หรือกลุ่ม เหมาะสำหรับทีมในเอเชีย

Key Features
  • รองรับ LINE Bot
  • ตั้งค่าผ่าน wp-config.php เพื่อความปลอดภัย
06 · PERFORMANCE

สแกนเพจ และเว็บไซต์ใหญ่ได้ อย่างราบรื่น

เทคนิคการ optimize หลายระดับถูกฝังอยู่ในสถาปัตยกรรม ตั้งแต่การจัดการ query, memory guard ไปจนถึงการประมวลผลแบบ batch

ลด query ฐานข้อมูล

Baseline Cache

โหลด baseline อย่างมีประสิทธิภาพ

ดึงข้อมูล baseline ทั้งหมดในครั้งเดียวเพื่อลดการ query ฐานข้อมูลระหว่างสแกน

ประหยัดทรัพยากร CPU

Fast Path

ข้ามการ hash เมื่อไฟล์ไม่เปลี่ยน

ตรวจสอบขนาดและเวลาแก้ไขก่อนคำนวณ hash เพื่อประหยัด CPU ในไฟล์ที่ไม่เปลี่ยนแปลง

รวมคำสั่งเป็น batch

Batch Updates

อัปเดตข้อมูลเป็นกลุ่ม

รวบรวมคำสั่งอัปเดตฐานข้อมูลแล้วส่งพร้อมกัน ลดจำนวน query ลงอย่างมาก

ป้องกัน OOM

Memory Guard

หยุดสแกนก่อนหน่วยความจำเต็ม

ตรวจสอบการใช้ memory อย่างสม่ำเสมอและหยุดสแกนอย่างปลอดภัยหากใกล้ถึงขีดจำกัด

บันทึกเป็นกลุ่ม

Event Batching

บันทึกเหตุการณ์เป็นชุด

รวม events ที่ตรวจพบแล้วบันทึกลงฐานข้อมูลครั้งละหลายรายการ ลดภาระ I/O

แสดงผลแบบ live

Progress Reporting

รายงานความคืบหน้าแบบ real-time

อัปเดตสถานะการสแกนเป็นระยะ ทำให้ผู้ดูแลระบบเห็นความคืบหน้าผ่าน AJAX ได้ทันที

07 · ADMIN INTERFACE

Admin UI + REST + AJAX
5 หน้า admin · 2 REST · 7 AJAX

จัดการทุกฟังก์ชันผ่านหน้า admin ที่มี inline CSS/JS รองรับ AJAX และ REST API สำหรับ integration

Admin Pages (capability: manage_options)

BADGE ?page=andudo-security

แดชบอร์ด (Dashboard)

หน้าหลักแสดงภาพรวม: สถานะ baseline, สถิติไฟล์, ปุ่ม scan now, และ recent events ล่าสุด พร้อม first-scan notice สำหรับการติดตั้งใหม่

PAGE ?page=andudo-security-files

รายการไฟล์ (Files)

รายการไฟล์ baseline ทั้งหมดในระบบ พร้อม search ตาม path และ filter ตาม status (baseline/missing) แสดง hash, size, mtime, perms, owner ของแต่ละไฟล์ — paginated 100/หน้า

BADGE ?page=andudo-security-events

เหตุการณ์ (Events)

ประวัติ events ทั้งหมดที่ตรวจพบ พร้อม filter ตาม severity และ unresolved status แต่ละ row มีปุ่ม resolve และ delete file (พร้อม audit log) — paginated 50/หน้า

PAGE ?page=andudo-security-scans

ประวัติการสแกน (Scan History)

ตารางประวัติการสแกน 50 ครั้งล่าสุด พร้อมสถิติไฟล์ที่สแกน เพิ่ม แก้ไข ลบ และน่าสงสัย รวมถึงสถานะ running/completed และ error message ถ้ามี

PAGE ?page=andudo-security-settings

ตั้งค่า (Settings)

หน้า settings ครบครั้น: scan interval, exclude folders, scan mode, dotfiles, extra paths, detection toggles, notification channels, Telegram/LINE creds, test notify, clear baseline และคู่มือติดตั้ง server cron

AJAX Endpoints

ActionPurpose
wp_ajax_andudo_manual_scan เริ่มสแกนแบบ background
wp_ajax_andudo_scan_status Poll ความคืบหน้าสแกน
wp_ajax_andudo_resolve_event Mark event ว่า resolved
wp_ajax_andudo_delete_file ลบไฟล์จากดิสก์
wp_ajax_andudo_dismiss_dashboard_alerts Clear dashboard alerts
wp_ajax_andudo_test_notification ทดสอบส่งแจ้งเตือน
wp_ajax_andudo_clear_baseline ล้าง baseline

REST API Endpoints (andudo/v1)

POST /wp-json/andudo/v1/block

Block IP

รับ parameter ip ใน body แล้วเรียก Andudo_Security_AutoBlock::block_ip() เพื่อ append Deny from <ip> ลง .htaccess

POST /wp-json/andudo/v1/unblock

Unblock IP

รับ parameter ip ใน body แล้วเรียก Andudo_Security_AutoBlock::unblock_ip() เพื่อลบบรรทัด Deny from <ip> ออกจาก .htaccess

08 · CRON ORCHESTRATION

3 cron hooks + 7 scan intervals
ครอบคลุมทั้ง WP-Cron และ Server Cron

จัดการรอบการสแกนด้วย WP-Cron และรองรับ server cron ผ่าน WP-CLI

Scheduled Hooks

configurable andudo_security_cron_scan

สแกนไฟล์ทั้งหมดใน WordPress + ส่งการแจ้งเตือน รอบหลักของ plugin

hourly andudo_security_flush_digest

ตรวจ digest queue ของ Telegram และ LINE แล้วส่ง events ที่ค้างไว้เมื่อ rate limit ครบแล้ว

every_minute andudo_security_auto_block

อ่าน nginx proxy error log แล้ว block IP ที่ trigger rate limit เกิน 5 ครั้งใน 60 วินาที

Custom Recurrence Intervals

andudo_every_30_min
30m
ทุก 30 นาที
andudo_every_6_hours
6h
ทุก 6 ชั่วโมง
andudo_every_12_hours
12h
ทุก 12 ชั่วโมง
every_minute
1m
Every Minute

Scan Interval Options

ValueLabel
realtime Realtime
every_30m Every 30 min
hourly Hourly
every_6h Every 6 hours
every_12h Every 12 hours
daily Daily
admin_hook Admin Hook
09 · ARCHITECTURE

ออกแบบ บนสถาปัตยกรรมแยกส่วน
8 modules ที่ทำงานร่วมกัน

โค้ดทั้งหมดอยู่ในไฟล์เดียวโดยใช้ namespace prefix เพื่อหลีกเลี่ยงความขัดแย้ง และแยกหน้าที่อย่างชัดเจน

Data Flow
Trigger
Cron / Manual
Scanner
Walk + Hash
Detector
Patterns
DB
Events · Scans
Notifier
Email · TG · LINE
Database Layer
จัดการข้อมูล

รับผิดชอบการสร้างตาราง, การอ่าน/เขียนข้อมูลไฟล์ baseline, เหตุการณ์ และประวัติการสแกนทั้งหมด

Key Responsibilities
  • สร้างตารางฐานข้อมูล
  • บันทึกและอัปเดตไฟล์ baseline
  • จัดการ events และ scans
  • ดึงสถิติสำหรับ dashboard
Scan Engine
สแกนไฟล์

เดินสำรวจไฟล์ใน WordPress และโฟลเดอร์ที่กำหนด เปรียบเทียบกับ baseline เพื่อหาการเปลี่ยนแปลง

Key Responsibilities
  • สำรวจ directory tree
  • เปรียบเทียบ hash และ metadata
  • จัดการ memory และ batch processing
Threat Detection
ตรวจจับภัยคุกคาม

วิเคราะห์เนื้อหาไฟล์ PHP และ .htaccess เพื่อหาลายเซ็นของ malware และการตั้งค่าที่เป็นอันตราย

Key Responsibilities
  • สแกนเนื้อหา PHP ด้วยรูปแบบที่กำหนด
  • ตรวจสอบ .htaccess abuse
  • ตรวจจับไฟล์อันตรายใน uploads
Notification Dispatcher
ส่งการแจ้งเตือน

รวบรวมเหตุการณ์ที่ยังไม่แจ้งเตือนและกระจายไปยังช่องทางที่เปิดใช้งาน พร้อมระบบป้องกันการส่งซ้ำ

Key Responsibilities
  • แจ้งเตือนทาง Email
  • แจ้งเตือนผ่าน Telegram
  • แจ้งเตือนผ่าน LINE
  • จัดการ digest queue
Auto IP Blocker
บล็อก IP อัตโนมัติ

ตรวจสอบ log และบล็อก IP ที่มีพฤติกรรมน่าสงสัยใน .htaccess โดยอัตโนมัติ

Key Responsibilities
  • อ่าน log การโจมตี
  • เพิ่ม/ลบกฎ Deny ใน .htaccess
  • แจ้งเตือนเมื่อมีการบล็อก
Cron Manager
จัดการรอบการสแกน

จัดการกำหนดเวลาการสแกนผ่าน WP-Cron และ server cron รวมถึง admin quick scan

Key Responsibilities
  • ลงทะเบียน cron hooks
  • กำหนดรอบการสแกน (30นาที, 6ชม., ฯลฯ)
  • ตรวจสอบและเริ่มสแกนตามเวลา
Plugin Core
แกนหลักและ API

เชื่อมต่อทุกส่วนเข้าด้วยกัน จัดการ AJAX/REST API และการตั้งค่าของปลั๊กอิน

Key Responsibilities
  • เริ่มการสแกนผ่าน AJAX
  • ดูสถานะสแกน real-time
  • แก้ไขเหตุการณ์และล้าง baseline
  • ตั้งค่าผ่าน REST API
Admin Interface
หน้าจัดการ

สร้างเมนูและหน้าใน wp-admin ทั้งหมด พร้อม inline CSS/JS เพื่อประสิทธิภาพ

Key Responsibilities
  • แดชบอร์ดสรุป
  • รายการไฟล์ baseline
  • ประวัติเหตุการณ์และการสแกน
  • ตั้งค่าการแจ้งเตือนและ cron
10 · LIFECYCLE & SAFETY

Activation · Deactivation · Uninstall
จัดการ lifecycle อย่างสะอาด

ปลั๊กอินจัดการ lifecycle ครบทุก phase อย่างรอบคอบ และมีระบบลบไฟล์ที่มี safety checks หลายชั้น

Activation

  1. 01 ตรวจ PHP ≥ 7.4 และ WordPress ≥ 6.0 (deactivate + wp_die ถ้าไม่ผ่าน)
  2. 02 เรียก Andudo_Security_DB::create_tables() สร้าง 3 ตารางผ่าน dbDelta()
  3. 03 seed andudo_settings ด้วย default options (รวม 7 exclude paths)
  4. 04 merge default exclude folders เข้ากับ settings ที่มีอยู่แล้ว
  5. 05 เรียก Andudo_Security_Cron::schedule() ลงทะเบียน 3 cron hooks
  6. 06 บันทึก andudo_security_activated_at timestamp
  7. 07 clear andudo_scan_running transient (stale lock protection)

Deactivation

  1. 01 เรียก Andudo_Security_Cron::unschedule() ลบ scan cron hook
  2. 02 wp_clear_scheduled_hook() สำหรับทั้ง 3 hooks (scan, flush_digest, auto_block)
  3. 03 Bulk DELETE transients ที่ขึ้นต้นด้วย _transient_andudo_* จาก wp_options
  4. 04 เก็บตารางฐานข้อมูล + andudo_settings option ไว้ (ไม่ลบ)
  5. 05 เก็บ .htaccess Deny lines ไว้ (ผู้ใช้ต้องลบเองถ้าต้องการ)

Uninstall

  1. 01 DROP TABLE IF EXISTS สำหรับ 3 ตาราง (files, events, scans)
  2. 02 delete_option() สำหรับ 9 options (db_version, settings, baseline_*, scan_*, activated_at, server_cron_*)
  3. 03 Bulk DELETE transients ที่ขึ้นต้นด้วย _transient_andudo_*
  4. 04 วนลูป _get_cron_array() เพื่อ wp_unschedule_event() ทุก andudo_* entries
  5. 05 ถ้า shell_exec ใช้ได้ — strip # BEGIN/END Andudo Security block จาก crontab
  6. 06 Bulk DELETE usermeta ที่ meta_key LIKE 'andudo_%' (defensive cleanup)

File Deletion Safety

การลบไฟล์ผ่าน admin มีมาตรการความปลอดภัยหลายชั้นเพื่อป้องกันการลบไฟล์สำคัญของ WordPress

Baseline membership

ไฟล์ต้องมีอยู่ในตาราง andudo_security_files ก่อนจึงจะลบได้

Path containment

realpath() ต้องอยู่ใต้ ABSPATH หรือ extra_scan_paths ที่กำหนดไว้

WP core blocklist

บล็อก wp-config.php, wp-login.php, wp-admin/admin.php, .htaccess, xmlrpc.php, wp-cron.php ฯลฯ

wp-admin/wp-includes block

บล็อกการลบไฟล์ในโฟลเดอร์ wp-admin/ และ wp-includes/ ทั้งหมด

Default theme block

บล็อกการลบไฟล์ใน wp-content/themes/twenty*

Audit logging

บันทึก user_id, user_login, IP, original hash, original size ลง event file_deleted_by_admin

11 · INSTALLATION

เริ่มต้นใช้งานใน 4 ขั้นตอน

ติดตั้ง plugin ได้ทันทีบน WordPress 6.0+ ที่รัน PHP 7.4+ โดยไม่ต้องตั้งค่า default เพิ่มเติม

WordPress
6.0+
PHP
7.4+
MySQL
5.7+ / MariaDB 10.3+
License
GPL-2.0-or-later
01

ดาวน์โหลดและติดตั้ง plugin

อัปโหลดไฟล์ andudo-security.php ไปยังโฟลเดอร์ wp-content/plugins/andudo-security/ หรือติดตั้งผ่านหน้า Plugins → Add New → Upload Plugin ใน WordPress admin

02

Activate plugin

ไปที่เมนู Plugins แล้วกด Activate บน Andudo Security ระบบจะสร้างตารางฐานข้อมูลทั้ง 3 ตารางและตั้งค่าเริ่มต้นโดยอัตโนมัติ

03

รันสแกน baseline ครั้งแรก

ในรอบสแกนแรก ระบบจะเก็บ baseline ของไฟล์ทั้งหมดโดยไม่สร้าง events เพื่อให้การตรวจจับเริ่มจากสถานะปัจจุบัน

04

ตั้งค่าการแจ้งเตือน

ไปที่ Andudo Security → Settings เพื่อเปิดใช้งานช่องทางที่ต้องการ (Email, Telegram, LINE) และตั้งค่า credentials หรือ define ผ่าน wp-config.php

ตัวเลือก settings ทั้งหมด

ตัวเลือกทั้งหมดถูกเก็บใน option เดียวคือ andudo_settings โดยใช้ read-time defaults

Option KeyTypeDefault
scan_mode string standard
scan_dotfiles int 1
exclude_folders array []
extra_scan_paths array []
detect_new_files int 1
detect_modified_files int 1
detect_deleted_files int 1
detect_permission_issues int 1
detect_php_in_uploads int 1
detect_eval_base64 int 1
detect_htaccess_issues int 1
detect_double_extension int 1

WP-Config Constants (Override)

credentials ที่ sensitive สามารถ define ใน wp-config.php ได้เพื่อความปลอดภัย

ANDUDO_TELEGRAM_BOT_TOKEN

Override Telegram bot token (จาก @BotFather) ที่เก็บใน database เพื่อความปลอดภัยในการ deploy

ANDUDO_TELEGRAM_CHAT_ID

Override chat ID ของ Telegram (สามารถใช้ @getidsbot เพื่อดู ID ของกลุ่มหรือผู้ใช้)

ANDUDO_LINE_MESSAGING_TOKEN

Override LINE Messaging API channel access token (long-lived)

ANDUDO_LINE_TARGET_ID

Override LINE target user ID หรือ group ID ที่จะรับข้อความแจ้งเตือน