PHP

Home

PHP Tutorial
Knowledge Developer Database Internet Resource
Cookie และ Session
1. Cookie
2. Session
3. ความปลอดภัยของ Session
 
การสร้างโปรแกรมประยุกต์เว็บ
1. Cookie และ Session
2. ระบบการรับรองของ PHP และ MySQL
3. XML และ XHTML
4. PEAR
 
PHP
PHP เบื้องต้น
การสร้างโปรแกรมประยุกต์เว็บ
PHP ระดับสูง
 
Internet
PHP
SSI
HTML
AJAX
 
การสร้างโปรแกรมประยุกต์เว็บ > Cookie และ Session

ความปลอดภัยของ Session

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

ปัจจัยสำคัญของความปลอดภัย session คือ session id เนื่องจากแฮ๊คเกอร์สามารถนำ session id ไปใช้ในการเข้าถึงโปรแกรมประยุกต์เว็บ

การเก็บ Session ID

แฮ๊คเกอร์มีความพยายามเก็บ session id เพื่อเข้าสีระบบ การหยุดมี 2 วิธี

  1. ตรวจสอบ session.use_only_cookies เป็น on ถ้ากรณีนี้ PHP จะปฏิเสธการทำงานกับ session id ที่มีพื้นฐานมาจาก URL
  2. เมื่อเริ่มต้น session การหุ้มข้อมูล session ด้วยตัวแปรชี้ถึงการสร้าง session แลการเก็บ หลังจากนั้นสามารถเรียก session_regenerate_id ที่กำหนดให้ session ที่มีอยู่ด้วย session id ใหม่

<?php

session_start()
if (!isset($_SESSION['create']))
{

session_regenerate_id();
$_SESSION['create'] = TRUE;

}

?>

จำกัดความเสียหายจากการผ่อนปรน Session ID

เนื่องจากไม่สามารถประกันว่าแฮ๊คเกอร์ไม่สามารถรับ session id ดังนั้นต้องพยายามทำให้ความยากลำบากให้กับแฮ๊คเกอร์ ในการตรวจสอบ IP address มีอุปสรรคเพราะมีการใช้ IP address สาธารณะร่วมกัน รวมถึง proxy server เป็นสาเหตุให้ IP address เปลี่ยนระหว่างแต่ละคำขอ

แต่ส่วนหัว HTTP User-Agent สะท้อน browser และระบบปฏิบัติการที่สามารถใช้เก็บการเข้าถึงเว็บด้วยเพิ่มข้อความกับข้อความของส่วนหัวนี้ด้วยการแฮช (hash) โดยเข้ารหัสด้วย md5 มีผลให้ User-Agent ไม่สามารถลอกเลียนได้ง่าย แล้วนำข้อมูลเข้ารหัสนี้ส่งไปกับข้อมูล session ให้กับผู้ใช้เพื่อตรวจสอบในครั้งต่อไป

<?php

define('AGENT', 'WEBAPP');
session_start();

if(!isset($_SESSION['user_agent']))
{

$_SESSION['user_agent'] = md5($_SERVER['HTTP_USER_AGENT'].AGENT);

}
else
{

// ถ้าข้อมูล user agent ใน session ไม่ตรงกับการเข้ารหัส
if ($_SESSION['user_agent'] != md5($_SERVER['HTTP_USER_AGENT'].AGENT))
{

// ความปลอดภัยอาจถูกละเมิด ให้เข้าสู่ระบบใหม่

}


?>

 


  

สงวนลิขสิทธิ์ (C) widebase / Julaphak