แนะนำ การเขียนเว็บแอพให้มีประสิทธิภาพหน่อย PHP JAVASCRIPT
input filter กรองข้อมูลก่อนเสมอ อย่าเชื่อถือข้อมูลใดๆ โดยเฉพาะข้อมูลจากภายนอกเช่น form และตัวแปร super global ต่างๆ รวมทั้ง $_SERVER ก็เชื่อถือไม่ได้ว่าจะเป็นข้อมูลที่ปลอดภัย
output escape ก่อนจะส่งต่อให้กับ destination เช่น database หรือ web browser ฯลฯ จะต้อง escape ข้อมูลที่จะส่งต่อให้เหมาะสมกับสื่อตัวนั้นๆ เพื่อให้มั่นใจได้ว่า output ที่ส่งต่อไปนั้นจะไม่ทำให้เกิด action ที่เป็นกระทบกับผู้ใช้ระบบหรือตัวข้อมูลหรือไฟล์ของระบบ
เช่นการป้องกัน sql injection ป้องกันการแทรก javascript โดยการใช้ function escape ที่เหมาะสมเช่น mysql_real_escape_string, htmlspecialchars
ในการตรวจสอบข้อมูลทั้งสองฝั่ง ตรวจสอบข้อมูลที่ฝั่ง server เพื่อความปลอดภัยของระบบ ตรวจสอบข้อมูลฝั่ง client เพื่อความสะดวกของผู้ใช้
ก่อน upload ให้ตรวจสอบ file extension ก่อนจะบันทึกไฟล์ เพราะโดยปกติถ้าไม่กรองข้อมูลชื่อไฟล์ก่อน user สามารถ upload ไฟล์ php หรือ script ต่างๆ ซึ่งสามารถทำลายระบบได้ด้วย
เราต้องละเอียดมากในการเขียน function filter และ escape ดังกล่าว ที่จะสามารถนำมาใช้งานได้หลายๆ ครั้ง
ซึ่ง function ต่างๆ เหล่านี้จะช่วยให้โค้ดสั้นขึ้นแต่มีประสิทธิภาพมากขึ้น
ศึกษาหาความรู้เพิ่มเติมอยู่เสมอ.. เทคนิคการทำลายระบบทำได้ง่ายและมีหลากหลายมากครับ
เราต้องมีความรู้เหล่านี้ เพื่อจะรู้ว่าจะป้องกันระบบให้มีความปลอดภัยได้อย่างไร
Date :
2012-03-01 22:58:56
By :
num
แค่ใส่คำสั่ง javascript ไปตรงๆ เช่น tag <script>
หรือไม่ก็ onclick onmouseover ฯลฯ ใน ลงในช่องกรอกข้อมูลต่างๆ
ถ้าเค้าไม่ได้กันไว้ก็ทำงานได้ทันที
เขียนป้องกันโดยใช้ php function htmlspecialchars เพื่อ escape ตัวอักษรที่เป็น html เช่้น < > ออกไป
<?php
$rs = mysql_query('select title from tb1');
$r = mysql_fetch_assoc($rs);
echo htmlspecialchars($r['test']);
?>
Date :
2012-03-02 08:55:10
By :
num
Load balance : Server 01