การทำเวบในปัจจุบันนี้ความปลอดภัยของระบบเป็นสิ่งที่เราต้องให้ความสำคัญอย่างมากเลยทีเดียวในปัจจุบันเพราะไม่เพียงเราจะเขียนโปรแกรมได้เท่านั้น แต่ต้องอาศัยประสบการณ์ในการทำงานหรือการศึกษาค้นคว้าให้ได้มาซึ่ง Code ที่มีประสิทธิภาพซึ่ง Code อาจทำงานได้เหมือนกันแต่จะเขียนอย่างไรให้ Code ที่เราเขียนนั้นปลอดภัยจากเหล่า Hacker ทั้งหลายได้
วันนี้ก็เลยยกประเด่นนี้ศึกษากันดีกว่าเพราะตัวเองถือว่ามีประสบการค่อนข้างน้อยเพราะรู้ตัวดีว่า Coding ทีไรเจอช่องโหว่ที่ตัวเองทำไว้ทุกทีเลยซิ เลยตั้งตระหนักไว้เสมอเวลาเขียน Code โปรแกรมในแต่ละครั้งนั้นพยายามให้มีช่องโหว่น้อยที่สุดเท่าที่จะเท่าได้
Javascript ถือเป็นภาษาที่มีความยืดหยุ่นสูงมากเพราะสามารถเข้าถึงผู้ใช้ในฝั่ง Client ได้อย่างทันทีทันใดข้อเสียของมันก็มีเยอะเพราะมันเป็นเครื่องมือของเหล่า Hacker ทั้งหลายในการเจาะเข้าในระบบของเราดังนั้นเราควรระลึกอยู่เสมอว่า ข้อมูล Input ที่เราจะเรามานั้นควรมีการตรวจสอบทั้งในฝั่ง Client และฝั่ง Server เช่น การ Check valid Form หน้า ลงทะเบียน เป็นต้น ควรมีการตรวจสอบข้อมูลที่จะเก็บ ตรวจสอบ address ที่ส่งของมูลมาควรมีการ Check HTTP_REFERER ว่ามาจากSite ของเราจริง หลีกเลี่ยงการใช้Hidden field เพราะสามารถใช้ xss script หรือเรียกว่า Cross Site Scriptปรับเปลียนค่าที่เราไม่ต้องการได้เช่น
Html Code
<form action="server_script.php" method="post">
<hidden name="email" card_number value=email@domain.comtype="hidden" >
<input type="submit" value="Submit" >
</form>
สามารถ ใช้ javascript เปลี่ยนค่า แล้วทำการส่งค่าที่เราไม่ต้องการไปยัง server ประมวลผลได้
พิมพ์ที่ Address บนหน้าจอ Browser
javascript:void(document.forms[0].email.value="hacker@domain.com");
ol('document.forms[0].email.value="domain@domain.com"server_script.php');
การ ขโมยหรือเปลี่ยนแปลงค่า cookie ก็สามารถทำได้โดยใช้javascript
javascript:alert(document.cookie);
การเปลี่ยนแปลงค่าถายใน Cookie
javascript:('document.cookie="ชื่อตัวแปล=ค่าที่จะเปลี่ยน"');aert(document.cookie);
การ hack ผ่านช่องทางของฐานข้อมูลโดยใช้ความรู้ของภาษา sql หรือเรียกการโจมตีแบบนี้ว่า Sql Injection เช่น
sqlstring="Select * from Member Where username='admin' and password='pass';"
สามารถแทน pass ด้วย xxx' Or 'x'='x เพื่อทำให้เงื่อนไขนี้เป็นจริง ก็สามารถเข้าระบบได้
การ hack ผ่านช่องทาง input ไม่ควรรับข้อมูล ที่เป็น Script หรือ html code ควรใช้ function ของแต่ละภาษากรั่นกรองอีกครั้ง เช่น
Php ใช้ htmlentities()ใน asp หรือ asp.net ใช้ htmlencode()
ถ้าพูดถึงเรื่องนี้ยาวครับ กับความรู้แค่หางอึ่งของผมแค่นี้ไม่พอทัดทานศัตรูซึ่งเป็น
hacker ผู้เชียวชาญได้ครับ ใครมีเพิ่มเติมบอกกล่าวกันบ้างคับ แลกเปลี่ยนประสบการณ์กัน