Archive for the ‘PHP Coding’ Category

0060 | PHP Dynamic page static HTML generator

Monday, May 25th, 2009 Posted in PHP Coding, Programming, Web Server | 4 Comments »

ชื่อยาวเป็นวา code อะไรวะ (วันหลังมา search จะเจอมั้ยเนี่ยตู 555)

code นี้แปะด้านบนสุดของไฟล์ (จะใส่ใน auto prepend เลยก็ยังไหว)

<?php
$_cachetime = 43200;
$_info = parse_url($_SERVER["REQUEST_URI"]);
if (!isset($_info['query'])) $_info['query'] = '';
$_path = end(explode('/', $_info['path']));
$_info['query'] = str_replace('&nocache', '', $_info['query']);
$_info['query'] = str_replace('nocache&', '', $_info['query']);
$_info['query'] = str_replace('nocache', '', $_info['query']);
$_cachename = sprintf("%x", crc32($_path."?".$_info['query']));
$_cachefolder = '/path/to/cache/'.substr($_cachename,0,2).'/';
$_cachefile = $_cachefolder.$_cachename;
if ($_SERVER["REQUEST_URI"] != '/' && $_SERVER["REQUEST_METHOD"] == 'GET' &&
    !isset($_GET["nocache"]) &&
    file_exists($_cachefile) && filemtime($_cachefile) > time() - $_cachetime) {
        readfile($_cachefile);
        exit();
}
function fetch_cache($_buffer) {
        global $_cachefile, $_cachefolder;
        umask( 0);
        if (!file_exists($_cachefolder))
                mkdir($_cachefolder,0777, true);
        if ($_h = fopen($_cachefile, "w")) {
                fwrite($_h, $_buffer);
                fclose($_h);
        }
        return $_buffer;
}
ob_start('fetch_cache');
?>

code นี้ใส่ด้านท้าย (ใน auto append ก็ได้นะครับ)

<?php
ob_end_flush();
?>

* แก้ไขเพิ่ม 2009/05/28

Tags: , ,

0059 | มา scan + กำจัดไวรัส iframe กัน

Wednesday, April 29th, 2009 Posted in Linux, PHP Coding, Web Server | 4 Comments »

ลูกค้าเกิดติดไวรัส ต้องแก้กระทันหัน เลยเขียน script แบบลวกๆ ขึ้นมาตัวนึงครับ

*** คำเตือน ก่อนการใช้งานขอให้ระวังว่า… สั่งพลาดไม่สามารถย้อนได้ ดังนั้น กรุณา backup ข้อมูลก่อนทำนะครับ

.

เครื่องมือที่ต้องการ:
– rpmforge repository [ สำหรับ redhat/centos โหลดได้ที่นี่ ]
– clam antivirus [ จะลงจาก rpmforge repository ครับ ]
– fixiframe.php (เดี๋ยวมี link ให้โหลดครับ)

สำหรับท่านที่ใช้ DA ไม่ต้องห่วงครับ ทดลองแล้วไม่มีปัญหา ไม่ตีกันแน่นอน

.

หลังจากลง rpmforge repository แล้ว สั่ง

yum -y install clamav
freshclam
wget -O /root/clamdb.tar.gz http://www.icez.net/files/clamdb.tar.gz
wget -O /usr/bin/fixiframe http://www.icez.net/files/fixiframe.txt
echo "/usr/bin/clamscan -v --stdout -i -d /var/clamav/ -r .|grep FOUND" > /usr/bin/scaniframe
chmod a+x /usr/bin/fixiframe /usr/bin/scaniframe
cd /var/clamav/
tar zxf /root/clamdb.tar.gz
chown clamav.clamav *

เตรียมการเรียบร้อยแล้ว ทีนี้… ก็สั่ง cd เข้าไปในเว็บที่มีปัญหาได้เลยครับ
วิธีใช้งาน…

หลังจากสั่ง cd เข้าไปที่ folder ที่เก็บเว็บที่มีปัญหา ให้สั่ง scaniframe
พอเจอแฟ้มที่มีปัญหา ลองเปิดแฟ้มดูว่า มี code อะไรแปลกปลอม
แล้วสั่ง fixiframe
มันจะถามว่าต้องการแก้อะไร (ขึ้นว่า SEARCH FOR:) ให้ก๊อป code ที่ต้องการลบ มาวางแล้วกด enter
เจอ+แก้แฟ้มไหนไปบ้างจะรายงานผลขึ้นมาให้เห็นเลยครับ

Tags: , ,