แนะนำ: อินสแตนซ์ ASP: การทดสอบเว็บเซิร์ฟเวอร์ ต่อไปนี้เป็นเนื้อหาที่ยกมา: <html> <head> <title> ทดสอบเว็บเซิร์ฟเวอร์ </title> </head> <body> <script L
ข้อผิดพลาดทั่วไปหลายประการที่เกิดจากผู้เริ่มต้น ASP1. เปิดอีกครั้งก่อนที่ชุดบันทึกจะปิด:
-
SQL = เลือก * จากการทดสอบ
Rs.Open SQL, Conn, 1,1
ถ้าไม่ใช่ rs.eof แล้ว
Dim MyName
myName = rs (ชื่อ)
สิ้นสุดถ้า
SQL = SELECT * จาก myBook
Rs.Open SQL, Conn, 1,1
-
วิธีแก้ปัญหา: ปิด Rs.close ก่อนเปิด rs.open ที่สอง
หรือ
ตั้งค่า rs1 = server.createObject
rs1.open sql, conn, 1,1
2. ใช้คำหลัก SQL เพื่อสร้างชื่อตารางหรือชื่อฟิลด์
-
SQL = เลือก * จากผู้ใช้
Rs.Open SQL, Conn, 1,1
-
ผู้ใช้คือคำหลัก SQL
วิธีแก้ปัญหา: เปลี่ยนเป็น
SQL = เลือก * จาก [ผู้ใช้]
3. ใช้การล็อคเพื่ออัปเดต
-
SQL = เลือก * จาก [ผู้ใช้]
Rs.Open SQL, Conn, 1,1
Rs.Addnew
หรือ
RS (ชื่อผู้ใช้) = AA
Rs.update
-
ชุดระเบียนปัจจุบันเปิดให้อ่านอย่างเดียว
แก้ปัญหา:
เปลี่ยน
Rs.Open SQL, Conn, 1,3
4. ค่าฟิลด์เปรียบเทียบที่ใช้ในคำสั่ง Query ไม่ตรงกับประเภทของฟิลด์
-
SQL = เลือก * จาก [ผู้ใช้] โดยที่ id = '; & myid & ';
Rs.Open SQL, Conn, 1,1
-
สมมติว่า ID การออกแบบในตารางเป็นตัวเลขจากนั้นก็เกิดข้อผิดพลาดบางครั้ง
แก้ปัญหา:
sql = select * จาก [ผู้ใช้] โดยที่ id = & myId
5. เกิดข้อผิดพลาดโดยไม่ตรวจสอบค่าตัวแปร
-
sql = select * จาก [ผู้ใช้] โดยที่ id = & myId
Rs.Open SQL, Conn, 1,1
-
สมมติว่าค่าของตัวแปร MyID นั้นเป็นโมฆะในเวลานี้ SQL จะกลายเป็น
sql = select * จาก [ผู้ใช้] โดยที่ id =
แก้ปัญหา:
เพิ่มด้านหน้า
ถ้า isnull (myId) ข้อความแสดงข้อผิดพลาด
6. เกิดข้อผิดพลาดโดยไม่ตรวจสอบประเภทค่าตัวแปร
-
sql = select * จาก [ผู้ใช้] โดยที่ id = & myId
Rs.Open SQL, Conn, 1,1
-
สมมติว่า ID เป็นตัวเลขค่าของตัวแปร MYID ไม่ได้เป็นโมฆะในเวลานี้ แต่เป็นตัวละคร ตัวอย่างเช่น MyID คือ AA ในเวลานี้
จากนั้น SQL จะกลายเป็น
sql = select * จาก [ผู้ใช้] โดยที่ id = aa
แก้ปัญหา:
เพิ่มด้านหน้า
ถ้า isnumeric (myid) = false ข้อความแสดงข้อผิดพลาด
นอกจากนี้ยังสามารถป้องกันการโจมตีช่องโหว่การฉีด SQL ได้อย่างมีประสิทธิภาพ
7. ไม่สามารถอัปเดตได้เนื่องจากการอนุญาต NTFS ในไดเรกทอรีที่ไฟล์ฐานข้อมูลอยู่ ฐานข้อมูลหรือวัตถุเป็นข้อผิดพลาดแบบอ่านอย่างเดียว
ภาพประกอบ:
ระบบ Win2K ยังคงได้รับอนุญาต NTFS ของระบบ Winnt ต่อไป
มีการตั้งค่าความปลอดภัยเริ่มต้นสำหรับโฟลเดอร์ในระบบ
ผู้ใช้เริ่มต้นของระบบเมื่อเข้าถึง WWW ผ่าน HTTP คือผู้ใช้ชื่อ IUSR_computer ซึ่งเป็นของกลุ่มแขก
เมื่อเข้าถึงผ่าน HTTP คุณสามารถแก้ไขข้อมูลโดย ASP หรือ JSP หรือโปรแกรม PHP หรือ. NET:
ตัวอย่างเช่น:
เมื่อเปิดบทความบางอย่างโปรแกรมจะกำหนดจำนวนการอ่านของบทความ = จำนวนการอ่านเดิม 1
ดำเนินการ
conn.execute (อัปเดตศิลปะชุดคลิก = คลิก 1 โดยที่ id = n)
เมื่อมีการทำคำสั่งข้อผิดพลาดจะเกิดขึ้นหากผู้ใช้ชื่อ IUSR_computer ไม่มีสิทธิ์เขียนไปยังฐานข้อมูล
สารละลาย:
ค้นหาไดเรกทอรีที่ฐานข้อมูลอยู่
คลิกขวาที่แท็บ "คุณสมบัติ" ความปลอดภัย "ตั้งค่าสิทธิ์การเขียนของผู้ใช้ชื่อ IUSR_computer (แน่นอนว่ามันสามารถเป็นทุกคนได้)
แบ่งปัน: เคล็ดลับการเพิ่มประสิทธิภาพการเข้ารหัส ASP แปดรายการ ASP (หน้าเซิร์ฟเวอร์ที่ใช้งานอยู่) เป็นเทคโนโลยีการพัฒนาหน้าเว็บแบบไดนามิกตามแพลตฟอร์ม PWS (เว็บเซิร์ฟเวอร์ส่วนบุคคล) และแพลตฟอร์ม IIS (ข้อมูลอินเทอร์เน็ตเซิร์ฟเวอร์) ที่เปิดตัวโดย Microsoft และตอนนี้ได้รับความนิยมมากขึ้นเรื่อย ๆ