การตั้งค่าความปลอดภัยก่อนใช้งาน OpenCart 3

เขียนเมื่อ 3 ปีก่อน โดย Ninenik Narkdee
extensions opencart opencart 3 storage

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ extensions opencart opencart 3 storage

ดูแล้ว 2,913 ครั้ง


หลังจากที่เราได้ทำการติดตั้ง OpenCart 3 ไปแล้วในเนื้อหา
ตอนแรก และติดตั้ง vQmod สำหรับรองรับโมดูลส่วนขยายเพิ่มเติม
ซึ่งในขั้นตอนการติดตั้ง เราจะจะมีการอนุญาตให้เขียนไฟล์บางตัว ที่มีความสำคัญ
นั้นก็คือไฟล์ 
 
  - ไฟล์ index.php และ admin/index.php ควรกำหนด permissions เป็น 755 หรือ 777 
 
ในขั้นตอนที่แล้ว เราเปิดอนุญาตให้สามารถเขียนไฟล์ ก็เพื่อติดตั้ง vQmod ซึ่งตัวติดตั้ง
จะมีการเพิ่มคำสั่ง การเรียกใช้งานไฟล์ vQmod ในไฟล์ดังกล่าว 
หลังจากเราติดตั้งแล้ว ก็ไม่จำเป็นต้องให้สามารถเขียนไฟล์ได้อีก ก็ให้ปรับกลับมาเป็น
กำหนด permissions เป็น 644 หรือ 444
 
 

ความปลอดภัยการใช้งาน OpenCart

    เกี่ยวกับการเพิ่มความปลอดภัยการใช้งาน OpenCart  สามารถดูรายละเอียดต่างๆ 
ตามนี้เป็นแนวทาง
 

ลบโฟลเดอร์ติดตั้ง

เราควรทำการลบโฟลเดอร์ install หลังจากติดตั้ง OpenCart เรียบร้อยแล้ว
หรือสามารถเปลี่ยนชื่อโฟลเดอร์เป็นชื่ออื่นแทนก็ได้
 
 

การป้องกันโฟลเดอร์ต่างๆ 

 
โฟลเดอร์ Admin
อย่างที่ทราบกันดีว่า ส่วนควบคุมร้านทั้งหมดจะเข้าผ่านทาง path ที่ชื่อ /admin ดังนั้น
สิ่งสำคัญที่สุดก็คือการกำหนดชื่อผู้ใช้และรหัสผ่านที่มีความปลอดภัยสูง เพื่อป้องกันไม่ให้
ใครสามารถเข้าไปจัดการร้านของเราได้ เช่นอาจจะใช้ตัวช่วยสร้างรหัสผ่านที่มีความปลอดภัย
อย่างเว็บไซต์ https://passwordsgenerator.net เป็นแนวทาง
    การเปลี่ยน path ของระบบจัดการก็สามารถเพิ่มความปลอดภัยให้กับระบบจัดการร้านได้
แต่ก็ต้องระวังหากจะแก้ไข ควรเลือกใช้งาน extension ที่ไม่ต้องแก้ไขไฟล์โดยตรงจะเป็นวิธีที่
ดีที่สุด
    นอกจากนั้นเราสามารถใช้งาน .htaccess และ .htpasswd เพื่อกำหนดสิทธิ์การเข้าถึง /admin
เช่น สมมติอนุญาตเฉพาะ ip ที่เรากำหนดเท่านั้นถึงจะเข้าหน้า /admin ได้ ก็จะได้ไฟล์ .htaccess
ในโฟลเดอร์ admin ประมาณนี้
 
<Files *.*>
Order Deny,Allow
Deny from all
Allow from "your ip address"
</Files>
 
แทนค่า your ip address เป็นค่า ip ของเรา
หรือจะถ้าต้องการป้องกันโฟลเดอร์ admin ด้วยรหัสผ่าน ก็อาจจะใช้งาน .htpasswd เพิ่มกำหนด
ให้ต้องกรอกชื่อผู้ใช้และรหัสผ่านก่อนอนุญาตเพิ่มเติมก็ได้ อย่างไรก็ดีวิธีการกำหนดควรทำผานระบบ
จัดการของ server จะเป็นวิธีที่ดีที่สุด
    การกำหนดค่าต่างๆ ที่กล่าวข้างต้น อาจจะมีผลต่อการทำงานหากกำหนดค่าผิดพลาด ควรยกเลิก
และใช้ค่าตามเดิม วิธีที่ดีที่สุดข้้นต้น และทำให้เราสะดวกใช้งานด้วยก็คือ การกำหนดชื่อผู้ใช้และรหัส
ผ่านให้มีความปลอดภัยก็เพียงพอแล้ว
 
โฟลเดอร์ Catalog
    เราสามารถกำหนด .htaccess เพื่อจำกัดการเข้าถึงจากแหล่งอื่นได้ โดยสามารถเลือกป้องกันเฉพาะไฟล์
ที่สำคัญ ในขั้นตอนการกำหนดเงื่อนไข ในรูปแบบดังนี้
 
<FilesMatch "\.(php|twig|txt)$">
Order Deny,Allow
Deny from all
Allow from "your ip address"
</FilesMatch>
 
คำสั่งข้างตันจะป้องกันกานเข้าถึงไฟล์ .twig, .php, และ .txt ไฟล์ จาก ip ที่ไม่อื่นยกเว้นที่กำหนดไว้
ip ส่วนนี้จะหมายถึง static ip ของเว็บไซต์หรือของร้านเรา
* หากไม่มั่นใจ ไม่จำเป็นต้องกำหนดการป้องกันในลักษณะนี้ก็ได้ 
 
โฟลเดอร์ System
    เราสามารถกำหนด .htaccess เช่นเดียวกับ admin โฟลเดอร์ 
 

การกำหนด permissions ให้กับไฟล์

เพื่อความปลอดภัยรายการชื่อไฟล์ต่อไปนี้ จำเป็นจะต้องกำหนดหรือตั้งค่าให้เป็น 
644 หรือ 444 เพื่อไม่ให้ถูกเขียนทับจากภายนอกได้
 
    - config.php
    - index.php
    - admin/config.php
    - admin/index.php
    - system/startup.php
 
แนวทางข้างต้น สามารถเลือกจะทำหรือไม่ก็ได้ขึ้นกับระดับความปลอดภัยของ server ที่เราใช้งานด้วย
เช่น บาง server มีระบบจัดการดีอยู่แล้วก็ไม่จำเป็นต้องกำหนดเพิ่มเติม โดยเฉพาะการใช้งาน .htaccess
ก็อาจจะไม่จำเป็นเท่ากรณีอื่นๆ 
 
 

ความปลอดภัยของที่จัดเก็บข้อมูล

    หลังจากเราทำการติดตั้ง OpenCart 3 แล้วทำการล็อกอินเข้าระบบจัดการ ก็จะพบกับหน้าตาแจ้งเตือน
ด้วยข้อความ Important Security Notification! ตามรูปด้านล่าง
 
 

 
 
    ปกติแล้วโฟลเดอร์ storage จะอยู่ใน system/storage เป็นที่เก็บข้อมูลสำคัญๆ เช่น ไฟล์ cache 
ไฟล์ session ไฟล์ logs เป็นต้น ถ้าไม่มีการป้องกันใดๆ ไฟล์เหล่านี้ก็อาจจะสามารถเข้าถึงจากภายนอกได้ง่าย
ทั้งนี้ก็เพราะเป็น path ที่สามารถเข้าถึงผ่านหน้า url ดังนั้นหลายๆ framework ก็หันมาให้ความสำคัญกับส่วน
เก็บข้อมูลเหล่านี้ ว่าถ้าเป็นไปได้ สามารถกำหนดให้ไม่อยู่ใน root ของเว็บไซต์ได้หรือไม่ เข้าใจง่ายดังนี้คือ
 
ปกติเราจะเอาไฟล์ต่างๆ ไว้ที่ root ไม่ว่าจะเป็น www หรือ public_html หรือ htdocs
สมมติเช่นโฟลเดอร์ uploads
 
mywebsite/public_html/uploads
 
แต่เพิ่มความปลอดภัยของข้อมูลให้เราย้ายออกมาไว้นอกโฟลเดอร์ public_html ก็จะเป็น
 
mywebsite/uploads
 
แบบนี้เป็นต้น ซึ่งจะไม่สามารถเข้าถึงจากภายนอกได้ง่าย ทำให้ข้อมูลมีความปลอดภัย
 
    เช่นกันกับการขึ้นแจ้งเตือนข้างต้น แทนที่เราจะให้โฟลเดอร์ storage อยู่ใน
 
mywebsite/public_html/system/storage
 
    ก็ให้ปรับมาอยู่ใน
 
mywebsite/storage
 
    แทนแบบนี้เป็นต้น
 
    อย่างไรก็ตามก็ไม่ใช่ว่าทุกๆ server จะสามารถกำหนดแบบนี้ได้ ขึ้นกับสิทธิ์การเข้าถึงของเว็บไซต์นั้นๆ ด้วย
ซึ่งถ้าหากเราสามารถกำหนดได้ ก็สามารถทำได้ดังนี้คือ
 
1. ให้ copy โฟลเดอร์ storage ทั้งหมดใน system/storage มาไว้นอก root ของเว็บไซต์
 
สมมติเช่นในตัวอย่างที่ทดสอบ ก็ย้าย่จาก
 
C:/xampp/htdocs/mysslweb/public/store/system/storage/
 
มาที่
 
C:/xampp/htdocs/mysslweb/storage/
 
 
2. แก้ไขไฟล์ config.php และ admin/config.php โดยเปลี่ยนบรรทัดดังนี้
 
จาก
 
define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
 
เป็น
 
define('DIR_STORAGE', 'C:/xampp/htdocs/mysslweb/storage/');
 
หรือจะ คอมเม้นปิดไว้แบบนี้ก่อนก็ได้
 
#define('DIR_STORAGE', DIR_SYSTEM . 'storage/');
define('DIR_STORAGE', 'C:/xampp/htdocs/mysslweb/storage/');
 
3. จากนั้นเราก็ล็อกเอาท์ออกจากระบบแล้วเข้ามาใหม่ จะเห็นว่าไม่มีการแจ้งเตือนขึ้นมาแล้ว
เพราะเราได้ย้ายตำแหน่งสำหรับเก็บข้อมูลไปยังตำแหน่งที่ปลอดภัยแล้ว
 
 
 

 

การปิด Important Security Notification ด้วย Extension

    อย่างที่กล่าวไปแล้ว ใช่ว่าทุกคนหรือ server นั้นจะสามารถกำหนดตำแหน่งตามวิธีข้างต้นได้
และตัวแจ้งเตือนก็จะขึ้นทุกครั้งในหน้า Dashboard หรือหน้าควบคุมหลัก เราสามารถปิดหรือลบตัว
แจ้งเตือนนี้ด้วยด้วยการติดตั้ง Extension ที่ชื่อว่า "Remove Important Security Notification"
ตัวที่ทดสอบใช้ได้กับ OpenCart 3.0.3.8 เป็น Extension ที่อัพเดทล่าสุด 11 Jan 2021
    ให้เราทำการดาวน์โหลดมา จะได้เป็นไฟล zip ชื่อไฟล์ประมาณนี้
 
admin-remove-important-security-notification-3x.ocmod.zip
 
    จากนั้นให้เราไปทำการติดตั้งผ่านหน้า admin โดยไปที่เมนู Extensions > Installer
 
ทำการติดตั้งโดยอัพโหลดไฟล์ข้างต้น ก็จะได้ดังนี้
 
 


 
 
    เสร็จแล้วให้ไปที่เมนู Extensions > Modifications 

 
 


 
 
    แล้วกดปุ่ม รีเฟรส สีฟ้า มุมบนขวา 

 
 


 
 
    เท่านี้การแจ้งเตือนก็จะหายไปแล้ว และเราก็ยังสามารถใช้ส่วนของการเก็บข้อมูลที่ตำแหน่งเดิมได้
หรือก็คือใน โฟลเดอร์ system/storage และอาจจะใช้วิธีกำหนดการเข้าถึงด้วย .htaccess เพื่อป้องกัน
ในเบื้องต้นได้ ในกรณีที่เราไม่สามารถย้ายส่วนนี้ออกจาก root ได้


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ



อ่านต่อที่บทความ









เนื้อหาที่เกี่ยวข้อง









URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ