เว็บผมใช้ MSSQL server 2003
ถูก คนกลุ่มนึงเจาะเว็บเข้ามา โดยใช้ sql injection ผมก็หาวิธีป้องกันตามเว็บ มันดันเจอแต่การป้องกัน ของ mysql
แล้ววิธีป้องกันของ MSSQL นี่หาไม่เจอเลย อาการที่ถูกโจมตี ได้แก่1.ถูก เพิ่มสิทธิ์เข้ามา 2.ถูกสั่งshutdown mssql 3.ส่วนการ query เกือบโดน ผมย้ายเว็บทันก่อนพอดี เลยอยากถาม พี่ๆ ว่า 1.สำหรั้บ MSSQL server จะป้องกัน ถูกสั่งshutdownอย่างไร
2.tag คำสั่ง สำหรับ กรอง sqlstring ของ MSSQL server ต้องเขียนอย่างไร
3.หรือมีวิธีป้องกันอื่นๆที่ได้ผลดีดีบ้างหรือเปล่าครับ ขอบคุณสำหรับคำตอบครับ
หลักๆที่ค
kittipat Fri, 07/08/2009 - 19:28
หลักๆที่ควรจะต้องทำก็คือดูพวกตัวอักขระเฉพาะ เช่น " ' ไม่ให้เข้าไปใน query string ตรงน่ะครับ
ไม่แน่ใจว่าเรื่องความยาวของ query string จะมีผลด้วยหรือเปล่า เช่น ยาวเกิน buffer overflow
ยังไงก็ลองปรับวิธีที่ใช้กับ MySQL ดูล่ะกันครับ
article
ampz Sat, 08/08/2009 - 15:13
article ข้างล่างน่าจะ cover ได้เกือบหมดนะครับ (อ่านตามลำดับนะ)
http://dev.mysql.com/tech-resources/articles/guide-to-php-security-ch3.pdf
http://shiflett.org/articles/sql-injection
http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string
ขออภัยครั
ampz Sat, 08/08/2009 - 16:29
In reply to article by ampz
ขออภัยครับ ลืมดูไปว่าเป็น mssql - -"
ใช้ TSQL หรือ
bhattee Sat, 08/08/2009 - 15:42
ใช้ TSQL หรือ Linq แทน
กรองพวกคำสำคัญก่อนโดยเปลี่ยนเป็นอย่างอื่นเช่นรูปภาพหรือคำต้องห้ามขึ้นเป็น XXX
เท่าที่เห็นก็ต้องทำสองจุดนี้
แต่ที่สำคัญคือไปไล่หาจุดที่โปรแกรมเรารั่วน่ะครับ
อย่างแรกเ
saknarak Sun, 09/08/2009 - 01:43
อย่างแรกเลย
กำหนดให้ connect ด้วยสิทธิ์ที่ต่ำที่สุด
คือ สร้าง login ขึ้นมาเฉพาะ
แล้ว map เป็น user ใน databasee เฉพาะที่ต้องการ
กำหนด role ให้เป็นแค่ datareader และ datawriter ก็พอ
ทั้ง 2 role นี้มีสิทธิ์แค่ select และ dml เท่านั้น ไม่มีสิทธิ์ ddl
หรือจะสร้าง role ใหม่ ให้มีสิทธิ์แค่เท่าที่จำเป็นก็ได้
เช่น ไม่มีสิทธิ์ delete เป็นต้น จะช่วยได้ระดับหนึ่ง
ที่สำคัญ อย่าลืมเปลี่ยน account ที่ใช้งานเป็น login นี้ล่ะ
อีกแนวทาง
wiennat Tue, 11/08/2009 - 19:49
อีกแนวทางคือใช้ล็อกอินที่มีสิทธิรัน Stored Procedure เท่านั้นครับ แล้วก็สร้างเฉพาะ Stored Procedures ที่ต้องการ
ถ้าใช้ .NET ก็ลองดูการใช้ ADO.NET กับ Parameterized Query ครับ
onedd.net