ขอเรียนสอบถามเรื่องการเข้ารหัส URL เพื่อป้องกันการเข้า ถึง Part Root File ครับ
เป็นลิงค์ประมาณนี้หรือป่าวครับ
http://www.test.ac.th/ilovethaicreate/index.php?page=report&jop=program
(ไม่ใช้หน้าแรกนะครับ)
Date :
2018-04-27 11:30:32
By :
nobetaking
ให้ส่งค่าแทนที่อยู่ลิงค์ครับ
แล้วนำค่าที่ส่งไปทำตัว include
ประมาณนี้ครับ
ปล.มันมีวิธีที่ทำให้ปลอยภัยกว่านี้อยู่ครับ
รอผู้รู้มาตอบอีกที
Code (PHP)
<?php
if (empty($page) or $page == "main") {
include("main.php");
} else if ($page == "qa_data") {
if (empty($sub))
include("core_result.php");
else if ($sub == "core_result")
include("core_result.php");
else if ($sub == "agency_result")
include("agency_result.php");
else if ($sub == "core_imp")
include("core_imp.php");
else if ($sub == "agency_imp")
include("agency_imp.php");
}
?>
Date :
2018-04-27 11:37:04
By :
nobetaking
ขอบคุณครับ
Date :
2018-04-27 14:27:43
By :
kidscirenser
ใช้ nonce (number once) ตัว nonce นี้นอกจากใช้เรียกจากคลิกลิ้งค์หรือฟอร์มเท่านั้นแล้ว ยังป้องกัน CSRF attack ได้ด้วย.
หลักการง่ายๆคือ การสร้าง nonce ให้กำหนด session เช่น $_SESSION['mylink1'] = md5(time()); โดยมีค่าเป็นแบบสุ่มๆ อาจใช้วันที่เวลาก็ได้ เพื่อไม่ให้ซ้ำในการ reload แต่ละครั้ง แล้วใส่ $_SESSION['mylink1'] ในลิ้งค์ เช่น page.php?nonce=xxxxxxxxxxx
หน้าที่ถูกเรียกไปก็ให้เช็ค $_REQUEST['nonce'] โดยถ้ามันตรงกับ $_REQUEST['nonce'] === $_SESSION['mylink1'] ก็คือผ่าน ถ้าไม่ใช่แสดงว่าเรียกลิ้งค์ตรง ไม่ให้ผ่าน.
หลักการง่ายๆ ลองเอาไปประยุคเพิ่มเติมเอาเองนะครับ เช่น ใส่เวลาที่ใช้ได้ อาจให้ nonce หนึ่งมีอายุแค่ 15 นาทีอะไรงี้ก็ได้. หรือจะเปลี่ยนจาก md5 เป็น password hash ของ PHP 5.5+ ก็ได้ มันจะได้สุ่มยากหน่อย.
ประวัติการแก้ไข 2018-04-27 23:06:30
Date :
2018-04-27 23:04:21
By :
mr.v
ใช้ CI Framework เขียนดิ่ จุกจิกหมดไปดีนะ
Date :
2018-04-30 14:20:25
By :
apisitp
Load balance : Server 01