ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[php] งานเข้าแล้วครับ ใครเก่งเรื่อง security ช่วยแนะนำหน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [php] งานเข้าแล้วครับ ใครเก่งเรื่อง security ช่วยแนะนำหน่อยครับ  (อ่าน 1682 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« เมื่อ: 01 พฤษภาคม 2010, 18:02:18 »

 wanwan009 กำของเวรจริงๆ มันมีคนๆนึงเบื่อเกม Epic Duel ที่เขาเล่นอยู่แล้วไปโพสใน forum เพื่อโฆษณามาเกมผม แล้วเจ้าของเกมนั้นมันมี comunity ที่เป็น hacker เกมผมเลยตกเป็นเป้าการโจมตีตั้งแต่ังไม่เปิดเลยล่ะครับ
นี่ครับ staff ผมรายงานมา http://www.legendora.net/forum/index.php?topic=141.0

ถามว่าการแฮกมันทำอย่างไรครับ มีอะไรที่เป็นจุดอ่อนที่ควรระวังบ้างช่วยบอกหน่อยครับ
บันทึกการเข้า
icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #1 เมื่อ: 01 พฤษภาคม 2010, 18:31:56 »

ทุกจุดที่มีการรับค่าจาก client ครับ (ไม่ว่าจะเป็น post / get / cookie)

ก่อนเอาเข้า mysql ต้องตรวจสอบค่าที่รับมาก่อนเสมอ ว่าอยู่ในรูปแบบที่ถูกต้องรึเปล่า
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
Mayjung007
ก๊วนเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #2 เมื่อ: 01 พฤษภาคม 2010, 18:35:13 »

SQL injection , javascript injection
บันทึกการเข้า
สุ ด ห ล่ อ ™
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 193



ดูรายละเอียด
« ตอบ #3 เมื่อ: 01 พฤษภาคม 2010, 18:37:50 »

mysql_escape ใช้ฟังก์ชั่นนี้ช่วยด้วยก็ดีนะครับ
แล้วก็ใช้พวกลบสัญลักษณ์พิเศษในบางฟิลด์

และตรวจสอบข้อมูลต่างๆ
บันทึกการเข้า
GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« ตอบ #4 เมื่อ: 01 พฤษภาคม 2010, 19:47:41 »

 Tongue ช่วยขยายความหน่อยได้มั้ยครับ ไม่รู้เรื่องเลยจริงๆ
บันทึกการเข้า
woratana
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 178
ออฟไลน์ ออฟไลน์

กระทู้: 2,283



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 01 พฤษภาคม 2010, 19:59:47 »

ที่น่ากลัวสุดคือ SQL Injection

แล้วก็ตรวจสอบ Input ที่เข้ามาในระบบให้ดี ๆ อะไรควรเป็นเลขก็แปลงให้เป็นเลข ระบบก็จะปลอดภัยจากการโจมตีในระดับหนึ่งครับ  Embarrassed
บันทึกการเข้า

Mayjung007
ก๊วนเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 207



ดูรายละเอียด
« ตอบ #6 เมื่อ: 01 พฤษภาคม 2010, 22:04:02 »

ลองเสิรฐในGoogleดูอ่าคับ วิธีป้องกันมันมีเยอะมาก สำหรับพวก ช่อง input ทั้งหลายนะครับ [ sql injection , javascript injection ]

*สำหรับลิ้งที่ท่านให้ผมเข้าไปนั้นเข้าไม่ได้ ต้องสมัครก่อน เลยไม่รุ้ว่าโดนเจาะทางไหน

อย่างเช่น ถ้าเอาตัวแปรไปลงฐานข้อมูลตรงๆ เช่น

select * from table where username= $POST['username'] and password = $POST['password'];

อย่างนี้คือ รับจากฟอร็มยังไงก็ ยังงั้นเลย วิธีโบราณ ถึกๆ เลยก็ คือ ใส่ ใส่ค่า username คือ ""or id='1' ประมาณนี้คับก้คือ
 มันจะทำให้เงื่อนไขนั้นเป็นจริง ก็จะแสดงข้อมูลครับ ทางป้องกันคือ
ฟังชั่นที่
1.md5(POST['passsword']); เป็นการเข้ารหัสของ POST['password'] เป็น hashing แบบทางเดียว
2.mysql_escape_string  คือ กำจัด สตริงออก พวก ' ไม่ก็ ;
3.base64_encode และก้ base64_decode มั้ง ฟังชั่นแรกไว้แปรงค่าเปน รหัส / ฟังชั่น หลัง แปลง รหัส เป้น ค่ากลับ
4.addslashes และ stripslashes คือ เพิ่ม \ ไว้ หน้า " และ คำสั่งหลัง ไว้ ลบ \ ที่ add มา

ประมาณนี้คับผม
บันทึกการเข้า
O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 237
ออฟไลน์ ออฟไลน์

กระทู้: 1,432



ดูรายละเอียด
« ตอบ #7 เมื่อ: 01 พฤษภาคม 2010, 23:19:47 »

ครับ เรื่อง security ต้องระวัง sql injection นี่หล่ะครับ

ตามที่ mayjung ยกตัวอย่างให้อ่ะครับ ถ้าตรงที่เราใส่ password เพื่อ login แต่ถ้าพวก hacker ใส่ "or id=1" ค่าก็จะเป็นจริง

ลองหา google ดูน่ะครับ เช่น http://www.securiteam.com/securityreviews/5DP0N1P76E.html
บันทึกการเข้า
GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« ตอบ #8 เมื่อ: 02 พฤษภาคม 2010, 06:48:28 »

ลองเสิรฐในGoogleดูอ่าคับ วิธีป้องกันมันมีเยอะมาก สำหรับพวก ช่อง input ทั้งหลายนะครับ [ sql injection , javascript injection ]

*สำหรับลิ้งที่ท่านให้ผมเข้าไปนั้นเข้าไม่ได้ ต้องสมัครก่อน เลยไม่รุ้ว่าโดนเจาะทางไหน

อย่างเช่น ถ้าเอาตัวแปรไปลงฐานข้อมูลตรงๆ เช่น

select * from table where username= $POST['username'] and password = $POST['password'];

อย่างนี้คือ รับจากฟอร็มยังไงก็ ยังงั้นเลย วิธีโบราณ ถึกๆ เลยก็ คือ ใส่ ใส่ค่า username คือ ""or id='1' ประมาณนี้คับก้คือ
 มันจะทำให้เงื่อนไขนั้นเป็นจริง ก็จะแสดงข้อมูลครับ ทางป้องกันคือ
ฟังชั่นที่
1.md5(POST['passsword']); เป็นการเข้ารหัสของ POST['password'] เป็น hashing แบบทางเดียว
2.mysql_escape_string  คือ กำจัด สตริงออก พวก ' ไม่ก็ ;
3.base64_encode และก้ base64_decode มั้ง ฟังชั่นแรกไว้แปรงค่าเปน รหัส / ฟังชั่น หลัง แปลง รหัส เป้น ค่ากลับ
4.addslashes และ stripslashes คือ เพิ่ม \ ไว้ หน้า " และ คำสั่งหลัง ไว้ ลบ \ ที่ add มา

ประมาณนี้คับผม

อ่อ ครับลืมไปว่ากระทู้นั้นเป็นของโซน staff Tongue
ข้อแรกที่แนะนำมา ทำอยู่แล้วครับ
ว่าแต่ข้อที่เหลือนี่ใช้ตรงไหนครับ ตรง login เหรอครับ

ปล. ยังไม่โดนเจาะครับ แค่โดนหมายหัวไว้เฉยๆ เพราะผมยังไม่ได้อัพขึ้นไป Tongue
« แก้ไขครั้งสุดท้าย: 02 พฤษภาคม 2010, 06:52:10 โดย GillBate » บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #9 เมื่อ: 02 พฤษภาคม 2010, 10:05:42 »

ใช้ codeigniter จนแทบลืมวิธีป้องกัน SQLInjection กับ XSS ไปหมดแระ

เคยได้ยินฝรั่งมันสอนเอาไว้

"Never trust your user"

ทุกอย่างที่ได้รับจาก User ให้สันนิษฐานไว้ก่อนว่ามาจาก Hacker

อะไรบ้างที่มาจาก user - $_GET , $_POST , $_COOKIE แล้วก็ $_REQUEST , $_SERVER บางตัวที่ server อ่านค่าจากทางฝั่ง client อย่างเช่น $_SERVER['HTTP_USER_AGENT'] , $_SERVER['HTTP_REFERER'] เพราะสองอย่างนี้สามารถ make ได้อย่างอิสระเลย อ้อลืมอีกอย่างคือ $_FILES
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์