website-security-วิธีป้องกันการโจมตีเว็บไซต์

Web Security ป้องกันการโจมตีเว็บไซต์รูปแบบต่าง ๆ

Web Security ป้องกันการโจมตีเว็บไซต์รูปแบบต่าง ๆ



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


1. Update ภาษาและซอฟต์แวร์เป็น Stable Version อย่างสม่ำเสมอ

ไม่ว่าเราจะเขียนเว็บด้วยภาษาอะไร ใช้ CMS หรือ Framework ใด ๆ ก็ตาม ในการพัฒนาเว็บไซต์
ภาษา CMS หรือ Framework นั้น ๆ จะต้องมีการปรับปรุง เปลี่ยนแปลงจุดบกพร่องหรือช่องโว่ต่าง ๆ อยู่เสมอ
และหน้าที่ของผู้ใช้งาน จะต้องทำการอัพเดทเวอร์ชั่นการใช้งาน เพื่อใช้งานระบบรักษาความปลอดภัยที่ระบบนั้น ๆ มีให้

2. Validate ทั้งฝั่ง Server และ Client

นักพัฒนาหรือโปรแกรมเมอร์ต้องทำงานร่วมกันทั้งฝั่ง Front-End และ Back-End คือการ Validate หรือการ
ตรวจสอบข้อมูลก่อนเริ่มประมวลผล การทำงานภาษาส่วน front-end เมื่อมีการรับค่า input ใด ๆ ก็ตาม
ต้องทำการตรวจสอบ format ของข้อมูลให้ถูกต้อง หรือบังคับรูปแบบข้อมูลให้เป็นไปในทิศทางที่ถูกต้อง ตัวอย่างเช่น
รูปแบบของ email ควรอยู่ในรูปแบบที่ถูกต้องอย่าง name@domain.com เป็นต้น และเมื่อข้อมูลถูกส่งมายังฝั่ง server
การทำงานฝั่ง server ต้องทำการตรวจสอบอย่างละเอียดอีกครั้ง ข้อมูลส่วนไหนที่มีความจำเป็นต้องเข้ารหัส md5
ตัวอย่างเช่น password จะต้องทำการเข้ารหัสทุกครั้งก่อนบันทึกลงฐานข้อมูลและคืนค่าข้อมูลกลับไปยังส่วน front-end

3. chmod 777 เฝ้าระวัง File Upload

ถ้าเว็บไซต์ของเรามีการอนุญาติให้ผู้ใช้งานสามารถอัพโหลดไฟล์ได้ ตัวอย่างเช่น มีฟอร์มอนุญาติให้สมาชิก
สามารถเปลี่ยนรูป avatar โดยการอัพโหลดได้ การ validate หรือตรวจสอบในเบื้องต้นส่วนของ front-end
ถึงแม้จะสามารถตรวจสอบ type หรือนามสกุลของไฟล์ได้ แต่ถ้ามีการเปลี่ยนนามสกุลจากไฟล์ avatar.php เป็น
avatar.jpg การตรวจสอบก็จะยังคิดว่าไฟล์นั้นเป็นไฟล์รูปภาพอยู่เหมือนเดิม ทั้งที่ในไฟล์นั้นมีการเขียนคำสั่ง
เพื่อโจมตีเว็บไซต์ และถ้าหากว่าไฟล์ที่ถูกเขียนฝั่ง server กำหนด permission ของไฟล์ไม่ไช่ 644
คนที่ต้องการโจมตีเว็บไซต์อาจจะใช้คำสั่งเพื่อเปลี่ยนนามสกุลของไฟล์ในภายหลังได้ และเมื่อไฟล์ถูกเรียกใช้
ใน img element ตัวอย่างเช่น

คำสั่งโจมตีก็จะเริ่มทำงานทันที วิธีป้องกันคือ อย่ากำหนด Permission ของ File หรือ Directory
ใน www-data, public_html,htdocs เป็นแบบ 777 และพยายามเปลี่ยนชื่อไฟล์ upload ที่คาดเดายาก


4. ใช้งาน HTTS ติดตั้ง SSL Certificate

เพิ่มความปลอดภัยให้กับการรับส่งข้อมูลผ่านการใช้งานอินเตอเนต ด้วยการติดตั้ง SSL Certificate กำหนด
การใช้งานลิงค์ต่าง ๆ โดยให้เข้าผ่าน https protocol แทน http ธรรมดา การเข้าใช้งานเว็บไซต์ผ่าน https
เป็นการเพิ่มการรักษาความปลอดภัยของข้อมูลต่าง ๆ ผ่านการใช้งานเครือข่ายอินเตอเนต เมื่อมีการส่งข้อมูลใด ๆ
ก็ตามข้อมูลจะถูกเข้ารหัสในขณะที่มีการรับส่งข้อมูลระหว่าง front-end และ back-end เมื่อเป็นอินเตอเนต
และมีการรับส่งข้อมูลกัน เมื่อนั้นก็สามารถที่ดักข้อมูลได้เช่นกัน การติดตั้ง ssl เป็นการป้องกันด้วยการเข้ารหัส
ข้อมูลอีกขั้นหนึ่งในการรักษาความปลอดภัยข้อมูลที่พึงกระทำ


5. SQL injection ป้องกันการโจมตีผ่านคำสั่ง SQL

SQL injection คือการโจมตีเว็บไซต์โดยใช้คำสั่ง SQL หากเว็บไซต์ที่ผู้พัฒนาไม่มีการตรวจสอบข้อมูลต่าง ๆ
ที่ส่งเข้ามาทาง input ว่าเป็น format ที่ถูกต้องหรือไม่ การโจมตีเว็บไซต์ผ่านคำสั่ง SQL นี้จะเข้าถึง
ระบบฐานข้อมูลทันที แน่นอนว่าการโจมตีแบบนี้สามารถสร้างความเสียหายได้มากมาย สามารถลบ แก้ไข หรือนำ
ข้อมูลสำคัญ ๆ ต่าง ไปใช้งานโดยที่เราไม่รู้ตัวได้ การตรวจสอบ format ของข้อมูลก่อนนำไปประมวลผล
จึงเป็นสิ่งจำเป็นและสำคัญเป็นอย่างมากในการรักษาความปลอดภัยให้เว็บไซต์จากการโจมตีแบบ SQL injection

6. XSS ( Cross Site Scripting ) การโจมตีด้วยการฝังโค๊ด

จุดมุ่งหมายของผู้ที่ใช้ช่องโหว่ XSS ก็คือการขโมยข้อมูลสำคัญของผู้ใช้งานคนอื่น ซึ่งส่วนใหญ่ก็คือ web cookie
เป็นวิธีการโจมตีเว็บไซต์โดยการฝัง code script เช่น javascript หรือภาษาอื่น ๆ เข้าไปที่หน้าเว็บเพจ
โดยเริ่มต้นอาจจะมีการส่งค่า input เข้าไปผ่านตัวแปรใด ๆ ค่าในช่อง input แทนที่จะเป็นข้อมูลปกติ อย่าง email
หรือรหัสผ่าน แต่เป็นการใส่ code script เข้าไปแทน การทำงานฝั่ง Back-end ถ้าไม่มีการตรวจสอบ ใด ๆ เลย
ก่อนส่งข้อมูลนั้นออกมาให้เว็บไซต์ที่เป็นไดนามิคแสดงผล ตัว code script ก็อาจจะสามารถเริ่มทำงานและขโมยข้อมูล
สำคัญ ๆ ของเราไปแล้วก็เป็นได้ วิธีป้องกันรูปแบบการโจมตีแบบนี้คือการ validate ข้อมูลต่าง ๆ ที่ผู้ใช้งานเว็บไซต์
กรอกเข้ามาผ่าน input field หากพบข้อมูลที่ผิดปกติ เช่นมี tag ที่เป็นภาษาคอมพิวเตอร์เช่น < หรือ scrip>
ให้ทำการตัด tag นั้นออกไปหรือทำการแปลงข้อมูลนั้นให้อยู่ format ของ HTML escaping ซึ่งหลาย ๆ ภาษามี
คำสั่งให้ใช้งานอยู่ อย่าง php เราสามารถใช้คำสั่ง htmlentities เพื่อแปลงข้อมูลได้


7. CSRF ( Cross Site Request Forgery )

CSRF คือการโจมตีผู้ใช้งานบนเว็บไซต์ โดยอาศัยการเก็บข้อมูลของผู้ที่กำลังใช้งานเว็บไซต์อยู่ ส่วนใหญ่เป็น
ข้อมูลแบบ cookie เมื่อได้ข้อมูลที่ต้องการแล้ว การโจมตีจะเริ่ม โดยอาศัยพฤษติกรรมของผู้ใช้งานเว็บไซต์ เช่นการคลิก
การ submit ข้อมูลหรือแม้แต่การ refresh หน้าเว็บเพจ ด้วยตัวของผู้ใช้งานเอง เมื่อข้อมูลถูกส่งไปประมวลผล
ฝั่ง Server จะไม่พบความผิดปกติใด ๆ ของข้อมูลเลย เพราะเป็นการส่งข้อมูลมาจากเครื่องคอมพิวเตอร์
และเว็บเบราว์เซอร์ของสมาชิกที่เข้าระบบปกติ การป้องกันการโจมตีแบบ CSRF ที่นิยมกันคือการส่งตัวแปร token id
ที่เข้ารหัสและคาดเดาได้ยาก ไปเปรียบเทียบค่า กับการทำงานฝั่ง server

กระทู้ใกล้เคียง

ทำเว็บไซต์ให้ปลอดภัย Codeigniter Security... ทำเว็บไซต์ให้ปลอดภัย Codeigniter Security อย่าลืมที่จะเพิ่มความปลอดภัยให้เว็บไซต์ ด้วยคุณสมบัติด้านความปลอดภัยที่ codeigniter มีให้อยู่แล้ว Fram...
วิธีทำเว็บ ให้โหลดเร็ว เทคนิคเพิ่มความเร็วให้เว็บไ... วิธีทำเว็บ ให้โหลดเร็ว เทคนิคเพิ่มความเร็วให้เว็บไซต์ วิธีทำเว็บ ให้โหลดเร็ว เคยไหมครับที่คลิกลิงค์ข่าวจาก facebook เพราะอ่านคำโปรยแล้ว อยากจะเข้...
Bootstrap คืออะไร รู้จักเครื่องมือทำเว็บไซต์ยอดนิย... Bootstrap คืออะไร รู้จักกับ Framework ทำเว็บไซต์ยอดนิยม ในช่วงหลายปีที่ผ่านมามีเฟรมเวิร์คมากมายเกิดขึ้นทั้ง Front-end Framework และส่วน Back-end Fr...
วิธีทำ WordPress Plugin ใช้เองแบบง่าย ๆ... วิธีทำ WordPress Plugin ใช้เองแบบง่าย ๆ Wordpress เป็น CMS ที่เพียบพร้อม ใช้งานค่อนข้างง่ายและสะดวกสบาย เหมาะกับผู้เริ่มต้นเรียนรู้ทำเว็บไซต์ไว้ ...