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,027

HOME > PHP > PHP Forum > คำสั่งนี้เอาไว้ทำอะไรครับ ตั้งไว้ก่อนเดียวลืมถามอีก อิอิอิอิ คำสั่ง mysql_real_escape_string เอาไว้ทำอะไรหรือครับ



 

คำสั่งนี้เอาไว้ทำอะไรครับ ตั้งไว้ก่อนเดียวลืมถามอีก อิอิอิอิ คำสั่ง mysql_real_escape_string เอาไว้ทำอะไรหรือครับ

 



Topic : 033722



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

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

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




ตั้งไว้ก่อนเดียวลืมถามอีก อิอิอิอิ
คำสั่ง mysql_real_escape_string เอาไว้ทำอะไรหรือครับ
แล้วต้องใช้ในกรณีไหนเอ๋ย
ถามไว้แล้วก็ไปนอนล่ะ อิอิอิอิ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-31 01:35:49 By : somparn View : 2121 Reply : 17
 

 

No. 1



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

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

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

ป้องกันผู้ใช้ใส่คำสั่ง sql มาน่ะ
$id = $_GET['id'];
$query = "UPDATE tb SET name='example' WHERE id='$id'";
แบบนี้ถ้า php config magic_quotes_gpc off ก็โดน sql injection ได้ง่าย
อย่างเช่น $id มีค่า ' OR ''=' ก็จะได้ query
UPDATE tb SET name='example' WHERE id='' OR ''='' ซึ่งเงื่อนไข where เป็นจริงเสมอทำให้ข้อมูลเสียหายหมด

วิธีป้องกันก็ใช้คำสั่ง
$id = mysql_real_escape_string($_GET['id']);
หรือ
$id = (int)$_GET['id'];
เพื่อแปลงค่า string ไม่ให้เป็นคำสั่ง sql






Date : 2009-10-31 06:24:12 By : num
 


 

No. 2



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

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

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

ถ้าเป็น method post ละครับพี่ หนุ่ม สามารถใช้ sql injection ได้หรือเปล่าครับ
ถ้าได้ ผมจะได้กัน ไว้ครับ
Date : 2009-10-31 07:38:23 By : DownsTream
 

 

No. 3



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



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


ได้หมดครับ ขอให้เป็นการรับข้อมูล
Date : 2009-10-31 10:20:17 By : danya
 


 

No. 4



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



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


มีข้อมูลเพิ่มเติม และรายละเอียดที่ครบถ้วนเกี่ยวกับ injection Injection Flaws หรือ SQL Injection หรือ วิธีการทำ SQL injection รวมไปถึงเรียนรู้วิธีการเจาะระบบ Web Application ของแฮกเกอร์และวิธีการป้องกันอย่างได้ผล ดีจิงๆ คับ เลยนำมาฝากกันคับ
http://gotoknow.org/blog/itsec/132033
Date : 2009-10-31 11:12:19 By : gofgof
 


 

No. 5



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

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

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


แสดงว่าเวลาเราไปฝากข้อมูลไว้ที่ webserver แล้วหรือเช่าพื้นที่ต่างๆเขาก็มีการป้องกันตรงนี้ไว้ให้เราส่วนหนึ่งหรือเปล่าครับแล้วเราก็มาเขียนสคริปดักอีกวิธีหนึ่งด้วยหรือเปล่าครับ
Date : 2009-10-31 11:21:53 By : somparn
 


 

No. 6



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

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

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

แหล่ม แค่เอาไปครอบตัวแปร จะเอาไปใช้เลยจันทร์นี้เห่อๆ ขอบคุณครับ
Date : 2009-10-31 11:25:11 By : peterxp
 


 

No. 7



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

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

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

Quote:
แสดงว่าเวลาเราไปฝากข้อมูลไว้ที่ webserver แล้วหรือเช่าพื้นที่ต่างๆเขาก็มีการป้องกันตรงนี้ไว้ให้เราส่วนหนึ่งหรือ เปล่าครับแล้วเราก็มาเขียนสคริปดักอีกวิธีหนึ่งด้วยหรือเปล่าครับ

ส่วนใหญ่เค้าจะตั้ง magic_quotes_gpc on ไว้ครับ
คือจะ escape ไว้ก่อนเลย

http://www.example.com/test.php?id='abc'

$_GET['id'] จะมีค่า \'abc\' ทำให้ไม่ต้องใช้ mysql_real_escape_string
ใน UPDATE tb SET name='example' WHERE id='$id'

แต่ถ้าเขียนแบบนี้ยังไงก็โดนไม่ว่า escape ด้วยวิธีไหน
$id = $_GET['id']
UPDATE tb SET name='example' WHERE id=$id
อย่างเช่น $_GET['id'] มีค่า 1 OR 1=1 ถึง escape ค่า $id ก็ไม่ได้ช่วยอะไรถ้าไม่ได้ใส่เครื่องหมาย ''

Quote:
แหล่ม แค่เอาไปครอบตัวแปร จะเอาไปใช้เลยจันทร์นี้เห่อๆ ขอบคุณครับ

วันก่อนเห็นใช้ adodb อยู่นี่ ใช้ตัวนั้นช่วย escape ให้ดีกว่า เขียนสั้นกว่าอะ
Date : 2009-10-31 12:10:31 By : num
 


 

No. 8



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



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


อ่านแล้ว งงๆ ไม่ค่อยเข้าใจอ่ะครับ

ใช้กับเหตุการณ์ไหนบ้างครับ
Date : 2009-10-31 15:20:32 By : oasiis
 


 

No. 9



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

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

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

ใช้ทุกครั้งที่ใช้ mysql_query แล้วมีการส่งตัวแปรครับ
Date : 2009-10-31 15:52:34 By : num
 


 

No. 10



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

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

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


เพ่หนุ่มไม่รู้ผมเข้าใจถูกหรือเปล่านะครับ
EX.
go.php
link ส่งเข้ามูล id ไปที่ไฟล์ go2.php
Quote:
<a href=go2.php?id=<?=$id?>> Go2</a>


go2.php
รับค่าการส่งมาจาก go.php
Quote:
//$id=$_GET['id']; ตรงนี้ผมต้องใส่คำสั่ง $id = mysql_real_escape_string($_GET['id']); หรือ $id=(int)$_GET['id'] ใช้หรือเปล่าครับ
$id=mysql_real_escape_string($_GET['id']);
$result=mysql_query("Select * From tb Where id='$id' ");


ผมเข้าใจถูกหรือเปล่าครับว่าต้องมีการดักค่าหรือแปรค่าจากที่ส่งมาทุกครั้ง
Date : 2009-10-31 17:27:44 By : somparn
 


 

No. 11



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



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


ขอถามเพิ่มนะครับ ที่ว่า ให้เป็นเพื่อแปลงค่า string ไม่ให้เป็นคำสั่ง sql

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

ถ้าผมถามอะไร งง ก็ รบกวนบอกครับ จะได้ถามไหม่
Date : 2009-10-31 18:14:20 By : tingtongkub
 


 

No. 12



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

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

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

ช่วยตอบให้ละกัน ง่ายๆ
select * from tbl_anme where user='$_GET[user]' and password='$_GET[password]'
และ สมมติในฐานข้อมูล user= test1 และ password=1111
select * from tbl_name where user='test1' and password='1111'
เมื่อ$_GET[user] เท่ากับ test1 และ $_GET[password] เท่ากับ 1111 ก็จะเป็นจริงก็จะแสดงข้อมูลได้
แต่ว่าถ้าเขียนยังงี้ล่ะ
select * from tbl_name where user='test1' and password='x' or '1'
เมื่อ $_GET[user] เท่ากับ test1 และ $_GET[password] เท่ากับ x' or '1
เห็นว่า password ไม่ถูกมันไม่ควรจะแสดงข้อมูลออกมาใช่ป่ะครับ แต่ว่ามันไม่ใช่ยังงั้นมันกลับแสดงข้อมูลออกมาเพราะ or 1 นี้แหล่ะครับทำให้มันแสดงข้อมูลออกมา

มันมีตัวอย่างอื่นๆอีกมากมายสงผลกระทบการฐานข้อมูลเยอะครับ ถ้ามีคนใช้ delete ละจะเกิดความเสียหายขนาดไหน

ปล.เรื่องพวกนี้ผมเองก็เพิ่งจะรู้จากที่บอร์ดนี้เหมือนกัน
Date : 2009-10-31 18:48:27 By : xbeginner01
 


 

No. 13



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



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


อ๋อ พอเข้าใจแล้วครับ ขอบคุณมากๆเลยครับ
ถามอีกข้อนะครับ กรณีที่เป็นการ search หาข้อมูลธรรมดา เช่น ถ้าเราทำฟอมร์ให้กรอกข้อมูลเพื่อค้นหาข้อมูล จาก ตาราง ถ้าเราไม่ได้ใช้ วิธีที่ แนะนำมา แต่ใช้ไห้ค้นหาข้อมูลธรรมดา เขาสามารถลบข้อมูลเราได้หรือไม่ครับ หรือว่า ได้เหมือนกัน
Date : 2009-10-31 19:39:42 By : tingtongkub
 


 

No. 14



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

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

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

พี่ num ครับ สงสัยครับ
mysql_real_escape_string() มันเหมือนกับ addslashes() เปล่าครับ
พอดีผมลองecho ก่อน query มันเหมือนกับใส่ \ ให้กับ ' " \ หลักการเดียวกับ addslashes() เลย
มันมีไรพิเศษกว่า addslashes() เปล่าครับ
Date : 2009-10-31 19:59:24 By : xbeginner01
 


 

No. 15

Guest


ควรจะใช้ mysql_real_escape_string มากกว่าครับ เพราะออกแบบมาให้ใช้กับ mysql โดยเฉพาะครับ
http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string
Date : 2009-10-31 20:10:34 By : num
 


 

No. 16



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

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

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

ขอบคุณพี่ num ครับ เข้าใจแหล่ะ
Date : 2009-10-31 20:18:10 By : xbeginner01
 


 

No. 17



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

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

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

ปรกติมัน escape ให้อยู่แล้ว จะเอาออก ใน php6 ดังนั้นตอนนี้ผมยังใช้ gpc แบบ on อยู่

แต่เฟรมเวอร์คที่กำลังศึกษาอยู่มัน เอา escape string ออกให้อัตโนมัติ ยังไม่ได้ศึกษาพวก ORM
Date : 2009-10-31 20:38:35 By : pjgunner
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คำสั่งนี้เอาไว้ทำอะไรครับ ตั้งไว้ก่อนเดียวลืมถามอีก อิอิอิอิ คำสั่ง mysql_real_escape_string เอาไว้ทำอะไรหรือครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่