Author: kanakorn.h

  • วิธีใช้ Google Sheets สร้าง Account ใหม่ลงใน Sub Organization ของ GAFE

    [บทความนี้ สำหรับผู้ที่มี GAFE Admin Privilege ขึ้นไป]

    ในการสร้างบัญชีผู้ใช้ใหม่บน GAFE นั้นทำได้หลายวิธี ได้แก่

    1. การสร้างทีละคนผ่าน Admin Console
    2. การสร้างทีละหลายๆคนด้วย CSV File
    3. การสร้างทีละหลายๆคนผ่าน Google Apps Directory Sync

    เมื่อต้องการสร้างผู้ใช้จำนวนมาก เช่น 5,500 คน โดยต้องจัดแบ่งผู้ใช้ แยกลงไปในแต่ละ Sub Organization วิธีที่ 1. ทำได้แต่เป็นงานที่หนักมาก วิธีที่ 2. ทำไม่ได้ เพราะการใช้ CSV File ผ่าน Admin Console นั้นจะสร้างผู้ใช้รวมกันที่ Root Organization ไม่สามารถแยกลงไปใน Sub Organization ได้ ส่วนวิธีที่ 3. นั้นทำได้ แต่ต้องเข้าใจกระบวนการทำงานของ LDAP พอสมควร

    ในบทความนี้ จะนำเสนอวิธีการที่ ทำได้ง่ายเหมือนการใช้ CSV แต่สามารถแยกลงไปใน Sub Organization ได้ ด้วย Google Sheets และ Google Apps Script ดังต่อไปนี้ (ขอยกตัวอย่างเพียง 5 Account เพื่อความสะดวก)

    1. สร้าง Google Sheets แล้วใส่ข้อมูล email, firstname, lastname, OU, password, status
    2. สร้าง Google Apps Scripts ใน Google Sheets นี้ ด้วยเมนู Tools > Script Editor … จากนั้นเลือก Blank Project แล้วกดปุ่ม Close
    3. ตั้งชื่อโปรเจค AddMultiAccountToSubOU แล้วใส่โค๊ดดังนี้
    4. ถ้าลอง Run เลย จะเจอ Error อย่างนี้
      คลิก Continue -> Accept -> Dismiss
      เพราะยังงไม่ได้ Enable API ไว้
    5. เนื่องจากการสร้าง Account ต้องใช้สิทธิ์ของ Admin ขึ้นไป และต้องใช้ Admin SDK Directory API ด้วย วิธีการคือใช้เมนู Resources -> Advanced Google Services แล้วเลือก Admin Directory API เป็น On
    6. จากนั้นคลิกที่ Google Developers Consol
      ที่ Admin SDK ให้เปลี่ยน ON
    7. เมื่อ Run ใหม่ ก็จะได้ผลใน Google Sheets ตามภาพ
    8. และจะสามารถสร้างผู้ใช้ได้ตาม Sub Organization ที่ต้องการ

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีการใช้ Google Sheets เป็นระบบเฝ้าระวังเว็บไซต์ (Website Monitoring) จากภายนอกองค์กร

    จาก “วิธีการใช้ Google Sheets เป็นฐานข้อมูล” ซึ่งได้กล่าวถึงพื้นฐานการพัฒนา Google Apps Script เพื่อใช้ต่อยอดความสามารถของ Google Sheets สามารถนำมาประยุกต์ใช้เพื่อเฝ้าระวังบริการเว็บไซต์จากภายนอกระบบเครือข่ายขององค์กรได้ (จาก Google Cloud Infrastructure เลยทีเดียว)

    ขั้นตอนในการทำ

    1. ในโปรเจค ProjectMyDB สร้างไฟล์ monitoring.gs ดังภาพ
    2. ประกอบด้วย 3 ฟังก์ชัน คือ
      function check_website(url) {  
        var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
        return response.getResponseCode();
      }
      
      function doLog(timestamp, responseCode, timeDiff) {
        var ss = SpreadsheetApp.openByUrl('https://docs.google.com/a/psu.ac.th/spreadsheets/d/1HJmyqiBYC_AEATmdUWakLgHFyYGqSqeqSA8xEw-8o-c/edit');
        SpreadsheetApp.setActiveSpreadsheet(ss);
        SpreadsheetApp.setActiveSheet(ss.getSheetByName("Log"));
        var activeSheet=ss.getActiveSheet();
        activeSheet.appendRow([timestamp, responseCode, timeDiff]);
      }
      
      function getTime() {
        var startTime = new Date() ;
        var responseCode=check_website("http://www.psu.ac.th");
        var endTime = new Date() ;
        var timeDiff = endTime-startTime;  
        doLog(Utilities.formatDate(new Date(), "GMT+7", "yyyyMMdd-HHmmss") , responseCode , timeDiff);
      }
    • check_website ใช้ UrlFetchApp เพื่อ url ของเว็บไซต์ แล้วรีเทิร์นผล Response Code ของ HTTP Protocol กลับไป
    • doLog ใช้สำหรับเพิ่มค่า timestamp, responseCode และ timeDiff (เวลาในการตอบสนอง) ลงใน Sheet “Log” ใน Google Sheets ที่กำหนดไว้
    • getTime ใช้คำนวนเวลาตั้งแต่เริ่มต้น แล้วเรียกใช้ฟังก์ชั่น check_website และ จับเวลาที่สิ้นสุด จากนั้นคำนวนเป็นเวลาในการตอบสนอง (timeDiff) แล้ว เรียกฟังก์ขัน doLog เพื่อเขียนข้อมูลต่อไป
    1. สร้าง Trigger ด้วยเมนู Resources > Current project’s triggers
    2. เลือกฟังก์ชัน getTime กำหนดเป็น Time-driven ทำงานในหน่วยนาที (Minute timmer) และ ทำงานทุกๆ 5 นาที แล้วกดปุ่ม Save
    3. ผลการทำงาน และการสร้าง Chart ประกอบทำให้สามารถเห็นแนวโน้มได้

    จากตัวอย่างข้างต้น ทำให้เห็นว่า การใช้ Google Apps Script ร่วมกับ Google Sheet สามารถสร้างระบบเฝ้าระวังเว็บไซต์จากภายนอกองค์กรได้อย่างง่ายๆ และไม่มีค่าใช้จ่าย ทำให้เห็นภาพการใช้งานจากภายนอกได้เป็นอย่างดี

  • วิธีการใช้ Google Sheets เป็นฐานข้อมูล

    Google Sheets เป็นหนึ่งใน Google Apps ซึ่งเป็น Application Suite ของ Google ประกอบด้วย

    ในการใช้งานทั่วไป Google Apps สามารถตอบสนองการใช้งานได้เป็นอย่างดี แต่เมื่อต้องการทำกิจกรรมบางอย่างที่นอกเหนือไปจากการใช้งานพื้นฐาน ผู้ใช้สามารถพัฒนาเพิ่มเติมได้เอง ด้วย Google Apps Script

    Google Apps Script เป็น Scripting Language ที่อยู่บนพื้นฐานของภาษา JavaScript สามารถใช้งานได้และพัฒนาต่อยอดได้ทันทีโดยไม่ต้องติดตั้งอะไรเพิ่มเติมอีกแล้ว สามารถเรียกใช้ Google Service ต่างๆได้มากมาย รวมถึง Google Sheets เพื่อสร้าง เมนูพิเศษ หรือ Macro เพื่อให้การทำงานที่ทำหลายๆขั้นตอนลดลงเหลือเพียงแค่คลิกเดียว อีกทั้งยังสามารถตั้งเวลาให้ทำงานอัตโนมัติ หรือ ตั้ง Trigger เพื่อให้ทำงานเมื่อเกิด Action ต่างๆได้อีกด้วย

    Google Apps Script มี 3 ชนิด ได้แค่ Standalone, Bound to Google Apps และ Web App ซึ่งจะสามารถใช้งานร่วมกับ Google Sites ได้อีกด้วย (Sites Gadget) รายละเอียดสามารถอ่านเพิ่มเติมได้ที่ Google Apps Script

    ในที่นี้ จะแสดงตัวอย่างการประยุกต์ใช้ Google Apps Script แบบ Standalone เพื่อพัฒนาให้ Google Sheets ทำหน้าที่เป็นฐานข้อมูล และจะนำไปสู่การต่อยอดเป็น วิธีการใช้ Google Sheets เป็นระบบเฝ้าระวังเว็บไซต์ (Website Monitoring) จากภายนอกองค์กร เพื่อตรวจสอบระยะเวลาในการตอบสนอง ( Response Time) ของเว็บไซต์ ได้อีกด้วย

    วิธีการใช้งาน Google Apps Script แบบ Standalone

    1. ใน Google Drive คลิก New > More > Connect more apps
    1. ในชื่อ search ใส่คำว่า script แล้วกด Enter
      จะพบ Google Apps Script แล้วกดปุ่ม Connect
    2. จากนั้น ใน Google Drive ให้คลิกที่ New > More > Google Apps Script
    3. จากนั้นให้คลิก Close ได้เลย
    4. จะได้พื้นที่โปรเจค (Project) ในการพัฒนา Google Apps Script โดยในแต่ละโปรเจคจะประกอบไปด้วยหลายๆไฟล์ Google Apps Script ได้

    ในการพัฒนา Google Apps Script นั้น จะต้องเขียนในรูปแบบของฟังก์ชั่น (Function) เพื่อให้สะดวกในการใช้งานต่างๆ

    ตัวอย่างเช่น มี Google Sheets อยู่ใน Google Drive ดังภาพ

    มีรายละเอียดดังนี้

    1. ชื่อของ SpreadSheet คือ “ฐานข้อมูลของฉัน”
    2. ประกอบไปด้วย Sheet ชื่อ “Sheet1” และ “Log”
    3. มี URL คือ
      https://docs.google.com/a/psu.ac.th/spreadsheets/d/1HJmyqiBYC_AEATmdUWakLgHFyYGqSqeqSA8xEw-8o-c/edit

    ต่อไปเป็นขั้นตอนการเขียน Google Apps Script เพื่อติดต่อกับ Google Sheet ข้างต้น เพื่อเขียนข้อมูลลงไป โดยตั้งชื่อโปรเจคนี้ว่า ProjectMyDB ตั้งชื่อไฟล์ว่า SheetDB.gs และตั้งชื่อฟังก์ชั่น “editSheet” ดังภาพ

    ขั้นตอนการทำงานของฟังก์ชั่น editSheet

    1. สร้างตัวแปร ss รับค่าจากการเปิด SpreadSheet จาก URL ข้างต้นด้วยคำสั่ง
      var ss = SpreadsheetApp.openByUrl('https://docs.google.com/a/psu.ac.th/spreadsheets/d/1HJmyqiBYC_AEATmdUWakLgHFyYGqSqeqSA8xEw-8o-c/edit');
    1. สั่งให้ SpreadSheet ดังกล่าว Active ด้วยคำสั่ง
      SpreadsheetApp.setActiveSpreadsheet(ss);

    1. เนื่องจากในแต่ละ SpreadSheet ประกอบด้วยหลาย Sheet จึงต้องระบุว่า จะทำงานกับ Active Sheet ชื่อ “Sheet1” ด้วยคำสั่ง
      SpreadsheetApp.setActiveSheet(ss.getSheetByName("Sheet1"));

    1. สร้างตัวแปร activeSheet เพื่อกำหนดว่ากำลังทำงาน Active Sheet ด้วยคำสั่ง
      var activeSheet=ss.getActiveSheet();

    1. เมื่อต้องการเขียนค่า “Hello World” ลงใน Active Sheet ที่ Cell “C3” ใช้คำสั่ง
      activeSheet.getRange("C3").setValue("Hello World");

    1. หากต้องการเขียนค่าทีละหลายๆ Cell หรือเป็น Range ต้องสร้างข้อมูลชนิด Array 2 มิติขึ้นมา แล้วจึงเขียนค่าลงไป กรณีต้องการใส่ค่าในช่วง “A1:C1” ใช้คำสั่ง
      var values =[  ["คณกรณ์","หอศิริธรรม","'3720024"]  ];
      activeSheet.getRange("A1:C1").setValues(values);

    1. หากต้องการเขียนค่าในช่วง “A2:A4” ใช้คำสั่ง
      values = [ ["เกรียงไกร"],["หนูทองคำ"],["'4220020"] ];
      activeSheet.getRange("A2:A4").setValues(values);

    1. เมื่อจะเก็บข้อมูลจริงๆ วิธีการข้างต้นจะไม่สะดวก เพราะจะต้องทราบว่าแถวสุดท้ายแล้วเพิ่มค่าแถวไปทีละหนึ่ง ซึ่งสามารถใช้วิธีการ Append Row กล่าวคือเขียนค่าลงไปในแถวถัดจากแถวล่าสุดที่มีข้อมูลได้ ในตัวอย่างนี้ จะสลับไปใช้ Sheet ชื่อ “Log” แล้วใส่ค่าลงไปด้วยคำสั่ง
      SpreadsheetApp.setActiveSheet(ss.getSheetByName("Log"));
      activeSheet=ss.getActiveSheet();
      var timestamp = new Date();
      activeSheet.appendRow([timestamp, 200 , 300]);
      timestamp = new Date();
      activeSheet.appendRow([timestamp, 200 , 456]);

    จากนั้น Save ข้อมูล แล้วสั่ง Run โดยเลือกฟังก์ชั่นชื่อ editSheet ดังภาพ

    ในการใช้งานครั้งแรก จะปรากฏหน้าต่าง Consent ขึ้นมาเพื่อขอสิทธิ์ในการเข้าใช้ไฟล์

    ผลที่ได้จากการทำงานคือ

    และ

    จะเห็นได้ว่าสามารถใช้ Google Apps Script เพื่อเขียนค่าใน Google Sheets เพื่อเป็นฐานข้อมูลได้ และสามารถประยุกต์ใช้งานอื่นๆได้อีกมากมาย

  • วิธีดูหนังแบบส่วนตัวบนเครื่องบิน

    คุณเคยเจอปัญหาเหล่านี้ไม๊ ?

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

    ปัญหาเหล่านี้จะหมดไป เมื่อใช้ เคสแบบฝาพับข้าง (ดังภาพ) เพียงแค่เปิดคลิปที่ต้องการดูไว้ เสียงหูฟังให้พร้อม

    IMG_20140906_181300.jpg

     แล้วก็ แง้มโต๊ะหน้าที่นั่งเล็กน้อย สอดฝาพับของเคส เข้าไประหว่างเบาะข้างหน้ากับโต๊ะ แล้วล็อคโต๊ะให้สนิท

     IMG_20140906_181421.jpg

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

    IMG_20140906_181438.jpg

     ลองดู 😉

  • เทคนิคการใช้ vi

    1. เปิด 2 ไฟล์พร้อมกัน แยกแบบแนวตั้ง
    vi test.php vi-1

    กด Esc : vsp function.inc.php
    จะได้ผลอย่างนี้

    vi-2

    คำสั่งที่น่ารู้
    Ctrl+w w สลับระหว่างหน้าจอ
    Ctrl+w q ปิดไฟล์
    Ctrl+w v เปิดไฟล์เดียวกันที่ยาวมาก ต้องการด้านนึงดูหัวไฟล์ อีกด้านนึงดูท้ายไฟล์

    2. หากต้องการเลื่อน Code หลายๆบรรทัด ไปทางขวามือ 5 Space
    Ctrl + V แล้ว เลือกบรรทัดที่ต้องการ จากนั้น
    Shift + I แล้ว เคาะ Space Bar 5 ครั้ง จากนั้น
    แล้วกดปุ่ม Esc

  • GAFE#002 วิธีแสดงอีเมลที่ยังไม่ได้อ่าน ไว้บนสุดทุกครั้ง

    การใช้งาน GAFE Email หรือ Gmail ก็ตาม วิธีที่จะแสดงเฉพาะ จดหมายที่ยังไม่ได้อ่าน (Unread) มี 3 วิธี

    1. ในช่อง Search ใส่คำว่า label:unread แล้วกดปุ่ม Enter

    2. ไป Gear > Setting > Inbox
    แล้วเปลี่ยนจาก Inbox type: Default
    เป็น Inbox type: Unread first
    แล้วกดปุ่ม Save Changes

    ผลที่ได้

    3. คลิก Dropdown ด้านข้าง Inbox

    และ สุดท้าย วิธีเลือกเฉพาะอีเมลที่ยังไม่ได้อ่าน ทำดังภาพ

    ผลที่ได้

    จบ

  • GAFE#001 Google Apps กับ Gmail สามารถรวม Account กันได้หรือไม่

    ต่อไปนี้ GAFE จะเป็นคำย่อของ Google Apps For Education

    ก่อนที่เราจะก้าวสู่ Hybrid Cloud ที่วางแผนกันมานาน หลังจากได้เริ่มต้นลองใช้งาน ก็จะมีคำถามที่มีบ่อยมาก คือ “ตอนนี้มี Gmail อยู่แล้ว จะทำอย่างไรให้รวมกับ GAFE ของหมาวิทยาลัยได้ไม๊”

    คาดว่า คำว่า “รวม” กันนี้ หมายความว่า อยากได้ พื้นที่ email ของทั้ง Gmail 15 GB และ GAFE 30 GB รวมกัน คงต้องตอบว่า ไม่ได้ เพราะ Google คงไม่ได้เปิดให้ทำเช่นนั้น  มันมีเหตุผล …

    ที่ผ่านมา Hotmail.com ซึ่งเปลี่ยนมาเป็น Outlook.com ก็เคยพยายามทำแบบว่า Linked Account ตั้งแต่ปี 2006 แต่ไม่สำเร็จดีนัก  และได้ยกเลิกไปในเวลาต่อมา (ดูที่นี่เพิ่มเติม) แต่สิ่งที่ Microsoft ทำคือ ให้พื้นที่ขนาดใหญ่ แล้ว ดึง email จาก หลายๆ Account มารวมที่เดียวกัน หรือไม่ก็ใช้วิธีส่ง email ออกไปในนามอีก Account ซึ่งเป็นแนวคิดเดียวกันทั้ง Outlook.com และ Office365 มาดูวิธีการกัน

    theway-outlook

    ปัญหาคือ เรื่องงาน กับ เรื่องส่วนตัวก็จะปะปนกัน และในบางครั้ง เราอาจจะใช้ Email ของงาน ไปสมัครอะไรบางอย่างที่เป็นเรื่องส่วนตัวซึ่ง ในบางเรื่องก็อาจจะไม่เหมาะสม หรือในทางกับกัน การใช้ Email Address ที่เป็นส่วนตัว มาตอบหรือใช้งานในเรื่องงาน ก็เป็นเรื่องไม่เหมาะสม ทั้งเรื่องความ Professional และ เรื่องเกี่ยวกับความปลอดภัย การแสดงตัวตนอีกด้วย

    เป็นเรื่องของ Culture Change Management ที่เราในฐานะบุคลากร และการสื่อสารเรื่องนี้ไปยังอาจารย์ และนักศึกษาให้เข้าใจด้วย

    คราวนี้ มาดูสิ่งที่ Google ทำ คือ ทำให้สลับ Account ได้โดยไร้รอยต่อ แค่ Add Account

    gafe-gmail2

     

    เท่านี้ เราก็สามารถแยกเรื่องส่วนตัว และ่งานออกจากกัน และทั้งสอง Account สามารถเปิดใช้งานพร้อมกันได้ เปิดใน 2 Tab ก็ได้

    ยังมี Feature ของ GAFE อีกมากมายในระบบ Enterprise ที่ยังไม่ได้อธิบาย เช่น การที่ผู้บริหารสามารถ Delegate ให้เลขา อ่านและตอบ Email และ Calendar แทนตนเองได้ โดยไม่ต้องบอกรหัสผ่าน หรือ การ Sharing แบบกลุ่มแปลกๆ ที่ใน Gmail ทั่วไปไม่มี

    รอพบกันตอนต่อๆไปนะ (อาจจะมาในรูปแบบ Youtube อิอิ)

    ขอคุณครับ

  • วิธีใช้ฟอนต์ TH SarabanPSK บน Google Drive

    ในที่สุด Google ประเทศไทยก็เอาฟอนต์ราชการขึ้นไปให้ใช้ได้สำเร็จ ต่อจากนี้ เราก็สามารถลดการพึ่งพิง Microsoft Office ซึ่งผูกขาดมายาวนานได้ “บ้าง” แล้ว เพราะที่ผ่านมา เอกสาร .doc และ .docx ไม่สามารถใช้งานกับ Office Suite ค่ายอื่นได้อย่างราบรื่นเพราะคนไทยเราไม่ใช้ฟอนต์เดียวกัน ยังไปใช้ Angsana, Cordia ซึ่งเป็นลิขสิทธิ์ของ Microsoft ทำให้รูปแบบเอกสารที่จัดด้วย Microsoft Office จะเพี้ยนๆเมื่อไปเปิดกับค่ายอื่นๆ

    ตอนนี้ก็เหลือแต่ คนไทยเรานี่แหล่ะ ที่ต้องรณรงค์ใช้ฟอนต์แห่งชาติ เพื่อให้สามารถแลกเปลี่ยนกันได้อย่างเสรี

    สำหรับ Google Drive เองก็มี Office Suite ซึ่งทำงานได้บนเว็บโดยไม่ต้องติดตั้งอะไรในเครื่อง จากการทดลองใช้มายาวนาน พบว่า ถ้าเราเอาคำว่า “พอเพียง” ไว้ในใจได้แล้ว เครื่องมือชิ้นนี้ ดีเกินพอสำหรับงานสำนักงานทั่วไป และหากใครต้องการซื้อความสามารถเพิ่มก็สามารถซื้อแยกได้ ไม่ต้องถูกยัดเยียดสิ่งที่ไม่จำเป็นต้องใช้ มาในราคาซอฟต์แวร์ที่แพงลิ่ว หรือ สามารถพัฒนาเพิ่มเติมเองได้ผ่าน Add-Ons ครับ

    สำหรับการใช้งานภาษาไทย และฟอนต์ไทย TH SarabanPSK ก็ทำได้ง่ายโดย

    1. สร้าง หรือ เปิดเอกสาร Google Docs
    2. ไปที่เมนู File > Language แล้วเลื่อนมาด้านล่างๆ จะพบคำว่า ไทย
    Google Docs File Menu
    3. จากนั้น ฟอนต์ TH SarabanPSK ก็จะมีให้ใช้งานทันทีครับ
    TH SarabanPSK
    4. การเก็บไฟล์ในรูปแบบ Google Docs ทาง Google จะไม่คิดพื้นที่จัดเก็บครับ แสดงว่าเราสร้างได้มากเท่าที่ต้องการ แต่ถ้าเอา .docx ไปใส่ ก็จะกินเนื้อที่ที่มีให้ครับ

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีตรวจสอบเว็บไซต์ที่โดน Hack #15

    เทคนิคนี้ ใช้ผ่าน Internet Information Services (IIS) Manager โดยการแก้ไข Request Filtering ในระดับ Web Server เลย โดยดำเนินการตามวิธีการต่อไปนี้

    1. เรียก Command ด้วย การกดปุ่ม Windows + R แล้ว พิมพ์ inetmgr แล้วกดปุ่ม Enter
    2. คลิกเว็บเซิร์ฟเวอร์ของเครื่องที่ต้องการใน Connection Tab (ตัวอย่างในภาพ คลิกที่ WUNCAWEBSEC)
    3. ต่อไป ภายใต้หัวข้อ IIS ให้ Double-Click ที่ Request Filtering
    4. คลิกที่ Rules tab
    5. เพิ่มกฏสำหรับ JCE Bot
      ซึ่ง ไม่ต้องการให้ PHP ทำงานภายใต้ URL ซึ่งมีข้อความว่า “images/stories”
      โดย ไปที่ Action ด้านขวามือ แล้ว คลิกที่ Add Filtering Rules …
      แล้วใส่ข้อมูลตามภาพ แล้วคลิกปุ่ม OK

    1. เพิ่มกฏสำหรับ Upload โฟลเดอร์
      ซึ่ง ไม่ต้องการให้ PHP ทำงานภายใต้ URL ซึ่งมีข้อความว่า “upload”
      โดย ไปที่ Action ด้านขวามือ แล้ว คลิกที่ Add Filtering Rules …
      แล้วใส่ข้อมูลตามภาพ แล้วคลิกปุ่ม OK
    2. ผลที่ได้ใน Rules tab

    ทดสอบผลการทำงาน

    สมมุติเดิมโดนวางไฟล์ Backdoor ไว้ที่

    http://localhost/corin/images/stories/backdoor.php

    แต่เมื่อตั้ง Rules ดังกล่าวแล้ว จะทำให้ Hacker ไม่สามารถเรียกใช้งาน PHP ที่วางไว้ใน images/stories ได้ โดยจะได้ Error เช่นนี้

    วิธีนี้มีข้อดีคือ สามารถป้องกันการใช้งาน PHP ใน images/stories (และใน upload โฟลเดอร์) แต่ยังสามารถเรียกไฟล์ภาพและไฟล์อื่นๆได้ตามปรกติ เช่น

    http://localhost/corin/images/stories/clownspin.gif

    ลองใช้งานดูครับ 😉