Archive

Archive for กันยายน, 2006

คนดีดี ทำไหมไม่รัก

กันยายน 28, 2006 1 ความเห็น
ฉันโง่ใช่ไหม ที่งมงายยอมทนอย่างนี้ เป็นคนดีที่เธอไม่แคร์…
ตามใจเธอ ไม่เห็นเธอดูแล มีแต่ทำให้ช้ำใจ อยู่ได้ทุกวัน
ยอมจนลืมศักดิ์ศรี ที่เคยมีมานานแสนนาน
ไม่เข้าใจตัวเองเหมือนกัน…..

ทำอะไรเพื่อเธอได้ทุกอย่าง แต่ว่าเธอไม่ต้องการ
กลับเบื่อด้วยซ้ำ…

* จะรักทำไมให้เจ็บให้ช้ำ รักทำไมให้เหนื่อยให้ล้า
อยู่กันไปก็เปลืองเวลา ก็มีแต่ทุกข์ในใจ
ที่เขาที่ดีๆ ทำไมไม่รัก รักทำไมแต่คนไม่ดี
จะมัวทนอย่างนี้ทำไมๆ อยู่ จะทนเพื่ออะไร มีแต่เสียใจ….

เธอมีดีอะไร ถึงต้องคอยให้ความสำคัญ
ไม่อาจตอบกับใครได้เลย…
พยายามจะมองหาบางอย่าง
แต่ไม่เคยพบสักอย่าง ให้ตอบใครๆ

( * ) ( Solo ) ( * )

จะมัวทนอย่างนี้ทำไมๆ อยู่ จะทนเพื่ออะไร มีแต่เสียใจ

หมวดหมู่:Uncategorized

ตั้งค่า php.ini ให้เป็น register_globals=Off

กันยายน 21, 2006 ใส่ความเห็น
เรื่องเก่าเล่าใหม่ครับ
==========
ตั้งแต่ PHP 4.2.x ขึ้มา หลังติดตั้งแล้ว จะมีค่า Default ของ register_globals เป็น Off
แต่ใน Server ที่ติดตั้ง Controlpanel เพื่อให้บริการ Hosting แล้ว ส่วนใหญ่ ค่า register_globals ในไฟล์ php.ini จะถูกตั้งเป็น on มาเลย
เจอกรณีนี้ทั้ง cPanel และ Ensim ครับ Plesk ยังไม่เคยใช้ แต่เดาว่าน่าจะเป็นด้วย

register_globals เป็น On หรือ Off ถึงจะดี และทำไมถึงต้องเลือกเช่นนั้น

ผมไม่ได้เป็น Programmer นะครับ เลยพอจะบอกได้แค่แบบบ้านๆ ว่า
การตั้งค่า register_globals เป็น On จะเป็นการเปิดโอกาสให้ Hacker สามารถทำการ Execute คำสั่งระยะไกลบน Server ของคุณได้

ข้อมูลที่ไปค้นๆ มาครับ
จาก http://php.deeserver.net

QUOTE
เรื่อง reigister global = off เป็นเรื่องที่สำคัญมากครับ ในเรื่องของ security
อย่างว่า เช่น ถ้าคุณเขียน code แบบนี้
<?
if ($auth == 1) {
$login = 1;
Header (Location : restrict.php)
} else {
echo "Access Denied";
}
ถ้ามีซักคนที่รู้ source code คุณ เขาสามารถ force ตัวแปร $auth ของคุณได้ทันที
เช่น http://localhost/login.php?auth=1 (แบบนี้คือ GET นะครับ)
แค่นี้เขาก็สามารถเข้าสู่ระบบได้ทันที แต่ถ้าเป็นแบบ Off เขาไม่สามารถจะ force ตัวแปรได้เลย
เช่น เราให้ กำหนดให้รับค่าตัวแปร $auth เฉพาะ POST อย่างเดียวไม่รับ GET ก็ จะเขียน
โค๊ดแบบนี้นะครับ
$auth = $_POST[‘auth’];
ตรงนี้ก็จะช่วยป้องกันการ force ตัวแปรได้ สำหรับผมคงอธิบายได้ไม่มากเท่าไหร่ คงต้อง
ไปหาอ่านดูใน http://www.php.net นะครับ

และจาก http://www.expert2you.com

QUOTE
การ set ให้ register_globals เป็น off ทำให้ตัวแปรที่เป็น Environment, Get, Post, Cookies และ Server จะไม่เป็น global variable ตามปกติครับ เช่น แต่ก่อนเราอาจจะเรียกตัวแปร server ที่ชื่อว่า $PHP_SELF ได้เลยโดยอ้าง $PHP_SELF แต่ถ้าเป็น php version 4.2 set register_globals off ต้องอ้างเป็น $_SERVER["PHP_SELF"] ครับ หรือที่มีปัญหากันบ่อยก็เช่น ตัวแปรที่ submit มาจากใน form ก็ต้องอ้างเป็น $_REQUEST["ชื่อตัวแปรที่มาจากใน FORM"] เหมือนกันครับ ซึ่งแต่เดิมเราอาจอ้างชื่อได้เลยโดยตรง ซึ่งถ้าเจออย่างนี้วิธีแก้ง่ายๆ คือ เข้าไปแก้ file php.ini โดยดูตรง register_globals ว่าเป็น off หรือเปล่า ถ้าเป็นให้แก้เป็น on ก็จบครับ แต่ถ้าแก้ไม่ได้ คงต้องเปลี่ยน source code เอาครับ คือบรรทัดไหนที่มีการเรียกตัวแปรพวกนี้ก็ตามไปอ้างให้ถูกให้หมดครับ

ส่วนที่ทำไม php 4.2 เป็นต้นมาเขาถึงแก้ให้เป็นอย่างนี้ ซึ่งทำให้ยุ่งยากเปล่าๆนี่ ก็มีเหตุผลครับ เนื่องจากเขากังวลเกี่ยวกับเรื่อง security ครับ คือถ้าเป็นแบบเดิมนี่ ใครๆก็สามารถส่งตัวแปรมาที่ script ที่จะ execute ได้เลยครับ ซึ่งอาจจะไปทับกับตัวแปรที่เราต้องใช้งานทำให้ตีความผิดและเผลอๆหากเป็นตัวแ ปรที่เกี่ยวกับการ check security ก็อาจจะเป็น break การทำงานของโปรแกรมได้ครับ ดังนั้นเพื่อเป็นแนวทางในการปฏิบัติที่ดี ควรทำตาม default ใหม่ที่เขา set มาให้ครับ

ซึ่งประสบการณ์ตรงของผม เคยโดนมาแล้ว สมัยที่ยังวางเครื่องอยู่ที่ ev1servers ซึ่งมีลูกค้าบางราย ใช้ Script โบราณ ต้องตั้ง register_globals=On
เมื่อใช้งานไปได้ระยะหนึ่ง ก็มี Hacker เข้ามาเจาะที่เวบหนึ่งบนเครื่องเดียวกัน โดยใส่คำสั่ง DoS ไว้ ส่งผลให้เครื่องผมโดน Unplugged ไปโดยทันที

จึงแนะนำว่า ถ้าเป็นไปได้ น่าจะตั้งค่า register_globals=Off ไว้ก่อน น่าจะมีความปลอดภัยเพิ่มในอีกระดับหนึ่ง

การตั้งค่า register_globals=Off บน Server Ensim
ควรทำตั้งแต่เริ่มต้นเลย เพราะ Ensim จะมีระบบ Virtual Private File System ซึ่งในการสร้างเวบไซต์แต่ละครั้ง จะสร้างไฟล์ php.ini ของแต่ละไซต์ขึ้นมาใหม่ด้วย

คุณสามารถแก้ไขได้โดย

Root login
#pico /etc/virtualhosting/templates/apache/etc/php.ini

หาบรรทัดของ register_globals แล้วแก้จาก On เป็น Off
กด Control+X
แล้วกด Enter เพื่อ Save ไฟล์นั้น

แล้วทำแบบเดียวกันนี้อีกครั้ง
#pico /etc/php.ini

เมื่อเสร็จแล้ว ให้ Restart Apache ครับ

หากลูกค้ามีปัญหา ต้องการใช้ Register_globals=On
สามารถแก้ไขเฉพาะเวบได้ โดย
#pico /home/virtual/domain.com/etc/php.ini
แล้วแก้เป็น On

หรือให้ลูกค้าแก้โค้ดเอา ชัวร์สุดครับ
การแก้โค้ดให้ใช้งานกับ php.ini ที่ register_globals=Off
ข้อมูลจาก http://mcu1.psu.ac.th/

QUOTE
ปล่อยให้เป็น register_globals = Off ก็ต้องแก้วิธีการรับข้อมูล เช่น จาก page ที่ 1 ส่งมาเป็น name แบบ post ปกติจะรับโดยใช้ $name แบบนี้จะไม่ได้ ให้แก้ใหม่เป็น รับแบบ $_POST[‘name’] แทนครับ

โดยปรกติแล้ว Script ใหม่ๆ จะรองรับการใช้งาน register_globals=Off กันหมดแล้ว ถ้าลูกค้าไม่ยอมแก้ ก็เตรียมรับมือกับ Hacker ได้เลยครับ

ถ้าข้อมูลผิดพลาด หรือตกหล่น ต้องขออภัยมา ณ ที่นี้ครับ tongue.gif

ในวันที่คุณท้อคุณเป็นคนแบบไหน

กันยายน 16, 2006 ใส่ความเห็น
…….ในวันที่คุณท้อคุณเป็นคนแบบไหน…………….
วันหนึ่งลูกสาวพร่ำบ่นถึงชีวิตอันแสนรำเค็ญให้พ่อฟังว่า . . .
เธอกำลังรู้สึกอับจนปัญญาที่จะจัดการกับชีวิตและปรารถนาที่จะยอมแพ้พ่าย ด้วยรู้สึกเหน็ดเหนื่อยจากการต่อสู้และการแข่งขัน
ประหนึ่งว่าเมื่อสางปัญหาหนึ่งเสร็จสิ้น อีกปัญหาหนึ่งก็ก้าวเข้ามาโดยไม่ได้รับเชิญ

ผู้เป็นพ่อซึ่งเป็นพ่อครัวจึงเดินนำเธอเข้าไปในครัว จัดแจงต้มน้ำในหม้อ 3 ใบด้วยไฟแรงจนน้ำเดือด
เขาใส่แครอทในหม้อใบแรก วางไข่ลงในหม้อใบที่สอง และตักกาแฟลงไปในหม้อใบสุดท้าย
แล้วปล่อยให้มันต้มไปเรื่อยๆ โดยไม่มีคำอธิบายให้กับลูกสาวเลย

ฝ่ายลูกสาวเริ่มรู้สึกหงุดหงิด และหมดความอดทน ทั้งยังสงสัยว่าพ่อกำลังทำอะไร 20 นาทีผ่านไป
พ่อก็ปิดเตาแก๊ส ตักแครอทขึ้นมาวางไว้ในชาม นำไข่วางไว้ในชามอีกใบหนึ่ง และตักกาแฟไว้ในชามสุดท้าย แล้วหันไปถามลูกว่า “ลูกเห็นอะไรบ้าง”

“แครอท ไข่ กาแฟ” เธอตอบ

เขาจึงขอร้องให้เธอสัมผัส แครอท เธอจึงรู้ว่ามันนิ่ม แล้วเขาก็ให้ลูกสาวตอกไข่ เมื่อเธอแกะเปลือกไข่ออก
ก็พบว่าไข่ นั้นได้ต้มจนสุกแล้ว ท้ายที่สุดเธอให้ลูกสาวลองจิบ กาแฟ ดู เธอยิ้มและลิ้มรสอันหอมกรุ่นนั้น

แล้วก็ถามพ่อ ว่า “นี่หมายความว่าอย่างไรเหรอคะคุณพ่อ?”

พ่ออธิบายว่า “เราได้กระทำต่อ 3 สิ่งนี้ภายใต้เงื่อนไขเดียวกัน นั่นคือ น้ำเดือด
แต่ผลลัพธ์มันกลับแตกต่างกัน จากเดิม แครอท ดูแข็งๆ และไม่โอนอ่อนผ่อนตาม
พอผ่านการต้มมันกลับนิ่มและดูอ่อนปวกเปียก

ไข่…ซึ่งดูบอบบาง มีเพียงเปลือกบางๆ คอยห่อหุ้มของเหลวภายใน แต่น้ำเดือดทำให้ของเหลวนั้นกลับแข็งขึ้น

ขณะที่กาแฟกลับมีลักษณะเฉพาะตัวตลอดกาล เมื่อมาเจอน้ำเดือด น้ำต่างหากที่แปรเปลี่ยนไป . . .”

พร้อมกันนี้ พ่อยังถามลูกสาวว่า “แล้วลูกล่ะเมื่อความทุกข์มาเยือน ลูกจะเตรียมรับมืออย่างไร ลูกจะเป็นแครอท ไข่ หรือ กาแฟ”?

ถ้าเป็น “แครอท” แม้จะดูแข็งโป๊ก แต่เมื่อต้องเผชิญกับความทุกข์ยากนานาก็จะเฉา อ่อนแอ และสูญเสียเรี่ยวแรง และกำลังไป

หรือจะเป็น “ไข่” ซึ่งดูสามารถปรับสภาพได้ในตอนแรก แต่หลังจากที่ต้องเผชิญกับความเป็นความตาย
การแตกแยก การหย่าร้าง หรือการเลย์ออฟ . .แม้เปลือกภายนอกยังคงเดิม แต่หัวใจ และจิตวิญญาณของอาจปวดร้าว และแข็งแกร่งขึ้นก็เป็นไปได้

หรือหากเหมือน “กาแฟ” เมื่อเจอน้ำเดือดอันนำมาซึ่งความเจ็บปวด แต่ ณ อุณหภูมิสูงสุด 100 องศาเซลเซียส
กาแฟกลับมีรสชาติดีขึ้นยามนั้น หากเป็นดั่งกาแฟ เมื่อถึงภาวะที่เลวร้ายที่สุด
นอกจากจะสามารถจัดการชีวิตตนเองได้แล้ว ยังสามารถทำสิ่งรอบข้างให้ดีขึ้นได้ด้วย.
. . 

 
เรื่องดีๆ ที่อ่านแล้วรู้สึกมีพลังทำงานต่อไป ^^
หมวดหมู่:Uncategorized

แรงผลักดัน – –

กันยายน 7, 2006 1 ความเห็น
เย้ ๆๆ ในที่สุด แรงผลักดันก็มีผล วันนี้ต้องทำ thsis ให้ได้ ซักแผ่นหนึ่ง  เดี่ยวต้องรีบไปทำก่อน เดี่ยวง่วงเหมือนเมื่อวานอีก จะไม่เสร็จกันพอดี
 
หมวดหมู่:Uncategorized

10 ways to boost PHP’s speed

กันยายน 4, 2006 ใส่ความเห็น
10 ways to boost PHP’s speed [Message #1]

1.A PHP script will be served at least 5-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.

2.Enable the compression of HTML by putting in your php.ini:output_handler = ob_gzhandler

3.Install a PHP caching suite. I have personally used zend (commercial), turck mmcache, and ioncube, and they all work very well.

4.Switch from file based sessions to shared memory sessions. Compile PHP with the –with-mm option and set session.save_handler=mm in php.ini. This can drastically improve session management performance.

5.Another caching technique that can be used when you have pages that don’t change too often is to cache the HTML output of your PHP pages. (a list of template solutions is posted within one of my previous articles).

6.Use output buffering (See ob_start). This will speed up your PHP code by 5-15% if you frequently print or echo in your code.

7.On Windows, FastCGI is the highest performance way of running PHP with Apache.

8.In PHP4, objects and arrays should be passed to functions by reference (with &), and everything else by value. In PHP5, objects are already passed by reference.

9.Don’t use images when text will do. Reduce your image sizes with a software like MacroMedia Fireworks or imagemagick.

10.If possible, Run your database server on a different machine. If all static content is served from another server, then you can turn off KeepAlives in httpd.conf to speed up client disconnects.

http://www.whenpenguinsattack.com/