หนังสือไทยเกือบทั้งหมดก็ว่าได้สอนมาครับ ลองเข้าเว็บบอร์ดเกี่ยวกับ programming ของไทยจะเจอโค๊ดคล้ายๆแบบนี้มากมายมหาศาล
ปล ไม่ว่าจะ include หรือ require ถ้าเขาอ้างจากตัวแปรมันก็ไม่ให้ผลต่างกันเลย และ include กับ require ให้ผลต่างกันในเรื่องความสำคัญของไฟล์ที่อ้างถึง
icez
42
include ถ้าไม่เจอไฟล์จะไม่ error ครับ เป็นแค่ notice ธรรมดา
แต่ require ถ้าไม่เจอไฟล์จะหยุดการทำงานทันที
แต่การใช้งาน รูรั่วหรืออะไรพวกนี้ก็เหมือนกันครับ
ซึ่งปกติ… ผมก็ไม่เคยใช้ include ตัวแปรหรอก - -’
นี่คือวิธีที่ปลอดภัยที่สุดสำหรับการ include ค่าที่รับจากตัวแปรครับ
<?php
$page = $_GET["page"];
switch ($page) {
case 'main':
require("system/main.php");
break;
case 'other':
require("system/other.php");
break;
default:
require("system/error.php");
break;
}
อืม ผมหมายถึง กรอง quote ? php script tag อื่นๆที่ไม่ต้องการ และ url ออกจากค่าตัวแปรอะครับ
escape มันไม่ได้กรองออก
มันมีเช่น filter text ,อะไรพวกนั้นอะครับ (เห็นมาจากในหลายๆ coding ที่ไม่ใช่ opensource)
ตอนนี้กลัวเหมือนกัน ใช้แล้วเปิดเผยเด๋วคนจับไต๋ได้จบเลย
ผมก็ไม่ค่อยคล่องครับ ได้แต่ลอกเขามา
kke
44
อันนี้เป็นตัวอย่างที่เห็นได้ชัดเจนเลยครับ ว่าการเปิด register_global on สามารถสร้างอันตรายได้ง่ายๆ
กับ code ที่คิดว่าเขียนไว้ดีแล้ว แต่จริงๆแล้วยังป้องกันไม่เพียงพอ ก็สามารถโดนได้ง่ายๆ โดยเฉพาะที่เป็น opensource
ดังนั้นตามที่บอกไปคือควรตั้ง register_global off ไว้ให้หมด แล้วไปไล่เปิดเป็น on เฉพาะเว็บที่ต้องการใช้จริงๆ
ton1
45
ทำแบบนี้ก็ตายกันพอดีครับ โปรแกรมบางอันเขียนไว้ไม่รองรับ register_globals = Off ครับ
ems
46
[quote author=212cafe.com link=topic=11280.msg109494#msg109494 date=1210559546]
ทำแบบนี้ก็ตายกันพอดีครับ โปรแกรมบางอันเขียนไว้ไม่รองรับ register_globals = Off ครับ
kke
47
[quote author=212cafe.com link=topic=11280.msg109494#msg109494 date=1210559546]
ทำแบบนี้ก็ตายกันพอดีครับ โปรแกรมบางอันเขียนไว้ไม่รองรับ register_globals = Off ครับ
ton1
48
ผมหมายถึงแก้โปรแกรมครับ ไม่ใช่แก้ค่า On/Off
kke
49
[quote author=212cafe.com link=topic=11280.msg109505#msg109505 date=1210562397]
ผมหมายถึงแก้โปรแกรมครับ ไม่ใช่แก้ค่า On/Off
ton1
50
[quote author=kke link=topic=11280.msg109513#msg109513 date=1210564909]
อา อ่านแล้วเข้าใจผิดไป ขออภัย
kke
51
:smash: :smash: :smash:
ทุบกันไปทุบกันมา หัวโนหมดแล้วเนี่ย
ต้องสั่ง shutdown -h now ก่อนครับ
ปลอดภัยแน่นอน เว้นแต่จะโดนโขมยเครื่อง อิอิ
ninep
53
โหยย มันมากๆ ขอบบอกต่อเลยครับ ขอรับความรู้ด้วยคน ขอบคุณครับ
เข้ามากอบโกย! เอ๊ย!!! ไม่ใช่ครับ เข้ามาเก็บเอาความรู้ :wub:
KoreA
56
โอ้วความรู้ใหม่ ขอบคุณครับ
เพิ่งตามอ่าน ครับ แล้ว
open_basedir ของ ตั้งค่ายังไงครับ
mean
58
แบบนี้ครับ ง่ายๆ แต่ ปลอดภัย ระดับนึงครับ
ป้องกัน การเรียก inc/page1.php โดยไม่ได้รับอนุญาติ
จะตรวจสอบจริงๆ ใช้ ดีกว่าครับ
วิธีด้านล่างนี้ไม่แนะนำนะครับ และเห็นหลายๆ คนทำกัน
เพราะหากมีคนเรียก inc/page1.php แล้วรู้ตัวแปล แล้วส่งค่า get ไปตาม url ก็เรียก inc/page1.php เปิดดูได้เช่นกัน
<?
$lock = “lockkey”;
$ver = “lockkey”;
if($_GET[‘page’] ==‘chat’){
[quote author=mean link=topic=11280.msg165691#msg165691 date=1234982605]
แบบนี้ครับ ปลอดภัยมากขึ้นครับ
if($_GET[‘page’] ==‘chat’){
$lock = "lockkey";
$ver = "lockkey";
อันนี้ไว้เชคไฟล์ที่อยู่ ข้างในเว็บของเราจริงๆใช่ไหมครับ
งั้นถ้าเป็นพวก open source
ก็กำหนด คีย์ ของตัวเองไปเลย ก็น่าจะเพิ่มความปลอดภัยได้อีก ใช่ไปครับ
เหมือนเทียบคีย์ พวก ไวเลส อะไรอย่างนี้
แล้วถ้าเจอ คนมัน บลูซฟอซ ล่ะทำอย่างไง(รึว่าไม่เกี่ยวกัน)
0