Skip to main content
อัปเกรดความปลอดภัยเว็บไซต์ Joomla & WordPress สู่เกรด A ด้วย Security Headers

อัปเกรดความปลอดภัยเว็บไซต์ Joomla & WordPress สู่เกรด A ด้วย Security Headers

ในยุคที่การโจมตีทางไซเบอร์เกิดขึ้นทุกวินาที การมีเพียง SSL (HTTPS) อาจไม่เพียงพออีกต่อไป หลายคนตรวจเช็คสุขภาพเว็บไซต์ผ่านเครื่องมือระดับโลกอย่าง SecurityHeaders.com แล้วต้องตกใจที่เห็นเกรด F หรือตัวแดงที่ระบุว่า "Missing Headers" บทความนี้จะสรุปเทคนิคการเปลี่ยนเว็บไซต์ของคุณให้กลายเป็นปราการเหล็กด้วย 6 Security Headers สำคัญ ที่จะช่วยให้คุณได้เกรด A+ และเพิ่มความเชื่อมั่นให้กับทั้งผู้ใช้และ Google (SEO)

ตรวจสอบเว็บคุณก่อน https://securityheaders.com/

6 บอดี้การ์ดหน้าบ้านที่เว็บไซต์ "ต้องมี"

  • 1. Strict-Transport-Security (HSTS)

    "บังคับใช้ถนนเส้นที่ปลอดภัยเท่านั้น"
    เป็นการสั่งให้ Browser จดจำว่าต้องเข้าถึงเว็บไซต์นี้ผ่าน HTTPS เท่านั้น ป้องกันการแอบดักข้อมูลในจังหวะที่เปลี่ยนจาก HTTP เป็น HTTPS (SSL Stripping)

    เปรียบเทียบ: เหมือนสั่งคนขับรถว่า "ไปบ้านนี้ต้องขึ้นทางด่วนเส้นหลักเท่านั้น ห้ามใช้ซอยเปลี่ยวเด็ดขาด"

  • 2. X-Frame-Options

    "ป้องกันการซ้อนหน้าเว็บ (Clickjacking)"
    ป้องกันไม่ให้ผู้ไม่หวังดีนำเว็บไซต์ของเราไปใส่ใน iframe แล้วทำหน้าเว็บให้โปร่งใสซ้อนทับกับเว็บปลอมเพื่อหลอกให้ผู้ใช้คลิกปุ่มสำคัญโดยไม่รู้ตัว

    เปรียบเทียบ: เหมือนการติดสติกเกอร์ "ห้ามก๊อปปี้แผ่นใส" มาวางทับหน้าจอเพื่อหลอกให้คุณเซ็นชื่อ

  • 3. X-Content-Type-Options

    "ห้ามเดาประเภทไฟล์เอง (nosniff)"
    สั่งให้ Browser เชื่อถือค่า Content-Type ที่ Server ส่งไปเท่านั้น ห้าม Browser แอบ "ดม" หรือเดาประเภทไฟล์เอง ซึ่งอาจนำไปสู่การรันสคริปต์อันตรายที่แฝงมาในรูปแบบไฟล์ภาพ

    เปรียบเทียบ: เหมือนคนส่งพัสดุบอกว่า "นี่คือเสื้อผ้า" คุณก็ต้องใช้งานแบบเสื้อผ้า ไม่ใช่พยายามแงะดูว่ามีระเบิดซ่อนอยู่ข้างในไหม

  • 4. Referrer-Policy

    "จำกัดข้อมูลที่บอกเว็บอื่น"
    ควบคุมการส่งข้อมูล URL ต้นทางเมื่อมีการคลิกลิงก์ไปยังเว็บไซต์อื่น เพื่อรักษาความเป็นส่วนตัวและป้องกันข้อมูลสำคัญใน URL รั่วไหล

    เปรียบเทียบ: เหมือนคุณเดินออกจากบ้านเพื่อนไปห้าง เมื่อห้างถามว่ามาจากไหน คุณจะตอบแค่ว่า "มาจากบ้าน" แทนการบอกเลขที่บ้านเต็มๆ ของเพื่อน

  • 5. Permissions-Policy

    "ใบอนุญาตเข้าถึงอุปกรณ์"
    จำกัดการเข้าถึงฮาร์ดแวร์ของผู้ใช้ เช่น กล้อง (Camera), ไมโครโฟน (Microphone) หรือตำแหน่ง (Geolocation) เพื่อให้มั่นใจว่าต่อให้เว็บมีช่องโหว่ แฮกเกอร์ก็ไม่สามารถแอบสั่งเปิดกล้องส่องผู้ใช้ได้

  • 6. Content-Security-Policy (CSP)

    "บอดี้การ์ดคัดกรองแขก"
    กฎเหล็กที่ระบุว่า "แหล่งที่มาใดบ้าง" ที่ได้รับอนุญาตให้รันโค้ดบนหน้าเว็บของเรา ช่วยป้องกันการโจมตีประเภท XSS (Cross-Site Scripting) ได้อย่างมีประสิทธิภาพที่สุด

    เปรียบเทียบ: เหมือนงานปาร์ตี้ส่วนตัวที่มีรายชื่อแขกหน้างาน ใครไม่มีชื่อในโพย ต่อให้เดินมาถึงหน้าประตูก็เข้างานไม่ได้

วิธีการตั้งค่าใน Joomla และ WordPress

สำหรับ Joomla 4 และ 5 และ 6

Joomla รุ่นใหม่มีระบบจัดการมาให้ในตัวผ่านปลั๊กอิน "System - HTTP Headers":

ไปที่ System -> Manage -> Plugins ค้นหา "HTTP Headers"

เปิดใช้งานและตั้งค่าในแท็บ HSTS และ CSP 3. ในแท็บ Plugin สามารถเปิดใช้งาน X-Content-Type-Options และ Referrer-Policy ได้ทันที

Force HTTP Headers เพิ่ม Permissions-Policy

camera=(), microphone=(), geolocation=(), payment=()

Strict-Transport-Security (HSTS)

Content-Security-Policy (CSP) เปิด เพิ่ม Add Directive

กดปุ่ม "Add Directive" (ปุ่มสีเขียวด้านล่าง) แล้วเพิ่มกฎพื้นฐานเหล่านี้เพื่อความปลอดภัย:

default-src: ตั้งค่าเป็น 'self' (อนุญาตเฉพาะไฟล์ในเว็บตัวเอง)

script-src: ตั้งค่าเป็น 'self' 'unsafe-inline' 'unsafe-eval' (สำหรับ CMS อย่าง Joomla มักต้องยอมให้ใช้ inline script บ้างเพื่อให้ Plugin ทำงานได้)

img-src: ตั้งค่าเป็น 'self' data: https: (เพื่อให้อัปโหลดรูปและดึงรูปจากเว็บอื่นที่เป็น https ได้)

สำหรับ Joomla 3 Wordpress หรือเว็บอื่นๆ

ผมแนะนำให้ใช้ .htaccess หรือ Server Block สำหรับ nginx

สำหรับ Nginx (Config ที่ไฟล์ Server Block)

หากคุณใช้ Nginx เป็น Reverse Proxy ให้เพิ่มบรรทัดเหล่านี้ในไฟล์ Config:
# HSTS (1 ปี)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

# CSP (ตัวอย่างเบื้องต้น)
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; object-src 'none';" always;

# X-Frame-Options (ป้องกัน Clickjacking)
add_header X-Frame-Options "SAMEORIGIN" always;

# X-Content-Type-Options
add_header X-Content-Type-Options "nosniff" always;

# Referrer-Policy
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

เพิ่มโค้ดนี้ลงไปที่ด้านบนสุดของไฟล์ .htaccess:

<IfModule mod_headers.c>
    # HSTS
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
    # X-Frame-Options
    Header set X-Frame-Options "SAMEORIGIN"
    # X-Content-Type-Options
    Header set X-Content-Type-Options "nosniff"
    # Referrer-Policy
    Header set Referrer-Policy "strict-origin-when-cross-origin"
    # CSP (ตัวอย่างพื้นฐาน - ปรับแต่งตามการใช้งาน)
    Header set Content-Security-Policy "upgrade-insecure-requests"
</IfModule>

Read more


HTTP Status Codes ความหมายของรหัสสถานะ HTTP

HTTP Status Codes ความหมายของรหัสสถานะ HTTP

รหัสสถานะ HTTP คือข้อความตอบกลับจากเซิร์ฟเวอร์เมื่อเรา (เบราว์เซอร์, แอป หรือ API) ส่งคำขอไปยังเว็บไซต์หรือบริการออนไลน์ รหัสเหล่านี้ช่วยให้เราทราบว่าเซิร์ฟเวอร์จัดการกับคำขออย่างไร — สำเร็จหรือผิดพลาด โดยรหัสจะอยู่ในรูปแบบตัวเลข 3 หลัก เช่น 200, 404, 500 เป็นต้น และแต่ละตัวเลขมีความหมายเฉพาะ

Read more


Joomla กับ  Web Accessibility

Joomla กับ Web Accessibility

Joomla เป็นระบบจัดการเนื้อหา (Content Management System - CMS) ที่ใช้งานได้ง่ายและเป็นที่นิยมในการสร้างเว็บไซต์หลายประเภท เช่น ทำเว็บไซต์บริษัท ทำเว็บไซต์หน่วยงานรัฐบาล หรือทำเว็บไซต์ส่วนตัว ด้วยความสามารถในการปรับแต่งและขยายเป็นได้ตามต้องการ นอกจากนี้ Joomla ยังมีการสนับสนุน Web Accessibility ที่สูงขึ้นเรื่อยๆ เพื่อให้ผู้ใช้งานทุกคนสามารถเข้าถึงและใช้งานเว็บไซต์ได้อย่างเท่าเทียมกัน Web Accessibility ใน Joomla โดยเฉพาะ joomla 4 ทีมงาน  Joomla สนับสนุน Web Accessibility เป็นอย่างมาก บทความนี้จะเป็นการอธิบายเบื้องต้นว่าต้องเลือก ทำ อะไรบ้าง

Read more


การแก้ไข Layout View Category Blog  เพิ่มการตัดคำและรูปแบบใหม่

การแก้ไข Layout View Category Blog เพิ่มการตัดคำและรูปแบบใหม่

บทความนี้เราจะมาเรียนรู้ การเปลี่ยนหน้าตาของ Category Blog แบบเดิมๆ ที่มีปัญหามาก เวลาตัดข้อความ ถึงแม้จะมีปุ่ม อ่านเพิ่มเติม แต่การตัดให้เท่ากันมันเป็นเรื่องยาก และ รูปแบบการแสดงผลของ เทมเพลต protostar ก็ช่างไม่สวยงาม บทวามนี้เราจะมาแก้ไขมัน 

Read more


การทำให้เว็บไซต์ที่สร้างด้วย Joomla! ปลอดภัย

การทำให้เว็บไซต์ที่สร้างด้วย Joomla! ปลอดภัย

การทำให้เว็บไซต์ที่สร้างด้วย Joomla! ปลอดภัยเป็นสิ่งสำคัญมาก เพื่อป้องกันการโจมตีจากแฮกเกอร์และปัญหาความปลอดภัยอื่น ๆ นี่คือขั้นตอนและแนวทางที่ควรทำกับเว็บของคุณ:

Read more


ใช้ Firebug ช่วยดู CSS ไอดีและคลาส เพื่อ ปรับแต่ง Templates Joomla!

ใช้ Firebug ช่วยดู CSS ไอดีและคลาส เพื่อ ปรับแต่ง Templates Joomla!

บ่อยครั้งที่ผมมันเจอคำถามว่า อยากปรับตรงนี้ ตรงนั้น แก้ยังไง เปลี่ยนขนาดของตัวหนังสือ เพิ่มกรอบ เปลี่ยนสีพื้นหลัง และอีกมากมาย ใช้ Firebug ช่วยดู CSS ไอดีและคลาส เพื่อ ปรับแต่ง Templates Joomla! เอาเป็นว่าลองมาดูเครื่องมือที่ใช้งานกันแบบง่ายๆก่อน

Read more


การตั้งค่าให้  url มีหรือไม่มี www โดยใช้ htaccess

การตั้งค่าให้ url มีหรือไม่มี www โดยใช้ htaccess

บางท่าน เจอปัญหาเว้บพอเข้าไปมี  www บ้างไม่มีบ้าง บางคนอยากให้มี บางคนอยากให้เอาออก สับสนวุ่นวายไปหมด  บางท่านบอกมีผลกับ SEO บางท่านบอกไม่มี แต่ผมก็มีให้ใใช้ทั้ง 2 แบบละครับ

Read more


วิธี ทำให้หน้าเว็บจูมล่าโหลดได้ไว

วิธี ทำให้หน้าเว็บจูมล่าโหลดได้ไว

การทำให้หน้าเว็บ Joomla! โหลดได้เร็วขึ้นสามารถทำได้หลายวิธี โดยการปรับแต่งและตั้งค่าต่าง ๆ ต่อไปนี้: 

เปิดใช้งานการแคช (Caching)

  • เปิดใช้งานการแคชที่ Joomla! ช่วยให้หน้าเว็บถูกเก็บในหน่วยความจำและแสดงผลเร็วขึ้น
  • ไปที่ System > Global Configuration > Cache และเปิดใช้งาน “Cache” และเลือกเวลาหมดอายุที่เหมาะสม

Read more


สอนเพิ่มตำแหน่งโมดูลในเทมเพลต จูมล่า

how-to-add-joomla-module-position

บางครั้ง เทมเพลตที่โหลดมา ตำแหน่งอาจมีน้อยเกินไป แต่ อย่าลืมว่า  1 ตำแหน่ง สามารถนำโมดูลมาแสดงได้หลายตัว  แต่บางเทมเพลตก็น้อยมากจริงๆ เหมือนเทมเพลต ของ SiteGround ชื่อ Chameleon ตัวอย่าง http://www.siteground.com/template-preview/joomla25/siteground-j16-27 ซึ่งจะมี ตำแหน่ง เพียง สี่ ตำแหน่ง คือ เมนู ช่องค้นหา ซ้าย และขวา ตามรูป

Read more


ใช้ MAMP จำลอง Server ใช้งานบน Windows 7 เพื่อใช้งาน Joomla!

ใช้ MAMP ทำ Server ใช้งานบน Windows 7 เพื่อใช้งาน Joomla!

ตอนนี้จากการรับฟัง ทดลองปัญหาต่างๆ เกี่ยวกับ การจำลอง Server บน Windows พบว่า ทั้ง  appserv ที่มีปัญหา PHP เก่าเกินจะใช้งาน หรือ xampp ไม่สามารถทำงานได้บน Windows บางเครื่อง ถึงตอนนี้ ผมขอให้เลิกใช้ appserv และขอแนะนำ ให้มาใช้ ตัวจำลอง  Server ที่มีมานานบน Mac OS X นั้นคือ  MAMP ซึ่งตอนนี้มีรุ่นที่สามารถใช้งานบน Windows ได้แล้ว

Read more