จะป้องกันการโจมตีของแฮกเกอร์ได้ดีขึ้นได้อย่างไร ฉันขอแสดงความเห็นส่วนตัว! ประการแรก ไม่ควรใช้โปรแกรมฟรีฟรี เนื่องจากคุณสามารถแชร์โค้ดต้นฉบับได้ ผู้โจมตีจึงสามารถวิเคราะห์โค้ดได้เช่นกัน หากคุณใส่ใจในรายละเอียด ความปลอดภัยของเว็บไซต์ของคุณจะดีขึ้นอย่างมาก แม้ว่าจะมีช่องโหว่เช่น SQL Injection เกิดขึ้น ก็เป็นไปไม่ได้ที่ผู้โจมตีจะลบไซต์ของคุณทันที
เนื่องจากความสะดวกและง่ายต่อการใช้งานของ ASP โปรแกรมพื้นหลังของเว็บไซต์จึงใช้ภาษาสคริปต์ ASP มากขึ้นเรื่อยๆ อย่างไรก็ตาม เนื่องจาก ASP เองก็มีช่องโหว่ด้านความปลอดภัย แฮกเกอร์จึงอาจใช้ประโยชน์จากมันได้หากไม่ระวัง ในความเป็นจริง การรักษาความปลอดภัยไม่ได้เป็นเพียงเรื่องของผู้ดูแลระบบเครือข่ายเท่านั้น แต่โปรแกรมเมอร์ยังต้องใส่ใจกับรายละเอียดด้านความปลอดภัยบางอย่าง และพัฒนาพฤติกรรมการรักษาความปลอดภัยที่ดี ไม่เช่นนั้นจะนำมาซึ่งความเสี่ยงด้านความปลอดภัยอย่างใหญ่หลวงมาสู่เว็บไซต์ของพวกเขา ปัจจุบันโปรแกรม ASP ส่วนใหญ่บนเว็บไซต์มีช่องโหว่ด้านความปลอดภัยไม่ทางใดก็ทางหนึ่ง แต่ถ้าคุณใส่ใจเมื่อเขียนโปรแกรม ก็ยังสามารถหลีกเลี่ยงได้
1. ชื่อผู้ใช้และรหัสผ่านถูกถอดรหัส
หลักการโจมตี: ชื่อผู้ใช้และรหัสผ่านมักเป็นสิ่งที่แฮกเกอร์สนใจมากที่สุด หากพบซอร์สโค้ดในทางใดทางหนึ่ง ผลที่ตามมาก็จะร้ายแรง
ทักษะการป้องกัน: โปรแกรมที่เกี่ยวข้องกับชื่อผู้ใช้และรหัสผ่านจะถูกห่อหุ้มไว้ดีที่สุดบนฝั่งเซิร์ฟเวอร์ และปรากฏในไฟล์ ASP ให้น้อยที่สุดเท่าที่จะทำได้ ชื่อผู้ใช้และรหัสผ่านที่ปรากฏบ่อยครั้งสามารถเขียนลงในไฟล์รวมที่ซ่อนอยู่ได้ หากเกี่ยวข้องกับการเชื่อมต่อกับฐานข้อมูล ควรให้สิทธิ์แก่ผู้ดำเนินการขั้นตอนการจัดเก็บเท่านั้น อย่าให้สิทธิ์แก่ผู้ใช้ในการแก้ไข แทรก หรือลบบันทึกโดยตรง
2. ข้ามการตรวจสอบแล้ว
หลักการโจมตี: โปรแกรม ASP ส่วนใหญ่ที่ต้องได้รับการตรวจสอบในขณะนี้จะเพิ่มคำชี้แจงการตัดสินใจที่ส่วนหัวของหน้า แต่ยังไม่เพียงพอ แฮกเกอร์สามารถข้ามการตรวจสอบและเข้าสู่โดยตรงได้
ทักษะในการป้องกัน: หน้า ASP ที่ต้องตรวจสอบสามารถติดตามชื่อไฟล์ของหน้าก่อนหน้าได้ เฉพาะเซสชันที่ถ่ายโอนจากหน้าก่อนหน้าเท่านั้นที่สามารถอ่านหน้านี้ได้
3. ปัญหาไฟล์ Inc รั่วไหล
หลักการโจมตี: เมื่อมีการสร้างโฮมเพจที่มี ASP และไม่ได้รับการดีบั๊ก เครื่องมือค้นหาบางตัวสามารถเพิ่มโฮมเพจเป็นออบเจ็กต์การค้นหาได้โดยอัตโนมัติ หากใครใช้เครื่องมือค้นหาเพื่อค้นหาหน้าเว็บเหล่านี้ในเวลานี้ พวกเขาจะได้รับตำแหน่งของไฟล์ที่เกี่ยวข้องและสามารถดูรายละเอียดของตำแหน่งและโครงสร้างฐานข้อมูลในเบราว์เซอร์ได้ จึงเผยให้เห็นซอร์สโค้ดที่สมบูรณ์
เคล็ดลับการป้องกัน: โปรแกรมเมอร์ควรตรวจแก้จุดบกพร่องหน้าเว็บอย่างละเอียดก่อนที่จะเผยแพร่ ผู้เชี่ยวชาญด้านความปลอดภัยจำเป็นต้องทำให้ไฟล์ ASP แข็งขึ้น เพื่อไม่ให้ผู้ใช้ภายนอกมองเห็นได้ ขั้นแรก เข้ารหัสเนื้อหาของไฟล์ .inc ประการที่สอง คุณยังสามารถใช้ไฟล์ .asp แทนไฟล์ .inc เพื่อให้ผู้ใช้ไม่สามารถดูซอร์สโค้ดของไฟล์จากเบราว์เซอร์ได้โดยตรง ชื่อไฟล์ของไฟล์ inc ไม่ควรใช้ค่าเริ่มต้นของระบบหรือชื่อที่มีความหมายพิเศษที่ผู้ใช้คาดเดาได้ง่าย ลองใช้ตัวอักษรภาษาอังกฤษที่ผิดปกติ
4. ดาวน์โหลดการสำรองข้อมูลอัตโนมัติ
หลักการโจมตี: ในเครื่องมือบางอย่างสำหรับการแก้ไขโปรแกรม ASP เมื่อสร้างหรือแก้ไขไฟล์ ASP ตัวแก้ไขจะสร้างไฟล์สำรองโดยอัตโนมัติ ตัวอย่างเช่น UltraEdit จะสำรองข้อมูลไฟล์ .bak หากคุณสร้างหรือแก้ไข some.asp ตัวแก้ไข จะสร้างไฟล์ชื่อ some.asp.bak โดยอัตโนมัติ หากคุณไม่ลบไฟล์ bak นี้ ผู้โจมตีจะสามารถดาวน์โหลดไฟล์ some.asp.bak ได้โดยตรง เพื่อที่โปรแกรมต้นทางของ some.asp จะถูกดาวน์โหลด
เคล็ดลับการป้องกัน: ตรวจสอบโปรแกรมของคุณอย่างรอบคอบก่อนอัปโหลดและลบเอกสารที่ไม่จำเป็น ควรระมัดระวังเป็นพิเศษกับไฟล์ที่มีส่วนต่อท้าย BAK
5. อักขระพิเศษ
หลักการโจมตี: กล่องอินพุตเป็นเป้าหมายที่แฮกเกอร์ใช้ พวกเขาสามารถสร้างความเสียหายให้กับไคลเอนต์ผู้ใช้โดยการป้อนภาษาสคริปต์ หากกล่องอินพุตเกี่ยวข้องกับการสืบค้นข้อมูล พวกเขาจะใช้คำสั่งการสืบค้นพิเศษเพื่อรับข้อมูลฐานข้อมูลเพิ่มเติมและแม้กระทั่งตารางของ ทั้งหมด. ดังนั้นจึงต้องกรองช่องป้อนข้อมูล อย่างไรก็ตาม หากดำเนินการตรวจสอบความถูกต้องของอินพุตบนไคลเอนต์เท่านั้นเพื่อปรับปรุงประสิทธิภาพ ก็อาจจะยังคงถูกข้ามไป
ทักษะการป้องกัน: ในโปรแกรม ASP ที่จัดการกล่องอินพุต เช่น กระดานข้อความและ BBS วิธีที่ดีที่สุดคือบล็อกคำสั่ง HTML, JavaScript และ VBScript หากไม่มีข้อกำหนดพิเศษ คุณสามารถจำกัดการป้อนตัวอักษรและตัวเลขให้เหลือเพียงตัวอักษรและ ตัวเลขและบล็อกอักขระพิเศษ ในขณะเดียวกัน ความยาวของอักขระที่ป้อนก็มีจำกัด และไม่เพียงแต่ต้องดำเนินการตรวจสอบความถูกต้องของอินพุตบนฝั่งไคลเอ็นต์เท่านั้น แต่ยังต้องดำเนินการตรวจสอบที่คล้ายกันในโปรแกรมฝั่งเซิร์ฟเวอร์ด้วย
6. ช่องโหว่การดาวน์โหลดฐานข้อมูล
หลักการโจมตี: เมื่อใช้การเข้าถึงเป็นฐานข้อมูลส่วนหลัง หากมีคนรู้หรือคาดเดาเส้นทางและชื่อฐานข้อมูลของฐานข้อมูล Access ของเซิร์ฟเวอร์ด้วยวิธีการต่างๆ เขาก็สามารถดาวน์โหลดไฟล์ฐานข้อมูล Access ได้เช่นกัน ซึ่งเป็นอันตรายมาก
เคล็ดลับการป้องกัน:
(1) ตั้งชื่อไฟล์ฐานข้อมูลของคุณให้ซับซ้อนและแปลกใหม่ และวางไว้ในหลายไดเร็กทอรี ที่เรียกว่าแหวกแนว เช่น หากมีฐานข้อมูลที่ต้องการบันทึกข้อมูลเกี่ยวกับหนังสือ อย่าตั้งชื่อ book.mdb แต่ให้ตั้งชื่อแปลกๆ เช่น d34ksfslf.mdb แล้วใส่ It ถูกวางไว้ในหลายไดเร็กทอรี เช่น ./kdslf/i44/studi/ ซึ่งทำให้แฮกเกอร์รับไฟล์ฐานข้อมูล Access ของคุณโดยการเดาได้ยากยิ่งขึ้น
(2) ห้ามเขียนชื่อฐานข้อมูลในโปรแกรม บางคนชอบเขียน DSN ในโปรแกรม เช่น
DBPath = เซิร์ฟเวอร์ MapPath (cmddb.mdb)
conn.Open driver={ไดรเวอร์ Microsoft Access (*.mdb)};
ถ้ามีคนได้รับโปรแกรมต้นทาง ชื่อของฐานข้อมูล Access ของคุณจะปรากฏให้เห็นได้อย่างรวดเร็ว ดังนั้น ขอแนะนำให้คุณตั้งค่าแหล่งข้อมูลใน ODBC แล้วเขียนสิ่งนี้ในโปรแกรม:
conn.openshujiyuan
(3) ใช้ Access เพื่อเข้ารหัสและเข้ารหัสไฟล์ฐานข้อมูล ขั้นแรก เลือกฐานข้อมูล (เช่น: Employee.mdb) ในเครื่องมือ → ความปลอดภัย → เข้ารหัส/ถอดรหัสฐานข้อมูล จากนั้นคลิก ตกลง จากนั้นหน้าต่างจะปรากฏขึ้นเพื่อบันทึกฐานข้อมูลหลังจากการเข้ารหัส คุณสามารถบันทึกเป็น: Employee1.mdb
ควรสังเกตว่าการกระทำข้างต้นไม่ได้ตั้งรหัสผ่านสำหรับฐานข้อมูล แต่เพียงเข้ารหัสไฟล์ฐานข้อมูลเท่านั้น
ต่อไป เราเข้ารหัสฐานข้อมูล ขั้นแรก ให้เปิด Employee1.mdb ที่เข้ารหัสไว้ เมื่อเปิด ให้เลือกโหมดพิเศษ จากนั้นเลือกเครื่องมือ → ความปลอดภัย → ตั้งรหัสผ่านฐานข้อมูล จากเมนู จากนั้นป้อนรหัสผ่าน ด้วยวิธีนี้ แม้ว่าบุคคลอื่นจะได้รับไฟล์ Employee1.mdb พวกเขาจะไม่สามารถดูเนื้อหาของ Employee1.mdb ได้หากไม่มีรหัสผ่าน
7. ป้องกันการโจมตีแบบฉีดระยะไกล
การโจมตีประเภทนี้ควรเป็นวิธีการโจมตีที่ค่อนข้างธรรมดาในอดีต เช่น การโจมตีแบบ POST ผู้โจมตีสามารถเปลี่ยนค่าข้อมูลที่จะส่งได้ตามต้องการเพื่อให้บรรลุวัตถุประสงค์ของการโจมตี อีกตัวอย่างหนึ่งคือ การปลอมแปลงคุกกี้ ซึ่งสมควรแก่การทำให้โปรแกรมเมอร์หรือเว็บไซต์จดบันทึกยาวๆ อย่าใช้ COOKIES เป็นวิธีการตรวจสอบสิทธิ์ผู้ใช้ ไม่เช่นนั้น คุณจะเหมือนกับทิ้งกุญแจไว้ให้โจร
ตัวอย่างเช่น:
ถ้า trim(Request.cookies (uname))=fqy และ Request.cookies(upwd) =fqy#e3i5.com แล้ว
……..มากกว่า…………
จบถ้า
ฉันคิดว่าเว็บมาสเตอร์หรือเพื่อนทุกคนที่ชอบเขียนโปรแกรมจะต้องไม่ทำผิดพลาดแบบนี้ เป็นเรื่องที่ให้อภัยไม่ได้จริงๆ เราปลอมแปลงคุกกี้มาหลายปีแล้ว หากคุณยังใช้มันอยู่ คุณจะโทษคนอื่นที่ขโมยรหัสผ่านของคุณไม่ได้ มันเกี่ยวข้องกับผู้ใช้ สำหรับรหัสผ่านหรือการเข้าสู่ระบบของผู้ใช้ คุณควรใช้เซสชันที่ปลอดภัยที่สุด หากคุณต้องการใช้คุกกี้ ให้เพิ่มข้อมูลอีกหนึ่งชิ้นในคุกกี้ของคุณ ค่าสุ่มของมันคือ 64 บิต ต้องเดาให้ได้ ตัวอย่าง:
ถ้าไม่ใช่ (rs.BOF หรือ rs.eof) แล้ว
เข้าสู่ระบบ=จริง
เซสชั่น(ชื่อผู้ใช้&sessionID) = ชื่อผู้ใช้
เซสชัน (รหัสผ่าน & รหัสเซสชัน) = รหัสผ่าน
'Response.cookies(ชื่อผู้ใช้)= ชื่อผู้ใช้
'Response.cookies(รหัสผ่าน)= รหัสผ่าน
เรามาพูดถึงวิธีป้องกันการโจมตีแบบรีโมตอินเจคชั่นกันดีกว่า การโจมตีทั่วไปคือการลากไฟล์การส่งแบบฟอร์มเดียวไปยังโลคัลและชี้ Form ACTION=chk.asp ไปยังไฟล์ที่ประมวลผลข้อมูลในเซิร์ฟเวอร์ของคุณ ในหน้าตารางเดียว ขอแสดงความยินดี คุณจะถูกโจมตีโดยสคริปต์
เราจะหยุดการโจมตีระยะไกลได้อย่างไร โปรดดูโค้ดดังนี้ เนื้อหาของโปรแกรม (9)
-
server_v1=Cstr(คำขอตัวแปรเซิร์ฟเวอร์(HTTP_REFERER))
server_v2=Cstr (คำขอตัวแปรเซิร์ฟเวอร์ (SERVER_NAME))
ถ้ากลาง(server_v1,8,len(server_v2))<>server_v2 แล้ว
response.write <br><br><br><center>
ตอบกลับเขียน
response.write เส้นทางที่คุณส่งไม่ถูกต้อง ห้ามส่งข้อมูลจากภายนอกไซต์ โปรดอย่าเปลี่ยนพารามิเตอร์แบบสุ่ม!
ตอบกลับเขียน
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
-
'โดยส่วนตัวแล้วฉันรู้สึกว่าการกรองโค้ดข้างต้นไม่ค่อยดีนัก
'สิ่งนี้มีผลในการกรองที่ดีมากและแนะนำให้ใช้
ถ้า instr(request.servervariables(http_referer),http://&request.servervariables(host) )<1 แล้ว response.write เกิดข้อผิดพลาดบนเซิร์ฟเวอร์ขณะประมวลผล URL
หากคุณใช้วิธีการใด ๆ ในการโจมตีเซิร์ฟเวอร์ คุณควรโชคดีที่การดำเนินการทั้งหมดของคุณได้รับการบันทึกโดยเซิร์ฟเวอร์ เราจะแจ้งให้สำนักงานความมั่นคงสาธารณะและแผนกความมั่นคงแห่งชาติทราบโดยเร็วที่สุดเพื่อตรวจสอบ IP ของคุณ
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
ตัวโปรแกรม(9)
ฉันคิดว่าทุกอย่างจะดีด้วยวิธีนี้ ฉันจึงเพิ่มข้อจำกัดบางอย่างในหน้าตาราง เช่น ความยาวสูงสุด ฯลฯ... แต่พระเจ้าใจร้ายมาก ยิ่งคุณกลัวบางสิ่งมากเท่าไร พระองค์ก็จะยิ่งทำมากขึ้นเท่านั้น อย่าลืมว่าผู้โจมตีสามารถเจาะทะลุขีดจำกัดความยาวของกล่องอินพุตระหว่างการโจมตีได้ เขียนโปรแกรม SOCKET เพื่อเปลี่ยน HTTP_REFERER หรือไม่ ฉันจะไม่. บทความเช่นนี้ถูกเผยแพร่ทางออนไลน์:
----------len.reg-----------------
ตัวแก้ไขรีจิสทรีของ Windows เวอร์ชัน 5.00
[ส่วนขยาย HKEY_CURRENT_USERSoftware&MicrosoftInternet ExplorerMenuExt]
@=C:เอกสารและการตั้งค่าAdministratorDesktoplen.htm
บริบท=dword:00000004
----------จบ---------------------
----------len.htm--------
----------จบ----------------------
การใช้งาน: นำเข้า len.reg ลงในรีจิสทรีก่อน (สังเกตเส้นทางของไฟล์)
จากนั้นคัดลอก len.htm ไปยังตำแหน่งที่ระบุในรีจิสทรี
เปิดหน้าเว็บ วางเคอร์เซอร์บนช่องป้อนข้อมูลที่คุณต้องการเปลี่ยนความยาว แล้วคลิกขวา คุณอาจเห็นตัวเลือกที่เรียกว่าส่วนขยาย
คลิกเพื่อทำมัน! Postscript: สามารถทำได้เช่นเดียวกันกับสคริปต์ที่จำกัดเนื้อหาอินพุต
จะทำอย่างไร? ขีดจำกัดของเรารอดพ้น และความพยายามทั้งหมดของเราสูญเปล่าใช่ไหม ไม่ ยกคีย์บอร์ดขึ้นแล้วปฏิเสธ กลับไปที่การกรองอักขระสคริปต์กันดีกว่า การฉีดที่พวกมันทำนั้นไม่มีอะไรมากไปกว่าการโจมตีด้วยสคริปต์ มาใส่พลังทั้งหมดของเราลงในหน้าต่างๆ หลังจาก ACTION ในหน้า chk.asp เราจะกรองอักขระที่ผิดกฎหมายทั้งหมดออก เราเพียงแต่ให้ข้อมูลเท็จต่อหน้าเราและขอให้พวกเขาเปลี่ยนรีจิสทรี เมื่อพวกเขาทำการเปลี่ยนแปลงเสร็จแล้วเท่านั้น พวกเขาจึงจะรู้ว่าสิ่งที่พวกเขาทำนั้นไร้ประโยชน์
8. โทรจัน ASP
จากที่กล่าวไปแล้ว ฉันอยากจะเตือนผู้ดูแลเว็บฟอรั่มทุกคนให้ระมัดระวังในการอัพโหลดไฟล์: เหตุใดโฮสต์จึงถูกครอบครองโดยผู้โจมตีหลังจากโปรแกรมฟอรั่มถูกละเมิด? เหตุผลก็คือ...ใช่เลย! ASP โทรจัน! เป็นสิ่งที่น่ารังเกียจอย่างยิ่ง ไวรัส? ไม่ เพียงแค่ใส่ไฟล์นี้ลงในโปรแกรมของฟอรั่มของคุณ คุณก็จะสามารถค้นหามันได้ตลอดเวลา คงจะแปลกที่จะไม่อาเจียนเป็นเลือด เราจะป้องกันไม่ให้ ASP Trojans ถูกอัพโหลดไปยังเซิร์ฟเวอร์ได้อย่างไร? วิธีการนั้นง่ายมาก หากฟอรั่มของคุณรองรับการอัพโหลดไฟล์ กรุณาตั้งค่ารูปแบบไฟล์ที่คุณต้องการอัพโหลด ฉันไม่เห็นด้วยกับการใช้รูปแบบไฟล์ที่เปลี่ยนแปลงได้โดยตรงจากโปรแกรม เสร็จสมบูรณ์ ใช่ การปล่อยให้ความสะดวกสบายแก่ตัวคุณเองมากขึ้นจะทำให้ผู้โจมตีสะดวกขึ้นด้วย จะกำหนดรูปแบบได้อย่างไร ฉันได้รวบรวมไว้ที่นี่และแก้ไขรูปแบบหนึ่งแล้ว คุณสามารถดู:
เนื้อหาของโปรแกรม (10)
'ตรวจสอบว่าประเภทไฟล์มีคุณสมบัติหรือไม่'
ฟังก์ชั่นส่วนตัว CheckFileExt (fileEXT)
ฟอรั่มสลัวอัปโหลด
ฟอรั่มอัพโหลด=gif,jpg,bmp,jpeg
Forumupload=split(อัพโหลดฟอรัม,,)
สำหรับ i=0 ถึง ubound (ฟอรัมอัปโหลด)
ถ้า lcase(fileEXT)=lcase(trim(Forumupload(i))) แล้ว
ตรวจสอบ FileExt=true
ออกจากฟังก์ชัน
อื่น
CheckFileExt=false
สิ้นสุดถ้า
ต่อไป
ฟังก์ชันสิ้นสุด
'ตรวจสอบความถูกต้องตามกฎหมายของเนื้อหาไฟล์
ตั้งค่า MyFile = server.CreateObject (Scripting.FileSystemObject)
ตั้ง MyText = MyFile.OpenTextFile (sFile, 1) 'อ่านไฟล์ข้อความ
sTextAll = lcase(MyText.ReadAll): MyText.close
'กำหนดการดำเนินการที่เป็นอันตรายในไฟล์ผู้ใช้
sStr =8 .getfolder .createfolder .deletefolder .createdirectory
.ลบไดเรกทอรี
sStr = sStr & .saveas wscript.shell script.encode
sNoString = แยก (sStr, )
สำหรับ i = 1 ถึง sNoString(0)
ถ้า instr(sTextAll, sNoString(i)) <> 0 แล้ว
sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
Response.write <center><br><br><big>& sFileSave &ไฟล์มีคำสั่งที่เกี่ยวข้องกับไดเร็กทอรีปฏิบัติการ ฯลฯ&_
<br><font color=red>& mid(sNoString(i),2) &</font> ด้วยเหตุผลด้านความปลอดภัย <b> ไม่สามารถอัปโหลดได้ <b>&_</ใหญ่><</กลาง><</html>
การตอบกลับสิ้นสุด
สิ้นสุดถ้า
ต่อไป
เพิ่มลงในโปรแกรมอัปโหลดของคุณเพื่อตรวจสอบ และความปลอดภัยของโปรแกรมอัปโหลดของคุณจะได้รับการปรับปรุงอย่างมาก
อะไร คุณยังกังวลอยู่ไหม? คิดไพ่ทรัมป์ของคุณและขอให้ผู้ให้บริการเว็บโฮสติ้งของคุณช่วยเหลือ ล็อกอินเข้าสู่เซิร์ฟเวอร์และเปลี่ยนชื่อหรือลบไอเท็ม shell.application และ shell.application.1 ใน PROG ID จากนั้นเปลี่ยนชื่อหรือลบทั้งรายการ WSCRIPT.SHELL และ WSCRIPT.SHELL.1 ฮ่าฮ่า ฉันสามารถพูดได้อย่างกล้าหาญว่าโฮสต์เสมือนมากกว่าครึ่งในประเทศจีนไม่เปลี่ยนแปลงเลย ฉันแค่ดีใจที่ผู้ใช้ของคุณให้ความร่วมมือเป็นอย่างดี ไม่อย่างนั้น... ฉันจะลบ ฉันจะลบ ฉันจะลบ ลบ ลบ...