Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > รณรงค์ เลิกใช้ mysql_query เปลี่ยนมาใช้ function อื่นแทน



 

รณรงค์ เลิกใช้ mysql_query เปลี่ยนมาใช้ function อื่นแทน

 



Topic : 049637

Guest




mysql_query มันทำให้เกิดการ hack เว็บขึ้นมากมาย
mysqli แล้ว bind data เอาดีกว่าครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-02 08:48:47 By : :) View : 3074 Reply : 51
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

mysql_query มัน hack กันยังไงครับ เผื่อจะเป็นความรู้ใหม่ๆ ด้วยครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 08:59:00 By : webmaster
 


 

No. 2

Guest


mysql_query('DELETE FROM table01 WHERE table_id='.$_GET['id']);

ใส่ ปกติ index.php?id=1 แต่ถ้าใส่ index.php?id=1+or+1%3D1
(index.php?id=1 or 1=1)
จะทำให้ลบข้อมูลทั้งตาราง

มันก็มีวิธีกันอยู่แต่ส่วนใหญ่จะไม่ใช้กันเพราะไม่มี function ที่ดี หรือเขียนยาวขึ้น
เลยแนะนำให้เลิกใช้ mysql_query รวมทั้งการ bind data โดยการต่อ string อย่างข้างต้นด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 09:10:09 By : :)
 

 

No. 3



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


ใช้
Code (PHP)
mysql_real_escape_string()

ป้องกันสิครับ

http://php.net/manual/en/function.mysql-real-escape-string.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 09:19:08 By : mr.v
 


 

No. 4

Guest


จะมีกี่คนที่ใช้อย่างถูกวิธีครับ อย่าง query

mysql_query('DELETE FROM table01 WHERE table_id='.$_GET['id']);

ต่อให้ใช้ mysql_real_escap_string ก็กัน hack ไม่ได้ เพราะไม่ได้ใช้ '' คร่อม $_GET['id'] ไว้ก่อน

และใน query จำนวนมากถ้าเขียนต่อ string หมดโอกาสผิดพลาดสูงมาก

ถ้าจะใช้ mysql_query ต่อไปก็ต้องเขียน function มาซ้อน mysql_query อีกที
ซึ่งคนที่จะเขียน function มาซ้อนได้ดีจริงๆ คนที่เริ่มต้นใหม่จะมีสักกี่คน

ผิดกับ mysqli ถ้าเข้าใจการ bind data ก็พอไม่ต้องกลัวการถูก hack แบบง่ายๆ อีก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 10:18:40 By : :)
 


 

No. 5



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ผมว่าแล้วแต่คนนะ ใช้แบบเดิม หรือแบบใหม่ มันอาจต่างกันบ้าง

แต่ตามที่คุณบอก ฟีล id มันเป็น integer

(int) $_GET['id']


งั้นลองยกตัวอย่างการ bind parameter โดย ส่งสตริง '1 or 1=1' ให้ดูหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:06:35 By : pjgunner.com
 


 

No. 6



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ถ้าผมใช้ mysql4.0 แล้วผมจะใช้ mysqli ได้เปล่าหละ

แก้ไขหน่อยเน่อ


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

จะถามว่ามัน แฮกได้ง่ายหรืรอยาก อันนี้มันก็แล้วแต่ครับ ว่าแจ้คพอตจะไปเจอะเอาที่ใหน ..

อย่างเว็บนี้ ผมก็ค่อนข้างมั่นใจว่า ตาวิน ก็คงใช้ mysql คงยังไม่ได้ใช้ mysqli

มันแฮกไม่ง่ายเท่าใหร่นักหรอกครับผม

ลองเขียนแบบนี้ดูก่อนก็ได้ครับ

https://www.thaicreate.com/community/mysqlinjections-protech.html


ประวัติการแก้ไข
2010-10-02 11:23:52
2010-10-02 11:35:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:19:18 By : deawx
 


 

No. 7

Guest


<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "DELETE FROM table01 WHERE table_id=?");
mysqli_stmt_bind_param($stmt, 'd', $code);

$code = ''1 or 1=1'';

/* execute prepared statement */
mysqli_stmt_execute($stmt);
?>

http://www.php.net/manual/en/mysqli-stmt.bind-param.php

การ convert เป็น int เป็นวิธีที่ดีครับแต่ข้อมูล ที่ไม่ใช่ int จะต่อ string เอาโค้ดอ่านยากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:21:36 By : :)
 


 

No. 8

Guest


ถ้าผมใช้ php4.0 แล้วผมจะใช้ mysqli ได้เปล่าหละ

^

ไม่ได้ครับ แต่ผมแนะนำให้คนที่คิดจะเริ่มเขียนใหม่ใช้ mysqli แทนอยู่ดี โดยใช้ php5
เพราะการใช้ mysql_query แบบตรงๆ ไม่ปลอดภัย และเขียนยากกว่า
ส่วนโฮสที่ใช้ php4 ก็แจ้งให้เค้าปรับปรุงเป็น php5 ซะเพราะ php4 ถ้ามีช่องโหว่ใหม่สามารถถูก hack ได้ทันที
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:28:00 By : :)
 


 

No. 9

Guest


สำหรับ mysqli ซึ่งเป็น function ที่ใหม่กว่า mysql คุณ deawx คิดว่าจะใช้กับ mysql รุ่นเก่าไม่ได้หรือครับ
ลองใช้ดูก่อนครับว่าใช้ได้หรือเปล่า น่าจะแค่ไม่ซัพพอร์ตบางอย่างเท่านั้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:35:12 By : :)
 


 

No. 10



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ช่วย ๆ กันดันครับ กระทู้มีประโยชน์

คนละไม้ คนละแรง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:37:23 By : deawx
 


 

No. 11

Guest


:)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:41:37 By : :)
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

SQL Injection มันมีปัญหาเยอะจริง ๆ ครับ เป็นช่องทางแรก ๆ ที่คนจะ hack กัน หลาย ๆ คนเลยใช้การเขียนแบบโยน Parameter แทน กระทุ้เป็นประโยชน์จริง ๆ สำหรับสมาชิกหลาย ๆ ท่าน ครับ

+1 ครับ รบกวน Login เป็นสมาชิกก่อนน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 11:46:19 By : webmaster
 


 

No. 13



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


แล้วในกรณีที่ผมเข้า รหัสละครับ แล้วส่ง ค่า มาแทน ละครับ จะมีปัญหาหรือป่าวครับ คือผม ทำการเข้า รหัส ค่า ก่อนที่จะส่ง ค่า ทุกครั้งครับ โดยเข้าประมาณ 5-6 ชั้นอะครับ แบบนี้จะมีปัญหาหรือป่าว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 12:02:52 By : SOUL
 


 

No. 14

Guest


ก็ยังมีโอกาสเกิดปัญหาครับไม่ว่าจะเข้ารหัสยังไง
ถ้าใช้การ ต่อ string ธรรมดาโดนไม่ป้องกันข้อมูลด้วย mysql_real_escape_string หรือการ bind ก็ยังสามารถ hack ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 12:07:01 By : :)
 


 

No. 15

Guest


แก้ไขครับ กรณีที่เข้ารหัสโดย function บางอย่างอาจจะป้องกันได้ แต่ function บางอย่างอาจป้องกันไม่ได้

แต่ยังไงการเข้ารหัสการใช้ข้อมูลจะยากและอาจจะเกิดปัญหา เช่นเสียพื้นที่บันทึกข้อมูลเยอะขึ้น หรือเสียเวลาในการถอดรหัสมากขึ้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 12:12:07 By : :)
 


 

No. 16



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


Code (PHP)
$id = $_GET['id'];
/* ในกรณี id มีค่าเป็น integer */
if ( !is_numeric($id) ) {
   die('hack attempt');
}

mysql_query("delete from table where id = ".mysql_real_escape_string($id));

/*---------------------------------------------------------------------------------*/
/* ในกรณี id มีค่าเป็น string */
mysql_query("delete from table where id = '".mysql_real_escape_string($id)."'");


อย่างเงี้ย มันจะแฮคยังไงครับ


ประวัติการแก้ไข
2010-10-02 13:58:34
2010-10-02 13:59:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 13:50:04 By : mr.v
 


 

No. 17



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


ในกรณีมีการเข้ารหัส (ไม่รู้ผมเข้าใจคุณ soul ถูกรึเปล่า) ยกตัวอย่างเช่นเก็บรหัสผ่านเป็นแบบเข้ารหัส md5()
ก็ต้องมี mysql_real_escape_string() ครอบในส่วนที่จำเป็น ตย.
Code (PHP)
$username = $_POST['username'];
$password = $_POST['password'];
$encpassword = md5(md5($password));

$sql = "select * from users where username = '" . mysql_real_escape_string($username) . "' and password = '" . $password . "'";
mysql_query($sql);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 13:56:58 By : mr.v
 


 

No. 18

Guest


$id = $_GET['id'];
/* ในกรณี id มีค่าเป็น integer */
if ( !is_numeric($id) ) {
die('hack attempt');
}

mysql_query("delete from table where id = ".mysql_real_escape_string($id));


ไม่ต้องเขียนเยอะขนาดนั้นครับ
mysql_query("delete from table where id = ".intval($_GET['id']));

การต่อสตริงเสียเวลาระวังตัวแปรเยอะกว่า bind ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 14:23:15 By : :)
 


 

No. 19



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ความรู้ใหม่จริงๆ

ตามไม่ทัน

สรุปง่ายๆ คือ ถ้าใช้ mysql_query

เว็บไหนใช้คำสั่งนี้ จะโดน hack เข้าไปลบข้อมูลได้แน่นอน แบบนี้หรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 14:31:07 By : iieszz
 


 

No. 20

Guest


ความรู้ใหม่จริงๆ

ตามไม่ทัน

สรุปง่ายๆ คือ ถ้าใช้ mysql_query

เว็บไหนใช้คำสั่งนี้ จะโดน hack เข้าไปลบข้อมูลได้แน่นอน แบบนี้หรือเปล่าครับ

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

เช่นกัน mysqli หรือ function ช่วยต่างๆ ถ้ากลับไปใช้วิธีต่อ string ก็โดนแฮกได้เหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 14:37:10 By : :)
 


 

No. 21



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เป็นเรื่องที่ดีมากครับ จะบวกให้ก็ไม่ได้ซะด้วย เป็นกำลังใจให้ละกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-02 17:11:57 By : PlaKriM
 


 

No. 22



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตอนนี้ผมก็ยังใช้ mysql_query ครับ ส่วนเรื่อง SQL Injection ยังไม่เจอครับ เพราะ php มีฟังก์ชั่นรองรับการทำงานหลายตัว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-03 07:22:37 By : webmaster
 


 

No. 23



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ผมก็ยังใช้ mysql_query อยู่เหมือนกัน แต่ว่าเพิ่ม function การตรวจเช็ค ต่าง เพิ่มขึ้นและที่สำคัญ มีการเข้า รหัสด้วยครับ
และของคุณ vee ยังงง คือสิ่งที่คุณเข้าใจ ถูกแล้วครับ ผมใช้ md 5 แต่มีการ เข้ารหัสหลายชั้นครับ ดังนั้นการจะถอดรหัส หรือการสร้างรหัสมาเปรียบเทียบได้มากหรือน้อยเพียงใด แต่ว่ามานก็ช่วยได้เยอะสำหรับ การป้องกัน ครับ แต่อย่างไรก็แนะนำเพิ่มได้นะครับ ขอความรู้เพิื่มเติมด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 09:02:44 By : SOUL
 


 

No. 24



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


มันปลอดภัยกว่า ดูง่ายกว่า ตรวจสอบง่ายกว่า ถ้ามีโอกาสก็เปลี่ยนๆ กันไปเหอะ

ไม่เห็นมีอะไรเสียหาย จะได้ทันภาษาอื่นเขาสักที ข้างห้องเขากันตั้งแต่ framework 2.0 ก็ประมาณ 5 ปีแล้ว

จะมัวติดอยู่กับของโบราณอยู่ทำไมกันเล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 09:23:12 By : tungman
 


 

No. 25



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


ผมไม่เข้าใจว่ามันไม่ทันภาษาอื่นยังไง ช่วยยกตัวอย่างที่เป็นรูปธรรมเข้าใจง่ายให้หน่อย.
เพราะที่ทำๆใช้อยู่ทุกวันมันก็ตอบสนองงานได้ดีมาก ยังไม่พบว่ามีอะไรที่มันถึงลิมิตทำไม่ได้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 09:31:58 By : mr.v
 


 

No. 26



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เรื่อง oop ก็เรื่องนึง php เป็น oop ที่ประหลาด หวังไว้ลึกๆ ว่าสักวันมันคงจะยกเครื่องใหม่

เรื่อง type debug กันมันดี

เรื่อง query ต้องใช้ลูปในการไล่แสดงข้อมูลในแต่ละอินเดค

เรื่องโค้ดกับแสดงผลปนกัน

เรื่อง include framework ขนาดใหญ่แล้วทำงานได้ช้าลง

เรื่องการแสดงผลภาษาต่างๆ และฟังก์ชั่นที่ทำงานกับ unicode

เดี๋ยวนึกได้อีกแล้วจะเอามาเพิ่มแล้วกันนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 09:46:46 By : tungman
 


 

No. 27



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


ผมก็อยากเห็นการเปลี่ยนที่ดีขึ้นใน php6
เรื่อง oop ผมก็ยังไม่เข้าใจอยู่ดี เพราเคยเขียน asp 3 มันก็คล้ายๆแบบนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 10:01:20 By : mr.v
 


 

No. 28



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ก็เป็นกำลังใจให้ open source อยู่ห่างๆ เหมือนกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 10:12:08 By : tungman
 


 

No. 29



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


คนที่เขียน .net มาตลอดอาจจะ anti php ครับ
แต่ไม่รู้นะ php มีตัวแปลภาษาเป็น interpreter แต่ .net มีตัวแปลภาษาและไลบารีเป็น compiler
มันจะทำ strong type ได้เหมือน .net หรอครับ

ไว้เมื่อไหร่พี่ไมโครซอฟต์แก้ให้ใช้ windows server + .net ฟรี เมื่อนั้นแหละทุกคนจะหันมาใช้ .net
เพราะ win server กะ tools มันแพง บริษัทที่ใช้จึงต้องมีกำลังซื้อพอสมควร

ปล. ด้วยทฤษฎีอันน้อยนิด อาจผิดพลาด ขออภัยไว้ ณ หม่องนี้ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 11:30:05 By : PlaKriM
 


 

No. 30



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ไม่ใช่ยึดติดกับฝั่ง microsoft หรอกครับ แต่ยึดติดกับแนวคิด pure oop มากกว่า

เลยเห็น php oop แล้วเลยทนไม่ได้ ไม่รู้เป็นอะไรเหมือนกัน

ก็รอสักวันและหวังว่าทาง php คงจะยกเครื่องใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 12:38:09 By : tungman
 


 

No. 31



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


คุณ tungman ก็อย่าเรียกมันว่า oop ครับ เรื่อกมันว่า half oop หรือ ลูกครึ่ง oop หรือ ครึ่งควบลูก ก็ได้ครับ
ถ้างั้นก็รณรงค์เขียน java กันไปเลยทีเดียวเชียว ว่าแต่มันฟรีทุกระเบียดนิ้วหรือเปล่าหว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 13:33:31 By : PlaKriM
 


 

No. 32



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


ผมว่าถ้ามานพัฒนาต่อไปได้มานก็น่าจะดีเหมือนกัน นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 15:21:14 By : SOUL
 


 

No. 33



โพสกระทู้ ( 108 )
บทความ ( 0 )



สถานะออฟไลน์


ผมชอบใช้ mysql_db_query อะครับ

จะเป็นไรรึป่าวอะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 18:00:34 By : mrsllive
 


 

No. 34



โพสกระทู้ ( 228 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 26 เขียนโดย : tungman เมื่อวันที่ 2010-10-04 09:46:46
รายละเอียดของการตอบ ::

เรื่อง oop ก็เรื่องนึง php เป็น oop ที่ประหลาด หวังไว้ลึกๆ ว่าสักวันมันคงจะยกเครื่องใหม่

เรื่อง type debug กันมันดี

เรื่อง query ต้องใช้ลูปในการไล่แสดงข้อมูลในแต่ละอินเดค

เรื่องโค้ดกับแสดงผลปนกัน

เรื่อง include framework ขนาดใหญ่แล้วทำงานได้ช้าลง

เรื่องการแสดงผลภาษาต่างๆ และฟังก์ชั่นที่ทำงานกับ unicode

เดี๋ยวนึกได้อีกแล้วจะเอามาเพิ่มแล้วกันนะ



เท่าที่ผมใช้ Codeigniter ปัญหาที่ว่ามา ไม่มีเลยครับ


ประวัติการแก้ไข
2010-10-04 18:12:53
2010-10-04 18:13:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 18:12:08 By : rasabut
 


 

No. 35



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ตอบความคิดเห็นที่ : 7 เขียนโดย : :) เมื่อวันที่ 2010-10-02 11:21:36
รายละเอียดของการตอบ ::
อืมไปๆ มาๆ ผมงงเอง ถ้าหากมันเป็นสตริง ก็ต้องครอบด้วย ' หรือ ` นี่ครับ ดังนั้น แค่ escape string ก็เพียงพอ ไม่ใช่เหรอครับ

Code (PHP)
$sql = "DELETE FROM table01 WHERE table_id='1 or 1=1'";


อีกอย่าง ผมก็กำลังจะหันไปใช้ prepare statement ในเฟรมเวอร์คซึ่งมัน escape ให้อัตโนมัติ และครอบด้วย ` อัตโนมัติด้วย


ปล. ผมรอใช้ mysqlnd เลยอ่ะ


ประวัติการแก้ไข
2010-10-04 18:24:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 18:23:11 By : pjgunner.com
 


 

No. 36



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

PHP ในตอนนี้ OOP ก็สามารถเขียนได้ ในระดับที่เยี่ยมแล้วครับ คือมันยังให้ใช้โค้ดเดิมรันใน PHP 5 ได้อยู่ และมันก็เป็น weak type ด้วยครับ
แต่สำหรับ OOP แล้ว มันทำให้ strong ขึ้นได้หน่อยหนึ่ง คือ กำหนด พวก instance type ในพารามิเตอร์ ที่เป็น object หรือ array ได้ครับ

เช่น
function abc(array $arr){}
function bcd(ClassA $inst){}


ส่วนเรื่อง ความช้าแล้ว มันก็อาจมีบ้างครับเพราะมันเป็น interpreter เต็มรูปแบบ interprete ทุกครั้ง


แต่เรื่องที่ต้องการจริงๆ คือซัพพอร์ท UTF-8 เต็มรูปแบบนั่นแหละครับ ฟังชั่นบางตัวไม่ทำงาน อย่าง เช่นหา index แล้ว ตำแหน่งไม่ถูก นับ byte ผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 18:38:43 By : pjgunner.com
 


 

No. 37



โพสกระทู้ ( 2,258 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

แล้วเรื่อง mysql injection ละครับ ระหว่างแบบ mysql กับ mysqli อันไหนน่าจะดีกว่ากัน ข้าน้อยได้ยินมาว่า mysqli มันออกแบบมาให้เหมาะกับการเขียนแบบ oop แต่ทว่าส่วนมากก็เขียนแบบฟังก์ชั่นกันซะส่วนใหญ่ เพราะเคยชินซะแล้ว อิอิ อีกอย่าง mysqli มันมีรูปแบบการเขียนที่เป็น oop ด้วย

example

Code (PHP)
<?php
@$db = new mysqli('localhost','root','pass','database'); //การติดต่อกับฐานข้อมูล
if(mysqli_connect_errno()){
echo "ไม่สามารถเชื่อมต่อ db ได้ : ".mysqli_connect_error();
exit;
}
$query="select * from employee";
$res=$db->query($query);
$num=$res->num_rows;
$row=$res->fetch_assoc();

echo $row['ฟิลด์ 1'];
echo $row['ฟิลด์ 2'];
echo $row['ฟิลด์ 3'];
echo $row['ฟิลด์ 4'];

//ซึ่งมันสามารถอ้างอิงออปเจ็กต์ได้
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 19:46:55 By : Manussawin
 


 

No. 38

Guest


มีความเข้าใจผิดกันมากว่า class หรือโครงสร้างภาษาที่สนับสนุนให้สร้าง class คือ oop
ถ้าคนเข้าใจจริงๆ แล้ว ไม่ใช่คนที่หลงในความทันสมัยจะรู้ว่า class เป็นแค่เครื่องมือ จะใช้ภาษาไหนๆ ก็สามารถเข้าถึง oop ได้ทั้งนั้น

พวกมือใหม่ ที่เขียน java c# คล่องๆ บางคนยังเขียน oop ได้ไม่เท่าคนที่เขียน assembly เก่งๆ ด้วยซ้ำไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 22:02:20 By : php
 


 

No. 39



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


คึกคักจังกระทู้นี้ ใครพาออกนอกประเด็นเนี่ย

อย่าไปยึดติดสิครับ มันเป็นแค่ทูล มันไม่มีอะไรที่สมบูรณ์แบบ 100% หรอก

สักวันมันก็ต้องพัฒนาต่อไปเรื่อยๆ นั้นแหละ ถ้าคิดว่ามันดีเลิศประเลิศศรีแค่นี้

ก็จบกันพอดี ไม่ต้องพัฒนากันต่อแล้ว หรือที่ผมโพสไปหลบหลู่สิ่งศักดิ์สิทธิ์เข้าเหรอครับ

พูดเรื่องนี้ทีไร ได้มาม่าทุกที พอๆ กับคุยเรื่องศาสนากับการเมือง

หรือว่าห้ามแตะต้องจริงๆ php เนี่ย ของมันแรง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 22:33:53 By : tungman
 


 

No. 40



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


พี่ตึ๋งคะ วันนี้อากาศดีป่าว หนาวมากปะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 22:36:24 By : blurEyes
 


 

No. 41



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


คนอื่นไม่รู้ แต่วันนี้ผมหนาว ขนลุกซู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 22:40:54 By : tungman
 


 

No. 42



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ประเด็นมันไม่ได้อยู่ที่คนเขียนคล่องไม่คล่อง เก่งไม่เก่งนะครับ อย่าพาดราม่า เอ้า ต่อๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 23:10:32 By : PlaKriM
 


 

No. 43

Guest


เห็นคนมาว่า php ทั้งๆ ที่รู้จักการเขียนโปรแกรม แบบงูๆ ปลาๆ แล้วรับไม่ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 23:49:51 By : php
 


 

No. 44



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ซะงั้น จะต่อว่ากันรบกวน PM นะครับ
บางทีเรื่องบางเรื่อง ถ้าเราไม่เก็บมาเป็นปัญหามันก็ไม่ใช่ปัญหานะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-04 23:54:01 By : PlaKriM
 


 

No. 45



โพสกระทู้ ( 2,258 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

เข๊อะๆ อย่าทำให้มันกลายเป็นเรื่องเครียดเลยครับ สงสารคนที่เขาคิดค้นขึ้นมา บางครั้งในทางทฤษฎีกับการปฏิบัติมันก็ต่างกันโดยชิ้นเชิง ผมว่าจะเขียนอะไร จะทำอะไรก็คงจะเป็นเรื่องความชอบหรือความถนัดส่วนบุคคลแหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 00:14:34 By : Manussawin
 


 

No. 46



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


Quote:
เห็นคนมาว่า php ทั้งๆ ที่รู้จักการเขียนโปรแกรม แบบงูๆ ปลาๆ แล้วรับไม่ได้ครับ

หุย ... คงเป็นงูตัวใหญ่มากเลยค่ะขอบอก และถ้าเป็นปลาก้อคงราวๆปลาวาฬชุบแป้งทอดแหละค่ะ

ปล.เห็นด้วยค่ะอะไรที่มนุษย์เดินดินกินทางปาก ....... ทำนี่ไม่ perfect หรอกค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 06:31:43 By : blurEyes
 


 

No. 47



โพสกระทู้ ( 1,751 )
บทความ ( 0 )



สถานะออฟไลน์


อ้าว กรรม ผมว่านะครับ เรื่องของภาษา php มานต้องมีการพัฒนาต่อไปเลื่อยๆๆๆ ไม่ว่าจะยังไง บางทีการเขียน code ก็ต้องมีหลากหลายเหมือนกัน ขึ้นอยู่กับความถนัด และประสบการณ์ของการเขียนมากกว่านะครับ ส่วนเรื่องมานจะเป็น oop หรืออะไร ผมว่าอย่าไปเครียดไรกะมานมากครับ มานก็แค่ tool ตัวนึง ที่หากว่าเราถนัดเราก็แค่เลือกใช้ เท่านั้นเอง ครับ แต่ว่า นะครับ ผมว่าเราย้อนกลับมาคุยเรื่องการ hack โดยผ่าน เจ้า
mysql_query จะดีกว่านะคร ับ ผมยังอยากรู้อีกหลายๆๆๆ เรื่อง ทั้งเรื่อง ลักษณะการเข้าถึง ตัว code หรือวิธีการ ที่ทำให้เกิดการ เข้าถึงข้อมูลโดยผ่านตัว mysq_query นี้ครับ อิอิอิอิอิอิ


ประวัติการแก้ไข
2010-10-05 09:19:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 09:18:25 By : SOUL
 


 

No. 48



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


จะใช้ mysql หรือ mysqli ก็ได้ แต่ผมแนะนำให้ใช้ PHPADOdb ไปเลย อิอิ
http://adodb.sourceforge.net/

ทั้งปลอดภัยทั้งง่าย และไวกว่าเดิม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 10:29:29 By : mr.v
 


 

No. 49



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ดราม่าตรงไหน ???

ต่อๆ คุณ จขกท. หายไปไหนครับ ยังอยู่ป่าว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 19:06:59 By : pjgunner.com
 


 

No. 50



โพสกระทู้ ( 30 )
บทความ ( 0 )



สถานะออฟไลน์


adodb + savent3 สุดยอด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 22:17:23 By : siamspeeds
 


 

No. 51

Guest


ผมคิดว่าควรจะสร้าง function สำหรับการ insert / update ให้สั้นมากๆ เข้าไว้

db_insert('tablename,field1,field2,field3',$_POST);
db_update('tablename,primaryKeyField,field1,field2,feild3',$_POST);

ตัว function prototype ปกติแล้วแค่นี้ก็พอสำหรับการ insert ครับ
ช่วยให้การ insert ทำได้ง่ายขึ้นเยอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 23:00:56 By : :)
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รณรงค์ เลิกใช้ mysql_query เปลี่ยนมาใช้ function อื่นแทน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่