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

Registered : 108,380

HOME > PHP > PHP Forum > การส่งข้อมูลแบบ GET สามารถเป็นช่องโหว่ของ sql injection ได้หรือเปล่าครับ



 

การส่งข้อมูลแบบ GET สามารถเป็นช่องโหว่ของ sql injection ได้หรือเปล่าครับ

 



Topic : 096357



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



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




http://mysite.com/money_tran.php?total=10000&tran_id=23dDFGD23SDg


คือปกติถ้าจะสามารถดูข้อมูลหรือแก้ไขข้อมูลได้ต้องถูกทั้ง
total และ tran_id แต่ไม่ทราบว่า จะสามารถใช้ technic sql injection โดยใช้ condition OR มาแฮกค์ได้หรือเปล่าครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-10 11:38:58 By : peap View : 3035 Reply : 34
 

 

No. 1



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

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

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

ก่อนอ่านค่าใช้พวก mysql_real_escape_string() ทำการครอบค่าตัวแปรก่อนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 11:41:20 By : mr.win
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2013-06-10 11:41:20
รายละเอียดของการตอบ ::
คือผมใช้อย่างนี้น่ะครับ

select * From money Where total_column= GET[total] & tran_id_column = GET[tran_id]


ไม่ทราบว่าจะโดน sql injection ได้มั้ยครับท่าน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 11:46:08 By : peap
 

 

No. 3



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

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

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

แบบนี้โดนแน่นอนครับ ลองดูตัวอย่างนี้ครับ

Code (PHP)
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($_GET["user"]),
            mysql_real_escape_string($_GET["password"]));
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 12:17:03 By : mr.win
 


 

No. 4



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

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

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

ลองอ่านบทความนี้นะครับ

https://www.thaicreate.com/community/prevent-php-mysql-sql-injection.html

ป.ล. บางทีก็ท้อใจ เขียนบทความไปเหมือนคนไม่เห็นว่ามันมีประโยชน์ (หรือมันไม่มีประโยชน์)


ประวัติการแก้ไข
2013-06-10 13:23:28
2013-06-10 13:27:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 13:02:48 By : cookiephp
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : cookiephp เมื่อวันที่ 2013-06-10 13:02:48
รายละเอียดของการตอบ ::
มีสิครับผมแก้ตามได้ผลเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 13:22:34 By : white31969
 


 

No. 6



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

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

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

ตอบความคิดเห็นที่ : 5 เขียนโดย : white31969 เมื่อวันที่ 2013-06-10 13:22:34
รายละเอียดของการตอบ ::
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 13:33:19 By : cookiephp
 


 

No. 7



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



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


ถ้าจากโค๊ดนี้

http://mysite.com/money_tran.php?total=10000&tran_id=23dDFGD23SDg


คือคุณรู้ว่า total=10000 แต่ไม่รู้ว่า tran_id=23dDFGD23SDg

แล้วคุณจะมีวิธี hack เว็บนี้ได้มั้ยครับ

เพราะจาก sql ผม กำหนดไว้แล้วว่า select * From money Where total_column= GET[total] & tran_id_column = GET[tran_id]

ซึ่งถ้ารู้แต่ total=10000 ก็จะไม่ผ่าน condition where ขอท่านผู้รู้ตอบที
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 14:41:28 By : peap
 


 

No. 8



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

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

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

ถ้าคุณไม่ escape ค่า มัน hack ได้หมดล่ะครับ
อ่านบทความหรือยังล่ะครับ ผมอธิบายไว้หมดแล้ว

select * From money Where total_column= '$_GET[total]' AND tran_id_column = '$_GET[tran_id]'

สมมติพิมพ์ค่าของ total เป็นอะไรก็ได้
และพิมพ์ค่าของ tran_id เป็น ' OR TRUE <> '

จะได้ query
select * From money Where total_column= '123' AND tran_id_column = '' OR TRUE <> ''

ซึ่งทำให้สีแดงไม่มีความหมายเลยครับ พอมาเจอ OR เงื่อนไขจะเป็นจริงหมดครับ



ประวัติการแก้ไข
2013-06-10 15:15:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 15:14:39 By : cookiephp
 


 

No. 9



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



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


ฟอร์มที่รับค่าลงฐานข้อมูล หรือ ค่าที่ส่งไปเปรียบเทียบในฐานข้อมูล ไม่ว่า GET หรือ POST ควรที่จะมีการกรอง อย่างน้อยที่สุดก็ mysql_real_escape_string() ก็จะช่วยในเรื่อง sql injection ได้ แต่แค่นั้นใช่ว่าจะปลอดภัยสักที่เดียว จะให้ปลอดภัยจริงๆ ควรมีการตัด tag html (strip_tags())ให้หมด หรือไม่ก็ htmlspecialchars() แปลง tag html ก่อน ไม่งั้นจะโดนใช้ javascript (Cross Site Scripting)แฮกเอา session ที่ผ่านการล๊อกอินแล้ว มาสวมรอยเข้าระบบได้

วิธีง่ายๆลองแฮกเว็บตัวเอง แค่ใส่ "<!--" ในฟอร์ม หรือ "<script>alert(5555)</script>" แล้วบันทึก ดึงข้อมูลออกมาดูผลเป็นไง

เว็บที่เขียนเองส่วนใหญ่กันแต่ sql injection แต่ไม่ได้กัน Cross Site Scripting คนส่วนใหญ่ที่ถามๆกันมาในนี้(thaicreate) ไม่ได้กันอะไรเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 16:26:27 By : randOmizE
 


 

No. 10



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

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

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

ผมก็โดนเล่นบ่อย ๆ อยู่ครับ ตอนนี้ก้ยังตามแก้ไม่หมด แฮะ ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-10 16:40:36 By : mr.win
 


 

No. 11



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



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


แต่ถ้ามองอีกมุม ในเว็บพวกขายสินค้่าที่ต้องมีสัญลักษณ์ อย่างเช่น หน้าจอกว้าง 12 " ( ตรงเครื่องหมายแสดงหน่วยนิ้ว ) ก็ไม่สามารถ insert เข้าไปได้น่ะสิครับ เพราะว่าเราทำการตัด tag html ไปแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 09:24:03 By : peap
 


 

No. 12



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



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


ตัด tag มันจะตัด tag้ html เช่น <p> <div> พูดง่ายๆคือมันจะตัดอะไรที่อยู่ในรูปแบบ '<xxx>' หมด ส่วน single quote (') double quote(") ใช้ htmlspecialchars($str,ENT_QUOTES) แปลง เวลา view source (") จะเป็น &quot; แต่เวลาแสดงผลมันก็ยังเป็น " เหมือนเดิม หรือ ไม่งั้น single quote (') double quote(") ก็จัดการด้วย mysql_real_ecape_string($str)

ทุกอย่างใช้ได้เหมือนเดิม เพียงแต่ tag จะถูกตัดไปเท่านั้นเอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 12:55:06 By : randOmizE
 


 

No. 13



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



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


ตอบความคิดเห็นที่ : 12 เขียนโดย : randOmizE เมื่อวันที่ 2013-06-11 12:55:06
รายละเอียดของการตอบ ::
คือตั้งแต่อ่าน comment นะครับ ผมมีคำถาม 2 ข้อครับ

ข้อ 1. ผมทำการกรอกข้อความ "<script>alert(5555)</script>" ลงไปใน text area ซึ่งทำมาจาก ckeditor แล้วก็ทำการ insert แบบธรรมดา
แล้วผมก็เข้าไปดูหน้าที่แสดงข้อความที่ insert ไปเมื่อกี้ ปรากฏว่าเกิดการ alert ครับ ผมจะแก้ไขไงดี
( ผม echo ข้อความจาก ckeditor เป็น

Code
<?=database::add_special_chars($description);?>

)

ข้อ 2.
จาก url : www.mysite.com/data.php?user=xxxx&id=yyyy
ปกติผมจะ select ข้อมูลใน mysql ด้วยโค๊ดนี้ครับ

Code
$sql = "SELECT * FROM mydata WHERE name = '".$_GET["user"]."' AND account = '".$_GET["id"]."' ";


ซึ่งท่านๆบอกว่าอาจเกิดการ sql injection ได้ ดังนั้นผมจึงเปลี่ยนโค๊ดของผมใหม่ให้เป็นดังนี้

Code
$user = htmlspecialchars($_GET["user"]); $id = htmlspecialchars($_GET["id"]); $sql = "SELECT * FROM mydata WHERE name = '$user' AND account = '$id' ";


จะสามารถป้องกันการ sql injection ได้หรือยังครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 16:44:30 By : peap
 


 

No. 14



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



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

ตอบความคิดเห็นที่ : 13 เขียนโดย : peap เมื่อวันที่ 2013-06-11 16:44:30
รายละเอียดของการตอบ ::
1.ใช้ strip_tags ครับ
2.ป้องกันทั้ง XSS และ sql injection ไม่ได้ครับ ทำได้แค่แสดงผลได้ถูกต้องเท่านั้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 16:52:26 By : itpcc
 


 

No. 15



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



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


ตอบความคิดเห็นที่ : 14 เขียนโดย : itpcc เมื่อวันที่ 2013-06-11 16:52:26
รายละเอียดของการตอบ ::
แล้วจากข้อ 2 ที่ป้องกัน XSS และ sql injection ไม่ได้ จะทำอย่างไรหรือเขียนโค๊ดแบบไหน ให้ป้องกันได้ครับท่าน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 17:00:29 By : peap
 


 

No. 16



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



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


htmlspecialchars($str) แบบนี้ มันจะแปลงแค่ double quote(") แต่ single quote(') ยังอยู่

htmlspecialchars($str,ENT_QUOTES) แบบนี้จะแปลงทั้ง double quote(") และ single quote(') รวมไปถึงพวก tag html

แบบนี้ป้องกัน sql injection ได้ แต่ว่า ถ้าตอนแสดงผล ใช้ htmlspecialchars_decode($str,ENT_QUOTES) แปลงกลับมาใหม่ก็ยังเสี่ยง XSS อยู่ดี แต่ถ้าไม่แปลงกลับมาก็ปลอดภัยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 17:10:36 By : randOmizE
 


 

No. 17



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



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

ตอบความคิดเห็นที่ : 15 เขียนโดย : peap เมื่อวันที่ 2013-06-11 17:00:29
รายละเอียดของการตอบ ::
ของผมนี่ไม่แน่ใจนะว่าจะป้องกันพวก sql command ได้มั้ย
แต่กันอักขระแปลกๆ กับ xss ได้อยู่
Code (PHP)
mysql_real_escape_string(strip_tags($str));


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 17:22:06 By : itpcc
 


 

No. 18



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



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


ใน php 5+ ตัว magic_quotes_gpc เปิดใช้อยู่แล้ว ซึ่งจะใส่ \ ให้ ถ้ามี single quote มันช่วยป้องกัน injection เบื้องต้นได้อยู่แล้ว

ส่วน htmlspecialchars($str,ENT_QUOTES) จะช่วยให้อุ่นใจมากขึ้น


ลองทดสอบดูครับ ไม่ต้องใช้ htmlspecialchars($str,ENT_QUOTES) กับใช้ htmlspecialchars($str,ENT_QUOTES)

มาทดลองใส่แบบนี้เข้าไป

Code (PHP)
<script>
  alert(55555);

  alert('5555555');
</script>


ถ้าใช้ htmlspecialchars($str,ENT_QUOTES) เราใส่ไปยังไรมันจะออกมาอย่างนั้น แต่ไม่ใช้ htmlspecialchars($str,ENT_QUOTES)

มันแสดงผลออกมาจะ alert(55555) แต่ alert('5555555') จะไม่ได้ เพราะถูก magic_quotes_gpc ใส่ \' กลายเป็น alert(\'5555555\')ไป

แต่ถ้า magic_quotes_gpc ปิด มันจะได้ทั้ง 2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 17:25:57 By : randOmizE
 


 

No. 19



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



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


ถ้าผมเปลี่ยนไปใช้โค๊ดนี้ จะป้องกัน xss กับ sql injection ได้มั้ยครับ

Code
$user = htmlspecialchars($_GET["user"],ENT_QUOTES); $id = htmlspecialchars($_GET["id"],ENT_QUOTES); $sql = "SELECT * FROM mydata WHERE name = '$user' AND account = '$id' ";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 18:07:29 By : peap
 


 

No. 20



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



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


ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 18:14:26 By : randOmizE
 


 

No. 21



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



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


สุดยอดครับท่าน แล้วอย่างนี้จะมีใครมาทำร้ายเว็บผมได้อีกมั้ยครัุบท่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 18:45:09 By : peap
 


 

No. 22



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



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

ตอบความคิดเห็นที่ : 21 เขียนโดย : peap เมื่อวันที่ 2013-06-11 18:45:09
รายละเอียดของการตอบ ::
ยังได้ครับ
dDoS ครับ
แต่ต้องลงทุนนิสหนึ่ง
ขึ้นอยู่กับประสิทธิภาพของโค๊ดด้วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 18:53:20 By : itpcc
 


 

No. 23



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



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


มันจะทำร้ายตัวมันเองแหละ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 19:09:01 By : randOmizE
 


 

No. 24



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

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

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

ตอบความคิดเห็นที่ : 19 เขียนโดย : peap เมื่อวันที่ 2013-06-11 18:07:29
รายละเอียดของการตอบ ::
ผิดจุดประสงค์ของ htmlspecialchars() ครับ
มันไม่ได้ออกแบบมาเพื่อป้องกัน SQL Injection ครับ


Code
$user = htmlspecialchars($_GET["user"],ENT_QUOTES); $id = htmlspecialchars($_GET["id"],ENT_QUOTES); $sql = "SELECT * FROM mydata WHERE name = '$user' AND account = '$id' ";


ถ้าคุณทำอย่างนี้ สมมติคุณมีผู้ใช้ชื่อ S&P
แล้วคุณใช้ htmlspecialchars() ในการ escape $user เพื่อจัดเก็บ
มันอาจจะเหมาะกับการ "จัดเก็บเพื่อแสดงผล" แต่มันไม่เหมาะกับ "จัดเก็บเพื่อค้นหา" ครับ
เพราะเวลาค้นหาด้วยคีย์เวิร์ด S&P มันจะไม่เจอ เพราะข้อมูลในฐานข้อมูลมันเก็บเป็น S&amp;P ไปแล้ว
แต่อาจจะค้านกันว่า ก็ escape คีย์เวิร์ดด้วยสิจะได้หาเจอ ถ้าพูดแบบนั้นมันก็ได้อ่ะครับ แต่ผมไม่ทำ
เพราะมันไม่ใช่รูปแบบการเขียนที่ดี การเก็บข้อมูล ควรจะเก็บในรูปแบบ raw หรือสดๆ ไม่มีการปรุงแต่งใดใด
ถ้าไม่เชื่อผม ลองดูเว็บนอกล่ะกันครับ ว่าเขาพูดกันว่าอย่างไร
http://stackoverflow.com/questions/7245440/should-htmlspecialchars-be-used-on-information-on-input-or-just-before-output
http://stackoverflow.com/questions/14148937/is-using-htmlspecialchars-for-input-output-html-sanitization-for-mysql-databa
http://stackoverflow.com/questions/4882307/when-to-use-htmlspecialchars-function

สรุป ไม่มีใครเขาใช้ฟังก์ชั่นนี้เพื่อ escape เพื่อป้องกัน SQL Injection ครับ
ไม่งั้นจะมีฟังก์ชั่นพวก escape_string() ไว้ทำไม

ใช้ฟังก์ชั่นให้ถูกจุดประสงค์ของมันครับ
// จัดเก็บ $user = mysql_real_escape_string($_GET["user"],ENT_QUOTES); $id = mysql_real_escape_string($_GET["id"],ENT_QUOTES); $sql = "SELECT * FROM mydata WHERE name = '$user' AND account = '$id' ";


// แสดงผล echo htmlspecialchars($user);


สรุป
?????_escape_string() = escape เพื่อใช้ใน query
htmlspecialchars() = escape เืพื่อแสดงผล
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 20:33:25 By : cookiephp
 


 

No. 25



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



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


มันก็จริงอย่างนั้นนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 20:45:20 By : randOmizE
 


 

No. 26



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

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

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

ตอบความคิดเห็นที่ : 18 เขียนโดย : randOmizE เมื่อวันที่ 2013-06-11 17:25:57
รายละเอียดของการตอบ ::
ใน PHP5 magic_quotes_gpc นี่มันปิดไว้นะครับ โดย default เลย
ที่คุณอาจจะคิดว่ามันเปิดไว้ เพราะคุณอาจจะเคยชินกับการใช้พวก web server สำเร็จรูป
เช่น AppServ หรือ XAMPP (เวอร์ชั่นเก่าๆ) ที่จะเปิด magic_quotes_gpc ไว้ให้เป็น default (ซึ่งเป็นอะไรที่แย่มากๆ)
การเขียนโปรแกรม PHP ที่ดีและปลอดภัย ต้องเขียนโดยไม่ใช้ feature นี้ครับ ควรจะปิดไว้ ด้วย .htaccess หรือวิธีอื่น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 20:57:49 By : cookiephp
 


 

No. 27



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



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


ถูกต้องครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 21:16:16 By : randOmizE
 


 

No. 28



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



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

เข้ามาเก็บเกี่ยวความรู้ครับ ชอบกระทู้แนวนี้มากๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-11 23:43:38 By : {Cyberman}
 


 

No. 29



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-12 05:57:17 By : mr.win
 


 

No. 30



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



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


ถ้าเป็นเช่นนั้น ผมควรจะใช้โค๊ด

Code
$user = mysql_real_escape_string($_GET["user"],ENT_QUOTES); $id = mysql_real_escape_string($_GET["id"],ENT_QUOTES); $sql = "SELECT * FROM mydata WHERE name = '$user' AND account = '$id' ";


จะดีและปลอดภัยที่สุดใช่มั้ยครับท่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-12 10:06:37 By : peap
 


 

No. 31



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

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

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

ปลอดภัยสุดหรือเปล่าผมไม่รู้ อาจจะมีอะไรที่ปลอดภัยกว่า
แต่ที่แน่ๆ htmlspecialchars() นี่ไม่ใช่แน่นอน ผิดจุดประสงค์อย่างแรง ไม่เคยเห็นที่ไหนบอกให้ใช้เพื่อการนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-12 10:44:53 By : cookiephp
 


 

No. 32



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



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


พอสรุปคร่าวๆคือ ใช้ mysql_real_escape_string() ตอน insert ป้องกัน sql injection แล้วใช้ htmlspecialchars() ตอนแสดงผล ป้องกัน xss
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-12 12:22:52 By : randOmizE
 


 

No. 33

Guest


พอสรุปคร่าวๆคือ ใช้ mysql_real_escape_string() ตอน insert ป้องกัน sql injection แล้วใช้ htmlspecialchars() ตอนแสดงผล ป้องกัน xss อ่านมาตั้งแต่ต้นมาเข้าใจตอนสรุปนี้แระครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-24 18:16:14 By : arm
 


 

No. 34

Guest


ขอบคุณสำหรับความรู้ php ดีๆ
ติดตาม thaicreate.com ตลอดครับผม

echo "ขอบคุณ". thaicreate.com ."และทุกท่านครับ";
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-07-19 09:33:02 By : คุณ เด่น มือใหม่
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การส่งข้อมูลแบบ GET สามารถเป็นช่องโหว่ของ sql injection ได้หรือเปล่าครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , รับทำบัญชี , โรงงานผลิตครีม , สำนักงานบัญชี , รับจดทะเบียนบริษัท , Pangpond , รถมือสอง

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