Category Archive PHP

วิธีการทำ Redirect HTTP to HTTPS โดย .htaccess หรือ php

ต่อเนื่องจากบทความที่แล้ว เรื่องการทำ HTTPS

การเรียกใช้งานเว็บไซต์ทั่วไป จะเรียกผ่าน Protocal HTTP แต่เมื่อมีการติดตั้ง SSL สำหรับเว็บไซต์แล้ว ควรจะต้องทำการตั้งค่าการใช้งานให้บังคับใช้ SSL ซึ่งก็คือ บังคับให้ใช้งาน HTTPS นั่นเอง ดังนั้น หากลูกค้าไม่ได้ทำการ Redirect การเรียกใช้ Website ทั่วไป ก็จะชี้ไปที่ HTTP ที่เป็นค่าเริ่มต้น ไม่ใช่ HTTPS เพราะฉะนั้นทางทีมงาน SSL.in.th จึงแนะนำให้ทำ Redirect สำหรับ Website ของลูกค้าด้วยเช่นกัน เพื่อความปลอดภัย และเรียกใช้ SSL Certificate ทุกครั้งที่ถูกเรียกใช้งานโดยเราแนะนำอยู่ 2 วิธีต่อไปนี้ คือ ใช้ .htaccess และ php

1. PHP Code redirect

function redirectTohttps()
{
if($_SERVER[‘HTTPS’]!=”on”)
{
$redirect= “https://”.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];
header(“Location:$redirect”);
}
}
?>

2. .htaccess file code (หากไม่มีไฟล์ให้สร้างไฟล์ .htaccess ขึ้นมา)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3. .htaccess (CMS WordPress)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 


 

ขอบคุณที่มา: https://support.netway.co.th/hc/th/articles/115000806592-%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3-Redirect-HTTP-to-HTTPS-%E0%B9%82%E0%B8%94%E0%B8%A2-htaccess-%E0%B8%AB%E0%B8%A3%E0%B8%B7%E0%B8%AD-php

หน้าเวปตัวหนังสือเป็น ??? ทั้งที่ใน phpmyadmin เป็นภาษาไทย

ให้ใส่ code เพิ่มไปตามนี้ ใต้ mysql_connect

 ในกรณีที่ charset เป็น tis-620

        @mysql_query(“SET NAMES ’tis620′”);

ในกรณีที่ charset เป็น utf-8

        @mysql_query(“SET NAMES ‘utf8′”);

Fatal Error: Allowed Memory size Exhausted WordPress

ปัญหานี้เป็นอีกปัญหายอดฮิตที่ผมเจอบ่อยมาก สาเหตุส่วนใหญ่มาจากการตั้งค่าโฮสที่ไม่เหมาะสมกับ WordPress พอเราใช้งานเว็บไปสักพักก็จะเจอข้อความคล้าย ๆ แบบนี้โผล่ขึ้นมา

FATAL ERROR: ALLOWED MEMORY SIZE OF 86735766 BYTES EXHAUSTED

อาการนี้มันจะเป็น ๆ หาย ๆ ซึ่งผมเองได้พบวิธีแก้ไขปัญหานี้อยู่ 2 วิธีดังนี้ครับ

วิธีที่ 1.เพิ่มโค๊ดบรรทัดนี้เข้าไปที่ไฟล์ wp-config.php

define( 'WP_MEMORY_LIMIT', '1024M' );

วิธีที่ 2.แจ้งมายัง Standhost ครับ

ถ้าลองวิธีที่ 1 แล้วยังไม่ได้วิธีสุดท้ายคือแจ้งโฮสที่เราใช้งานอยู่ให้ทางโฮสเค้าแก้ให้ครับ อาจต้องมีการปรับคอนฟิกเพื่อลูกค้าครับ สำหรับลูกค้า Standhost นะครับ 🙂

จบแล้ว

ขอบคุณบทความดี ๆ จาก CodingDee ครับ

ระวัง! พบช่องโหว่บน phpMyAdmin ทำให้ Hacker โจมตีฐานข้อมูลได้ในคลิกเดียว!

นักวิจัยด้านความปลอดภัยชาวอินเดีย Ashutosh Barot ได้ออกมาแจ้งเตือนเกี่ยวกับช่องโหว่ Cross-Site Request Forgery (CSRF) ใน phpMyAdmin เวอร์ชั่น 4.7.x (ตั้งแต่เวอร์ชั่น 4.7.6 ลงไป)  ช่องโหว่นี้เปิดช่องให้ Hacker สามารถปลอมแปลงคำขอ โดยใช้ URL ที่สร้างขึ้นมาเป็นพิเศษเพื่อรันสคริปต์ในเว็บเบราเซอร์เมื่อ URL ถูกคลิก Hacker จะใช้ช่องโหว่นี้เพื่อดำเนินการในระบบฐานข้อมูล phpMyAdmin ได้ เช่น สามารถทำการลบข้อมูล แก้ไขข้อมูล เพิ่มฐานข้อมูล หรือลบ Table ฐานข้อมูลได้

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

นี่เป็นวิดีโอที่ Barot ได้สาธิตถึงวิธีการของ Hacker ในการลบ (Drop) Table ของฐานข้อมูล โดยที่ผู้ดูแลระบบไม่รู้ตัวเลย

 

ที่มาวิดีโอ : The Hacker News

เว็บไซต์ส่วนมากสร้างขึ้นด้วย WordPress, Joomla และ CMS อื่นๆ อีกทั้งผู้ให้บริการโฮสต์ติ้งยังนิยมใช้ phpMyAdmin เพราะสะดวกในการจัดการฐานข้อมูล โดยทั่วไป phpMyAdmin จะขอใช้คำสั่ง GET หลังจากนั้นจะขอใช้คำสั่ง POST เพื่อเข้าสู่การจัดการฐานข้อมูล ไม่ว่าจะเป็นการใช้คำสั่ง DROP TABLE table_name; ซึ่งการขอใช้คำสั่ง GET นี้จะต้องป้องกันจากการโจมตีแบบ CSRF ได้ แต่ในกรณีนี้ เมื่อมีใช้คำขอ POST โดยส่งผ่านทาง URL และเมื่อผู้ดูแลระบบคลิกที่ URL นั้น แล้ว Hacker ก็จะสามารดำเนินการโจมตีด้วยการ drop table database query แต่ถึงกระนั้น มันก็เป็นเรื่องยุ่งยากเพราะ การที่จะสร้าง URL เพื่อใช้ในการโจมตีแบบ CSRF  Hacker จะต้องทราบ database and table เสียก่อน และหากสร้าง URL ได้แล้ว เมื่อผู้ดูแลระบบทำการคลิกที่ URL นั้น จากนั้นถ้าผู้ดูแลระบบทำการ query ฐานข้อมูลโดยคลิกที่ปุ่ม เพิ่ม ลบ หรือปุ่มอื่นๆ จาก URL ที่ Hacker สร้างมานั้นจะมีข้อมูล ชื่อฐานข้อมูล กับตารางฐานข้อมูลทันที

Barot ได้กล่าวอีกว่า ช่องโหว่นี้อาจทำให้มีการเปิดเผยข้อมูลที่สำคัญ เนื่องจาก URL จะถูกเก็บไว้ในที่ต่างๆ ไม่ว่าจะเป็น ประวัติการเข้าชมในบราวเซอร์, SIEM logs, Firewall Logs, ISP Logs และที่อื่นๆ  โดยการโจมตี CSRF จะเริ่มทำงานก็ต่อเมื่อสิทธิ์ของผู้ใช้ได้รับการตรวจสอบสิทธิ์แล้วว่าสามารถเข้าใช้งานใน cPanel และ phpMyAdmin ได้ และเมื่อมีการปิด cPanel และ phpMyAdmin การโจมตีก็จะหยุดลง ซึ่ง Hacker จะใช้ประโยชน์จากช่องโหว่นี้ได้ก็ต่อเมื่อมีผู้ใช้งานเท่านั้น ดังนั้นความรุนแรงของช่องโหว่นี้จึงอยู่ในระดับ ปานกลาง

Barot ได้รายงานช่องโหว่นี้ไปยังผู้พัฒนา phpMyAdmin และได้ออก phpMyAdmin เวอร์ชัน 4.7.7 เพื่อแก้ไขปัญหาที่เกิดขึ้น ดังนั้นผู้ดูแลระบบควรทำการอัปเดตโดยเร็ว

ที่มา : CYBER WORLD MIRRORThe Hacker News