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

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

หน้า: 1 [2]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: addslash กับ sql injection  (อ่าน 6529 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
MapTwoZa
ก๊วนเสียว
*

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

กระทู้: 366



ดูรายละเอียด
« ตอบ #20 เมื่อ: 13 กันยายน 2013, 00:36:41 »

addslashes()

สามารถป้องกันได้ครับ

แต่การมีผลต่อ SQL INJECTION มันจะไม่สามารถสรุปได้ตรงๆหรอกครับ ว่าเราจะใช้อะไรกันได้ หรือไม่ได้ มันอยู่ที่ เคส SQL Cmd จริงๆครับ

แต่ addslashes() เป็น 1 ในทางเลือกการป้องกัน SQL INJECTION ที่ได้ผล ครับ

addslashes() ก็มีเคสที่โดน sql injection ได้
mysql_real_escape_string() ก็มีเคสที่ยังโดน sql injection ได้
mysql_real_escape_string php ปรับเป็น deprecated ตั้งแต่ 5.3 แล้ว current stable ปัจจุบันก็เอาออกไปแล้ว ไม่สามารถใช้งานได้อีก

prepare statement >> กันได้ 100%
prepare statement >> รับมายังไงก็ใส่ไปได้เลยไม่เสียเวลานั่ง real escape + addslash
prepare statement >> อ่าน query ได้ง่ายกว่าเยอะมากๆ

เค้าใช้ prepare statement กันหมดทั้งโลกแล้วครับ
framework ที่ทำฝั่ง model มาให้ ก็ใช้กันหมด
ทุก ORM framework เค้าก็ใช้ prepare statement กันหมด

ผมยังไม่เห็นว่า การที่ต้องไปนั่ง addslashes() ทุกครั้งที่รับ parameter มา มันน่าใช้กว่าตรงไหนเลยครับ ทำให้รำคาญซะอีก
บันทึกการเข้า

Good code quality Developer Cheesy
dekmv
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,264



ดูรายละเอียด เว็บไซต์
« ตอบ #21 เมื่อ: 13 กันยายน 2013, 00:50:58 »

เป็นประโยชน์มากครับ ขอบคุณมากครับ  wanwan002
บันทึกการเข้า
taokae
Newbie
*

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

กระทู้: 5



ดูรายละเอียด
« ตอบ #22 เมื่อ: 13 กันยายน 2013, 01:20:44 »

แต่ก่อนตอนเด็กๆ ผมทำแบบนี้เลยครับ

โค๊ด:
foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string($value)

โตมาอ่าน code ตัวเองแล้วขำ   wanwan004
« แก้ไขครั้งสุดท้าย: 13 กันยายน 2013, 01:22:22 โดย taokae » บันทึกการเข้า
ฉันไม่มีตัวตน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,817



ดูรายละเอียด
« ตอบ #23 เมื่อ: 13 กันยายน 2013, 12:14:09 »

แต่ก่อนตอนเด็กๆ ผมทำแบบนี้เลยครับ

โค๊ด:
foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string($value)

โตมาอ่าน code ตัวเองแล้วขำ   wanwan004


อธิบายเพิ่มที ผมเขียนแบบนี้ล่ะ อยากรู้ว่าต้องเขียนแบบไหนจึงถูกต้องครับ Tongue
สคริปผมต้องแก้ตรึมเลย wanwan004 เมื่อวานก็เพิ่งเปลี่ยน mysql_fetch_array เป็น mysql_fetch_assoc

ปล.คิดถูกจริงๆที่เข้ามาอ่านกระทู้นี้ wanwan017

เอาข้อมูลมาเพิ่มครับ
http://net.tutsplus.com/tutori...s-mysqli-which-should-you-use/

http://www.php.net/manual/en/mysqli.real-escape-string.php
http://www.php.net/manual/en/ref.pdo-mysql.php
http://www.php.net/manual/en/book.mysqli.php
http://www.php.net/manual/en/ref.pdo-mysql.php

http://www.thaicreate.com/community/php-mysql-to-mysqil.html
http://www.thaicreate.com/comm...ty/basic-mysqli-reference.html
http://www.alcaros.com/blog/index.php?topic=9
« แก้ไขครั้งสุดท้าย: 13 กันยายน 2013, 12:16:40 โดย ฉันไม่มีตัวตน » บันทึกการเข้า
dekmv
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,264



ดูรายละเอียด เว็บไซต์
« ตอบ #24 เมื่อ: 13 กันยายน 2013, 14:17:54 »

สรุปว่า

อ้างถึง
1. การป้องกัน sql injection แบบเก่าๆ เลิกใช้ได้แล้วพวก mysql_real_escape_string
php เค้าเอาออกแล้วครับ (current stable version ปัจจุบันอยู่ที่ 5.5)

2. ไปใช้ MYSQL PDO/ MYSQLi prepare statement แล้ว bind parameter เอา
(ไม่ต้องนั่งกังวลอีกต่อไป รับมายังไงก็ bind ไปอย่างนั้น จบ)

อย่างโดยเร็ว ต้อนรับ PHP 5.5  wanwan044
บันทึกการเข้า
siammbk
ก๊วนเสียว
*

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

กระทู้: 237



ดูรายละเอียด เว็บไซต์
« ตอบ #25 เมื่อ: 15 กันยายน 2013, 21:53:18 »

จริงๆ ถ้ามอง injection จาก url ออก

แค่ดักจาก get url มันก็น่าจะจบแล้วคับ

ส่วนวิธีกรองก็มีหลายวิธีคับ
บันทึกการเข้า

รับออกแบบเว็บไซต์ ทุกรูปแบบ งานใหญ่ๆ ระบบยากๆ ราคาแรงๆ คุยกันคับ
line : siammbk
tel : 095-675-8614
MASTER-X
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,319



ดูรายละเอียด
« ตอบ #26 เมื่อ: 15 กันยายน 2013, 22:21:29 »

เลิกกลัว sql i มาตั้งนานแล้ว ...

กลัวอย่างอื่นมากกว่า
บันทึกการเข้า

*** งดรับจ้าง ***
siammbk
ก๊วนเสียว
*

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

กระทู้: 237



ดูรายละเอียด เว็บไซต์
« ตอบ #27 เมื่อ: 15 กันยายน 2013, 22:24:44 »

ผมสิโดนมากับตัวเอง injection เข้ามาลบ member ลบนั่นลบนี่

จนต้องมานั่งดูว่าเข้ามาจากอะไร เซงมากตอนข้อมูลหาย

ผมเลยยอมเสียเวลามานั่งดู พอคิด logic กันขึ้นมาได้ มันก็ทำอะไรผมไม่ได้ละ สบายใจ  Tongue
บันทึกการเข้า

รับออกแบบเว็บไซต์ ทุกรูปแบบ งานใหญ่ๆ ระบบยากๆ ราคาแรงๆ คุยกันคับ
line : siammbk
tel : 095-675-8614
dekmv
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,264



ดูรายละเอียด เว็บไซต์
« ตอบ #28 เมื่อ: 15 กันยายน 2013, 23:56:44 »

ผมสิโดนมากับตัวเอง injection เข้ามาลบ member ลบนั่นลบนี่

จนต้องมานั่งดูว่าเข้ามาจากอะไร เซงมากตอนข้อมูลหาย

ผมเลยยอมเสียเวลามานั่งดู พอคิด logic กันขึ้นมาได้ มันก็ทำอะไรผมไม่ได้ละ สบายใจ  Tongue

โดนมาสดๆเลยนะครับ  Cry
บันทึกการเข้า
Amdroid
คนรักเสียว
*

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

กระทู้: 175



ดูรายละเอียด เว็บไซต์
« ตอบ #29 เมื่อ: 17 กันยายน 2013, 03:56:21 »

เลิกกลัว sql i มาตั้งนานแล้ว ...

กลัวอย่างอื่นมากกว่า
ก็กันเท่าที่กันได้อะครับ
บันทึกการเข้า

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