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 > ความปลอดภัย Post และ Get ด้วยเครื่องหมาย (") และ (')., รวมไปถึงเรื่องของ mysql_db_query แบบถูกวิธี



 

ความปลอดภัย Post และ Get ด้วยเครื่องหมาย (") และ (')., รวมไปถึงเรื่องของ mysql_db_query แบบถูกวิธี

 



Topic : 049776



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



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




$_POST[aaaa];
$_POST['aaa'];
$_POST["aaaa"];

GET POST อะไรก็แล้วแต่ ไม่ทราบว่าอย่างไหนถึงจะปลอดภัยที่สุดครับ

แล้วก็เรื่องของ mysql_db_query บางครั้งเห็นคนใช้ mysql_query อันไหนปลอดภัยกว่ากันหรอครับ

แล้วก็ผมชอบใช้วิธีนี้
$sql="SELECT.................";
$result=mysql_db_query($dbname,$sql);

ต่อด้วยแบบที่ 1. if (result) { }
และแบบที่ 2. while ($rs=mysql_fetch_array($result)) { }

ไม่ทราบแบบไหนปลอดภัยกว่ากันหรอครับ


เรียนถามทุกๆคนครับผม ผมข้องใจมากเลย กลัวโดนแฮก



Tag : PHP, CakePHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-10-05 13:59:23 By : mrsllive View : 3023 Reply : 7
 

 

No. 1



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

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

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


Quote:
GET POST อะไรก็แล้วแต่ ไม่ทราบว่าอย่างไหนถึงจะปลอดภัยที่สุดครับ

Post จะดีกว่าครับ ส่วนข้ออื่นผมมักจะลุยด้วย mysql_query ไปโลดครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 14:14:08 By : panyapol
 


 

No. 2



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



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


ขอถามหน่อยครับ

จำเป็นด้วยหรือครับที่ต้องใช้นำตัวแปลไปใสไว้ใน $_POST["aaaa"]; หรือ $_GET["aaaa"];ด้วยหรือครับ

เพราะตอนที่ใข้ <form method="get" action="xxx.php"> หรือ <form method="post" action="xxx.php"> เพื่อส่งค่าไปอีกไฟล์

มันค่าปุ๊บ ก็ใช้ค่าในตัวแปลที่ส่งมาได้อยู่แล้ว

ปล.ผมมือใหม่ php อ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 14:35:17 By : zoberranger
 

 

No. 3



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

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

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


งง คำถามครับ งืมๆ....
ลองอ่านนี่ดูนะครับ
PHP Get ($_GET,$HTTP_GET_VARS)
PHP Post ($_POST,$HTTP_POST_VARS)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 14:44:43 By : panyapol
 


 

No. 4



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



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


Quote:
จำเป็นด้วยหรือครับที่ต้องใช้นำตัวแปลไปใสไว้ใน $_POST["aaaa"]; หรือ $_GET["aaaa"];ด้วยหรือครับ


จำเป็นครับ

ถ้า webServer(php.ini) set ค่า register_global=off
หน้าที่จัดการกับฐานข้อมูล จะรับตัวแปรไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 18:25:16 By : iieszz
 


 

No. 5



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

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

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

คือเรื่องของเรื่องคือ ถ้ามันเป็น register global มันจะทับค่าอัตโนมัติครับ เช่น

index.php?abc=1

ดังนั้น ถ้าเขาส่งค่า มาผ่านพารามิเตอร์ หรือ โพสมา ก็ตาม มันจะเอาใส่ค่าตัวแปรปรกติให้อัตโนมัติ เช่นกรณีนี้ มีตัวแปร $abc อัตโนมัติถ้าเราไม่ได้ประกาสหรือ คิดว่าจะใช้ค่า default แต่มันดันมีค่าเป็น 1 ดังนั้น แนะนำว่าควรปิดตัวนี้ครับ


ส่วน

$_POST[aaaa];
$_POST['aaa'];
$_POST["aaaa"];

แนะนำให้ทำแบบที่สองและสามครับ แบบแรกนั้น ค่า aaaa อาจไปตรงกับค่าคงที่ เช่น

define('aaaa', '555'); ก็จะได้เป็นค่า '555' แทน 'aaaa'
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 19:11:47 By : pjgunner.com
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : zoberranger เมื่อวันที่ 2010-10-05 14:35:17
รายละเอียดของการตอบ ::
Quote:
ขอถามหน่อยครับ

จำเป็นด้วยหรือครับที่ต้องใช้นำตัวแปลไปใสไว้ใน $_POST["aaaa"]; หรือ $_GET["aaaa"];ด้วยหรือครับ

เพราะตอนที่ใข้ <form method="get" action="xxx.php"> หรือ <form method="post" action="xxx.php"> เพื่อส่งค่าไปอีกไฟล์

มันค่าปุ๊บ ก็ใช้ค่าในตัวแปลที่ส่งมาได้อยู่แล้ว

ปล.ผมมือใหม่ php อ่ะครับ



แนะนำสำหรับมือใหม่นะครับ ปรับ config ตามนี้
http://www.okvee.net/2010/09/08/how-to-config-php-ini-for-development/

มาที่เรื่อง sql query (mysql_query) หรืออะไรก็ตามแต่ ที่ถูกวิธี มันก็ถูกทั้งนั้น ถ้าทำแล้วเอาไปใช้ที่อื่นๆได้ด้วย
แต่ถ้าว่าด้วยเรื่องความปลอดภัย ให้ระวังเรื่อง sql injection ให้ดี
ยกตัวอย่างคนที่ใช้ mysql_query จะสามารถป้องกันได้ตามกระทู้นี้ครับ..
https://www.thaicreate.com/php/forum/049637.html

แนะนำเครื่องมือตรวจความปลอดภัยเว็บของคุณฟรีๆที่นี่..
http://sectools.org/web-scanners.html
ตัวที่แนะนำคือ Paros proxy


ประวัติการแก้ไข
2010-10-05 20:22:25
2010-10-05 20:27:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 20:22:04 By : mr.v
 


 

No. 7



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



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

เอาเรื่องเครื่องหมาย ' , " ต่างกันยังไง ตามหลักนะครับถ้าเป็นเครื่องหมาย ' จะใช้กับตัวอักษรตัวเดียว อย่างเช่น 'a' ส่วน " จะใช้กับข้อความอย่างเช่น "aaa" แต่สำหรับ php แล้วใช้อันไหนก็ได้เหมือนกันครับ รู้สึกมีคนเคยบอกว่า ' จะประมวลเร็วกว่า " ด้วยนะ แต่ผมก็ไม่รับประกันนะเพราะไม่ได้พิสูจด้วยตนเองในกรณีที่รับตัวแปลมานั้นแนะนำให้ใช้ แบบ 2 กับ 3 ดีกว่าแบบ แรกไม่แนะนำครับ


ส่วน mysql_query กับ mysql_db_query ต่างกัยังไง คือ
mysql_query ใช้ประมวลผลคำสัง sql ได้เลย แต่เราต้องทำการ select ฐานข้อมูลมาก่อนนะครับ
อย่างเช่น mysql_select_db("ชื่อฐานข้อมูล"); แล้วจึงใช้ mysql_query("คำสั่ง sql");

ส่วน mysql_db_query(); จะต้องมีชื่อฐานข้อมูลและคำสั่ง sql ครับ แต่เราไม่ต้อง select ฐานข้อมูลขึ้นมาก่อน
อย่างเช่น mysql_db_query("ชื่อฐานข้อมูล","คำสั่ง sql");


ต่อไป
$sql="SELECT.................";
$result=mysql_db_query($dbname,$sql);

ถือว่าไม่ผิดครับ จะใส่ในตัวแปรก่อนหรือไม่ก็ได้ครับ แต่ผมว่าถ้าใส่ในตัวแปรก่อนมันก็จะทำให้เปลืองความจำไปอีกแนะนำให้ใส่ คำสั่ง sql ไปใน function เลยครับ เช่น
$result=mysql_db_query("test","SELECT.................");

ต่อไป
if (result) { }
ตกเครื่องหมาย $ รึป่าวครับ
ต้องเป็น if ($result) { }
แต่อันนี้ไม่มีปัญหาครับเป็นการเซ็คว่า code sql query ได้หรือไม่ครับ

สุดท้าย
while ($rs=mysql_fetch_array($result)) { }
แนะนำให้เปลี่ยนมาใช้
mysql_fetch_row();
หรือ
mysql_fetch_assoc();
ดีกว่าครับเพราะการประมวลผลจะน้อยกว่าและเร็วกว่าด้วยเหตุผลคือ
mysql_fetch_array(); จะ return ค่ากลับมา เป็นทั้ง array และ associative array ซึ้งมันเกินความจำเป็นตอนเอามาใช้

ส่วน
mysql_fetch_row(); จะ return ค่ากลับมา เป็น array เริ่มตั้งแต่ index ที่ 0 ไปเรื่อย ตามจำนวนที่ select มา
และ
mysql_fetch_assoc(); จะ return ค่ากลับมา เป็น associative array ตามชื่อฟิวล์ใน table ที่ select มา

อธิบายจบแล้วครับตามความรู้ที่ผมมีและเข้าอยู่อาจช่วยได้บ้างไม่มากก็น้อย ควรศึกษาเพิ่มเติมด้วยนะครับ อย่าเชื่อจนกว่าคุณจะได้ลอง

ผิดพลาดประการใดขออภัยมานะที่นี้ด้วยครับ


ประวัติการแก้ไข
2010-10-05 22:39:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-10-05 22:36:37 By : nueng9489
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ความปลอดภัย Post และ Get ด้วยเครื่องหมาย (") และ (')., รวมไปถึงเรื่องของ mysql_db_query แบบถูกวิธี
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่