ผู้แต่ง: BIBI
เมื่อใดก็ตามที่เรานึกถึงแฮกเกอร์ แฮกเกอร์มักจะเป็นแบบนี้ คนโดดเดี่ยวที่แอบเข้าไปในเซิร์ฟเวอร์ของผู้อื่นอย่างเงียบๆ เพื่อทำลายหรือขโมยข้อมูลลับของผู้อื่น บางทีเขาอาจเปลี่ยนหน้าแรกของเรา หรือแม้แต่ขโมยหมายเลขบัตรเครดิตและรหัสผ่านของลูกค้า นอกจากนี้ แฮกเกอร์ยังสามารถโจมตีลูกค้าที่เยี่ยมชมเว็บไซต์ของเราได้ ในเวลาเดียวกัน เซิร์ฟเวอร์ของเราก็กลายเป็นผู้สมรู้ร่วมคิดของเขาด้วย Microsoft เรียกการโจมตีนี้ว่าการโจมตีแบบ "การเขียนสคริปต์ข้ามไซต์" การโจมตีเหล่านี้ส่วนใหญ่เกิดขึ้นเมื่อเว็บไซต์สร้างหน้าเว็บแบบไดนามิก แต่เป้าหมายของแฮ็กเกอร์ไม่ใช่เว็บไซต์ของคุณ แต่เป็นลูกค้าที่เรียกดูเว็บไซต์
คำอธิบายของการโจมตีด้วยสคริปต์ข้ามไซต์
ในนิตยสารชื่อ <<ADVISORY CA--2000-02">> CERT เตือนทุกคน: หากเซิร์ฟเวอร์ไม่ตรวจสอบข้อมูลของลูกค้าอย่างมีประสิทธิภาพ แฮกเกอร์จะป้อนโค้ด HTML ที่เป็นอันตราย เมื่อ HTML เหล่านี้ การป้อนรหัสถูกใช้ในโปรแกรม SCRIPT ซึ่งสามารถใช้เพื่อสร้างความเสียหาย เช่น การแทรกรูปภาพหรือเสียงที่น่าขยะแขยง ฯลฯ และในขณะเดียวกันก็อาจรบกวนการเรียกดูหน้าเว็บที่ถูกต้องของลูกค้าด้วย
เรารู้ว่ามีเพื่อนบางคนถูกชักจูงให้เข้าใช้เว็บไซต์ฟรีที่น่าสงสัย และสิ่งที่พวกเขาได้รับคือหน้าต่างเล็กๆ 10 ถึง 20 หน้าต่าง มักมาพร้อมกับปุ่มที่ไม่ถูกต้องที่สร้างโดย JAVA หรือ JAVASCRIPT การปิดหน้าต่างเหล่านี้ไม่มีประโยชน์ ทุกครั้งที่เราปิดหน้าต่าง หน้าต่างอีก 10 หน้าต่างจะปรากฏขึ้น สถานการณ์นี้มักเกิดขึ้นเมื่อผู้ดูแลระบบไม่พร้อมใช้งาน เหตุการณ์เกี่ยวกับเมาส์เป็นตัวอย่างทั่วไปของแฮกเกอร์ที่ใช้วิธีการข้ามไซต์ SCRIPT เพื่อโจมตีลูกค้า
แท็กและสคริปต์ที่เป็นอันตรายไม่ได้เป็นเพียงการเล่นตลก แต่ยังอาจขโมยข้อมูลและระบบที่เสียหายได้อีกด้วย แฮ็กเกอร์ที่ชาญฉลาดหรือไม่ฉลาดนักก็สามารถใช้ SCRIPT เพื่อรบกวนหรือแก้ไขข้อมูลที่ป้อนไปยังเซิร์ฟเวอร์ได้ รหัส SCRIPT ยังสามารถใช้เพื่อโจมตีระบบของลูกค้าและสร้างความเสียหายให้กับฮาร์ดไดรฟ์ของคุณโดยสิ้นเชิง และคุณต้องรู้ว่าในขณะที่คุณใช้เซิร์ฟเวอร์ สคริปต์ของแฮ็กเกอร์ยังทำงานในที่ปลอดภัยบนเซิร์ฟเวอร์ของคุณอีกด้วย! หากลูกค้าเชื่อถือเซิร์ฟเวอร์ของคุณ พวกเขาก็จะเชื่อถือโค้ด SCRIPT ที่เป็นอันตรายด้วย แม้แต่รหัสนี้ก็มาจากเซิร์ฟเวอร์ของแฮ็กเกอร์ในรูปแบบ <SCRIPT> หรือ <OBJECT>
แม้แต่การใช้ไฟร์วอลล์ (SSL) ก็ไม่สามารถป้องกันการโจมตี SCRIPT ข้ามไซต์ได้ นั่นเป็นเพราะว่าหากอุปกรณ์ที่สร้างโค้ด SCRIPT ที่เป็นอันตรายใช้ SSL ด้วย SSL ของเซิร์ฟเวอร์ของเราไม่สามารถระบุโค้ดได้ เราจะส่งมอบเว็บไซต์ที่ลูกค้าของเราเคยไว้วางใจอย่างมากให้กับแฮกเกอร์หรือไม่? และการมีอยู่ของการทำลายล้างประเภทนี้จะทำลายชื่อเสียงของเว็บไซต์ของคุณโดยสิ้นเชิง
1. ตัวอย่างการโจมตี SCRIPT ข้ามไซต์:
ตามข้อมูลของ CERT โดยทั่วไปอินพุตแบบไดนามิกจะมีรูปแบบต่อไปนี้: พารามิเตอร์ URL องค์ประกอบตาราง COOKISE และคำขอข้อมูล ให้เราวิเคราะห์เว็บไซต์นี้ด้วยสองหน้าเท่านั้น ชื่อเว็บไซต์คือ: MYNICESITE.COM หน้าแรกใช้แบบฟอร์มหรือคุกกี้เพื่อรับชื่อผู้ใช้:
<%@ Language=VBScript %>
<% If Request.Cookies("userName") <> "" จากนั้น
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl & Response.Cookies("userName")
Response.Redirect(strRedirectUrl)
Else %>
<HTML>
<HEAD>
<TITLE>หน้าแรก MyNiceSite.com</TITLE>
</HEAD>
<BODY>
<H2>MyNiceSite .com</H2>
<FORM method="post" action="page2.asp">
ป้อนชื่อผู้ใช้ MyNiceSite.com ของคุณ:
<INPUT type="text" name="userName"">
<INPUT type="submit" name= "submit" value="submit">
</ </FORM>
</BODY>
</HTML>
<% End If %>
หน้าที่สองส่งคืนชื่อผู้ใช้เพื่อต้อนรับ:
<%@ Language=VBScript %>
<% Dim strUserName
If Request.QueryString("userName")<>< "" จากนั้น
strUserName = Request.QueryString("userName")
Else
Response.Cookies("userName") = Request.Form("userName")
strUserName = Request.Form("userName" )
สิ้นสุด ถ้า %>
<HTML>
<HEAD></HEAD>
<BODY>
<H3 align="center">Hello: <%= strUserName %> </H3>
</BODY>
</HTML>
เมื่อคุณปกติ เมื่อใด พิมพ์ข้อความ ทุกอย่างทำงานได้ดี หากคุณป้อนโค้ดสคริปต์: <SCRIPT><alert('Hello.';</script> ป้ายคำเตือน JavaScript จะปรากฏขึ้น:
ครั้งถัดไปที่คุณเยี่ยมชม ป้ายคำเตือนนี้จะปรากฏขึ้นเช่นกัน นี่เป็นเพราะว่ารหัสสคริปต์คือ มีอยู่ในคุกกี้แล้วเมื่อคุณเยี่ยมชมครั้งแรก นี่เป็นตัวอย่างง่ายๆ ของการโจมตีข้ามไซต์
หากคุณคิดว่านี่เป็นกรณีพิเศษ คุณอาจลองไปที่อื่นบนอินเทอร์เน็ตและลองทำด้วยตัวเอง เว็บไซต์รัฐบาลขนาดใหญ่ เว็บไซต์ด้านการศึกษา และเว็บไซต์เชิงพาณิชย์ และบางเว็บไซต์ก็มีสถานการณ์เช่นนี้ด้วยซ้ำ ฉันยังพบว่าเว็บไซต์ที่ฉันใช้บัตรเครดิตบ่อยๆ ไม่ได้กรองข้อมูลใดๆ ก็ตาม
ทุกครั้งที่เราคิด
แบบนั้นของแฮกเกอร์ แฮกเกอร์มักเป็นเช่นนี้: คนโดดเดี่ยวที่แอบเข้าไปในเซิร์ฟเวอร์ของผู้อื่นเพื่อทำลายหรือขโมยข้อมูลลับของผู้อื่น บางทีเขาอาจจะเปลี่ยนหน้าแรกของเรา หรือแม้แต่ขโมยหมายเลขบัตรเครดิตและรหัสผ่านของลูกค้า แฮกเกอร์ยังโจมตีลูกค้าที่เยี่ยมชมเว็บไซต์ของเรา Microsoft เรียกการโจมตีนี้ว่าเป็นการโจมตีแบบ "ข้ามไซต์" การโจมตีเหล่านี้ส่วนใหญ่เกิดขึ้นเมื่อเว็บไซต์สร้างหน้าเว็บแบบไดนามิก แต่เป้าหมายของแฮกเกอร์ไม่ใช่เว็บไซต์ของคุณ แต่เป็นลูกค้า ที่เรียกดูเว็บไซต์
คำอธิบายของการโจมตีด้วยสคริปต์ข้ามไซต์
อยู่ในหนังสือชื่อ <<ADVISORY CA --2000-02>>ในนิตยสาร CERT เตือนทุกคน: หากเซิร์ฟเวอร์ไม่ตรวจสอบข้อมูลของลูกค้าอย่างมีประสิทธิภาพ แฮกเกอร์ จะใส่รหัส HTML ที่เป็นอันตราย เมื่อใช้รหัส HTML เหล่านี้ในโปรแกรม SCRIPT ก็สามารถใช้สร้างความเสียหายได้ เช่น การแทรกรูปภาพหรือเสียงที่น่าขยะแขยง เป็นต้น และในขณะเดียวกันก็อาจรบกวนลูกค้าได้เช่นกัน ' การเรียกดูเว็บที่ถูกต้อง
เรารู้ว่าเพื่อนบางคนถูกชักจูงให้ใช้งานเว็บไซต์ฟรีที่น่าสงสัย และสิ่งที่พวกเขาได้รับมีเพียง 10 หน้าต่าง หน้าต่างเล็ก ๆ เหล่านี้มักจะมาพร้อมกับปุ่มที่ไม่ถูกต้องที่สร้างโดย JAVA หรือ JAVASCRIPT นี่คือ เรียกว่ากับดักหนู การปิดหน้าต่างเหล่านี้ไร้ผล ทุกครั้งที่เราปิดหน้าต่าง จะมีป๊อปอัปเพิ่มขึ้นอีก 10 หน้าต่าง วิธีการใช้สคริปต์ข้ามไซต์เพื่อโจมตีลูกค้า
แท็กที่เป็นอันตรายและ SCRIPT ไม่ใช่แค่การเล่นตลกเท่านั้น แต่ยังสามารถขโมยข้อมูลและทำลายระบบได้อีกด้วย การใช้โค้ด SCRIPT ยังสามารถโจมตีระบบไคลเอนต์ได้ และคุณจำเป็นต้องรู้ว่าในขณะที่คุณกำลังใช้เซิร์ฟเวอร์ สคริปต์ของแฮ็กเกอร์ยังทำงานอยู่ในที่ปลอดภัยบนเซิร์ฟเวอร์ของคุณอีกด้วย เชื่อถือโค้ด SCRIPT ที่เป็นอันตราย แม้ว่าโค้ดจะขึ้นต้นด้วย <SCRIPT> หรือ <OBJECT> ก็ตาม แบบฟอร์มนี้จะมาจากเซิร์ฟเวอร์ของแฮ็กเกอร์
แม้แต่การใช้ไฟร์วอลล์ (SSL) ก็ไม่ได้ป้องกันการโจมตี SCRIPT ข้ามไซต์ นั่นเป็นเพราะว่าหากอุปกรณ์ที่สร้างโค้ด SCRIPT ที่เป็นอันตรายใช้ SSL ด้วย SSL ของเซิร์ฟเวอร์ของเราไม่สามารถระบุโค้ดได้ เราจะส่งมอบเว็บไซต์ที่ลูกค้าของเราเคยไว้วางใจอย่างมากให้กับแฮกเกอร์หรือไม่? และการมีอยู่ของการทำลายล้างประเภทนี้จะทำลายชื่อเสียงของเว็บไซต์ของคุณโดยสิ้นเชิง
1. ตัวอย่างการโจมตี SCRIPT ข้ามไซต์:
ตามข้อมูลของ CERT โดยทั่วไปอินพุตแบบไดนามิกจะมีรูปแบบต่อไปนี้: พารามิเตอร์ URL องค์ประกอบตาราง COOKISE และคำขอข้อมูล ให้เราวิเคราะห์เว็บไซต์นี้ด้วยสองหน้าเท่านั้น ชื่อเว็บไซต์คือ: MYNICESITE.COM หน้าแรกใช้แบบฟอร์มหรือคุกกี้เพื่อรับชื่อผู้ใช้:
<%@ Language=VBScript %>
<% If Request.Cookies("userName") <> "" จากนั้น
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl & Response.Cookies("userName")
Response.Redirect(strRedirectUrl)
Else %>
<HTML>
<HEAD>
<TITLE>หน้าแรก MyNiceSite.com</TITLE>
</HEAD>
<BODY>
<H2>MyNiceSite .com</H2>
<FORM method="post" action="page2.asp">
ป้อนชื่อผู้ใช้ MyNiceSite.com ของคุณ:
<INPUT type="text" name="userName"">
<INPUT type="submit" name= "submit" value="submit">
</ </FORM>
</BODY>
</HTML>
<% End If %>
หน้าที่สองส่งคืนชื่อผู้ใช้เพื่อต้อนรับ:
<%@ Language=VBScript %>
<% Dim strUserName
If Request.QueryString("userName")<>< "" จากนั้น
strUserName = Request.QueryString("userName")
Else
Response.Cookies("userName") = Request.Form("userName")
strUserName = Request.Form("userName" )
สิ้นสุด ถ้า %>
<HTML>
<HEAD></HEAD>
<BODY>
<H3 align="center">Hello: <%= strUserName %> </H3>
</BODY>
</HTML>
เมื่อคุณปกติ เมื่อใด พิมพ์ข้อความ ทุกอย่างทำงานได้ดี หากคุณป้อนโค้ดสคริปต์: <SCRIPT><alert('Hello.';</script> ป้ายคำเตือน JavaScript จะปรากฏขึ้น:
ครั้งถัดไปที่คุณเยี่ยมชม ป้ายคำเตือนนี้จะปรากฏขึ้นเช่นกัน นี่เป็นเพราะว่ารหัสสคริปต์คือ มีอยู่ในคุกกี้แล้วเมื่อคุณเยี่ยมชมครั้งแรก นี่เป็นตัวอย่างง่ายๆ ของการโจมตีข้ามไซต์
หากคุณคิดว่านี่เป็นกรณีพิเศษ คุณอาจลองไปที่อื่นบนอินเทอร์เน็ตและลองทำด้วยตัวเอง เว็บไซต์รัฐบาลขนาดใหญ่ เว็บไซต์เพื่อการศึกษา และเว็บไซต์เชิงพาณิชย์ และบางเว็บไซต์ก็มีสถานการณ์ข้างต้นด้วย
ซ้ำ : ป้องกันการโจมตีสคริปต์ข้ามไซต์
1. วิธีป้องกันเซิร์ฟเวอร์จากการถูกโจมตีโดยสคริปต์ข้ามไซต์
โชคดีที่เทคโนโลยีในการป้องกันการโจมตีสคริปต์ข้ามไซต์มีความสมบูรณ์แบบมากขึ้นเรื่อยๆ ในปัจจุบัน มีวิธีต่างๆ มากมายที่สามารถนำมาใช้เพื่อป้องกันการโจมตีสคริปต์ข้ามไซต์:
1. เข้ารหัสอักขระของเพจที่สร้างขึ้นแบบไดนามิก
สิ่งแรกที่คุณต้องทำคือเข้ารหัสอักขระของเพจที่สร้างขึ้นแบบไดนามิก แฮกเกอร์จะมีความเสี่ยงสูง คุณสามารถเปลี่ยนการตั้งค่าตัวละครเพื่อให้ผ่านการป้องกันของคุณได้อย่างง่ายดาย หากเว็บไซต์ของเราเป็นเว็บไซต์ภาษาอังกฤษ เราจะต้องตั้งค่าการเข้ารหัสอักขระเป็นอักขระละติน ISO-8859-1 สถานการณ์เฉพาะจะเป็นดังนี้:
<META http-equiv="Content-Type" content="text/html ;charset= ISO-8859-1">
2. กรองและจำกัดข้อมูลที่ป้อนทั้งหมด
นี่เป็นวิธีที่สองในการป้องกันการโจมตีด้วยสคริปต์ข้ามไซต์ เมื่อเข้าสู่ระบบ อย่าอนุญาตให้ป้อนอักขระพิเศษเหล่านั้น ดังนั้นเราจึงสามารถเพิ่มโปรแกรม JAVASCRIPT ให้กับเมธอด ONSUBMIT เพื่อทำหน้าที่นี้ให้สมบูรณ์ ในตัวอย่างนี้ เราจำกัดอินพุตไว้ที่ 15 อักขระ สิ่งนี้จะป้องกันการป้อนสคริปต์ที่ยาวกว่า
ในหนังสือ <<บทความฐานความรู้ QA252985">>Microsoft ได้จัดเตรียมโปรแกรม Javascript สั้นๆ เพื่อทำการกรองข้อมูลอินพุตให้เสร็จสมบูรณ์ นอกจากนี้เรายังแนะนำโค้ดนี้สำหรับตัวอย่างของเราตามสถานการณ์เฉพาะ เช่น:
function checkForm() {
document.forms
[0].userName.value = _
RemoveBad(document.forms[0].userName.value);
;
}
//ฟังก์ชัน
รหัสของ MICROSOFT
RemoveBad(strTemp) {strTemp = strTemp.replace(/</>/"/'/%/;/(/)/&/+/- /g ,"");
return strTemp;
}
เมื่อใช้วิธีนี้ คุณสามารถกรองอักขระเหล่านี้ที่มีอยู่ในอินพุตได้:
% < >< [ ] { } ; & + - " '( )
3. ใช้การเข้ารหัส HTML และ URL
แม้ว่าจะใช้งานข้างต้นก็ตาม วิธีการกรองและจำกัดอินพุตที่กล่าวมาข้างต้นเป็นวิธีการป้องกันที่สำคัญมาก แต่ก็ยังไร้ผลต่อการโจมตีทางอีเมลของฉัน เพราะฉันใส่พารามิเตอร์ URL ลงในอีเมลโดยตรง เพื่อตอบสนองต่อสถานการณ์นี้ เราต้องใช้มาตรการรักษาความปลอดภัยที่มีประสิทธิภาพมากขึ้น ถ้าเราใช้ ASP ก็จะแก้ได้ค่อนข้างง่ายกว่า เพียง HTML และ URL เข้ารหัสหน้าเว็บที่สร้างขึ้นแบบไดนามิก สำหรับสถานการณ์ในตัวอย่างของเรา เราได้ทำการเปลี่ยนแปลงต่อไปนี้กับ URL การเปลี่ยนเส้นทางในหน้าอินพุตแรก:
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Response.Cookies("userName"))
ในหน้าดำเนินการ เราได้เพิ่ม:
strUserName = เซิร์ฟเวอร์ .HTMLEncode(Request.QueryString("userName"))
และ
strUserName =server.HTMLEncode(Request.Form("userName"))
Microsoft แนะนำว่าควรเข้ารหัสอินพุตและเอาต์พุตทั้งหมดของเพจไดนามิก สิ่งนี้ควรจะเป็นจริงแม้ว่าจะจัดเก็บและดึงข้อมูลจากฐานข้อมูลก็ตาม วิธีนี้ทำให้คุณสามารถหลีกเลี่ยงการโจมตีสคริปต์ข้ามไซต์ได้ในวงกว้าง
เมื่อต้องการทำเช่นนี้ เพิ่มใน Page1.asp:
<%@ ภาษา=VBScript %><
<% หากคำขอคุกกี้ ("ชื่อผู้ใช้") <>< "" จากนั้น
'เปลี่ยนเส้นทางหากตรวจพบคุกกี้
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Request.Cookies("userName"))
Response.Redirect(strRedirectUrl)
อื่น %>
<HTML>
<HEAD>
<META http-equiv="Content-Type"content="text/html; charset=ISO-8859-1">
</TITLE>หน้าแรกของ MyNiceSite.com</TITLE>
</ HEAD>
</script LANGUAGE="javascript">
<!--
function checkForm() {
document.forms[0].userName.value =
RemoveBad
(document.forms[0].userName.value)
;
//************************************************ ******
//โปรแกรมเมอร์: ไม่ใช่รหัสต้นฉบับ - มาจาก MICROSOFT
// แหล่งที่มาของรหัส:
บทความฐานความรู้ของ Microsoft Q25z985
// คำอธิบาย: ลบอักขระที่ไม่ดีออก
***** *****************************************
ฟังก์ชั่น RemoveBad(strTemp) {
strTemp =strTemp.replace(/</>/"/'/%/;/(/)/&/+/-/g, "");
กลับ strTemp;
}
//-->
</SCRIPT>
<BODY>
<BR>
< <H2>MyNiceSite.com</H2>
<BR>
< <FORM method="post"action="page2.asp" onsubmit="return checkForm ();">
ป้อนชื่อผู้ใช้ MyNiceSite.com ของคุณ:
<INPUT type="text"name="userName" width="10" maxwidth="10">
<INPUT type="submit"name="submit" value=" send">
</FORM>
</BODY>
</HTML>
<% สิ้นสุดถ้า %>
เพิ่มสิ่งต่อไปนี้ใน Page2.asp:
<%@ Language=VBScript %>
< <% Dim strUserName
If Request.QueryString("userName")<><"" จากนั้น
strUserName =server.HTMLEncode(Request.QueryString("userName"))
Else
Response.Cookies("userName") =Request.Form("userName")
strUserName = server.HTMLEncode(Request.Form("userName"))
สิ้นสุดถ้า %>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/ html;charset=ISO-8859-1">
</HEAD>
<BODY>
<H3 align="center">สวัสดี: <%= strUserName %></H3>
</BODY>
</HTML>
ตอนนี้ด้วยเหตุนี้ การโจมตีได้รับการป้องกันอย่างมีประสิทธิภาพ หลังจากที่แท็กและสคริปต์ที่เป็นอันตรายเหล่านั้นถูกเข้ารหัสแล้ว พวกมันจะแสดงในรูปแบบของข้อความ ดังที่แสดงด้านล่าง:
นอกจากนี้เรายังสามารถเพิ่มส่วนประกอบ IIS เพื่อกรองอักขระพิเศษทั้งหมดจากอินพุตแบบไดนามิก สำหรับเว็บไซต์เหล่านั้นที่ได้รับการพัฒนาแล้ว เป็นเรื่องง่ายมากที่จะใช้วิธีนี้เพื่อป้องกันการโจมตีสคริปต์ข้ามไซต์ การควบคุมของเราสามารถสกัดกั้นเป้าหมาย REQUEST จากหน้า ASP และสามารถตรวจจับเนื้อหาของตาราง คุกกี้ สตริงคำขอ และโปรแกรม:
นอกจากนี้เรายังสามารถเพิ่มข้อมูลทางสถิติลงในองค์ประกอบนี้ได้โดยการเขียนไฟล์บันทึก เมื่อใดก็ตามที่ไคลเอนต์ป้อนอักขระที่ไม่ถูกต้อง ส่วนประกอบนี้จะบันทึกที่อยู่ IP และเวลา สำหรับรายละเอียด โปรดดูบทความ <<Roll your Own IIS Application on ASPToday">> ของ Doug Dean
เราเพียงแค่ต้องทำตามขั้นตอนง่ายๆ เพื่อป้องกันการโจมตีสคริปต์ข้ามไซต์อย่างมีประสิทธิภาพ นอกเหนือจากสามวิธีที่กล่าวถึงข้างต้นแล้ว Microsoft และ CERT ยังแนะนำอย่างยิ่งให้ใช้วิธีการที่เรียกว่า "การตรวจสอบสภาพ" เช่น หากมีหน้าต่างป้อนข้อมูลที่อนุญาตให้ป้อนเฉพาะตัวเลข เราจะจำกัดให้ป้อนเฉพาะตัวเลข 0-9 เท่านั้น วิธีที่ Microsoft และ CERT ใช้เพื่อจำกัดอักขระอินพุตนั้นดีกว่าการกรองอักขระพิเศษเพียงอย่างเดียว การทำตามขั้นตอนเหล่านี้ทำให้คุณสามารถปกป้องลูกค้าที่เข้าชมเว็บไซต์ของคุณในขณะที่พวกเขาอยู่ที่นั่นได้
2. วิธีป้องกันเบราว์เซอร์ของคุณจากการโจมตีของแฮกเกอร์:
จะหลีกเลี่ยงการถูกโจมตีเมื่อคุณโรมมิ่งบนอินเทอร์เน็ตได้อย่างไร? Microsoft และ CERT แนะนำไม่ให้ยุ่งวุ่นวายทางออนไลน์ เพื่อตอบสนองต่อสถานการณ์นี้ ผู้เขียนคอลัมน์ใน PC Magazine ชื่อ John Dvorack ให้คำตอบที่น่าสนใจ เขาเชื่อว่านี่เป็นการกระทำที่ไตร่ตรองไว้ล่วงหน้าโดย Microsoft: เพื่อขู่นักเล่นอินเทอร์เน็ตให้เปิดดูไซต์ที่ปลอดภัย เช่น America Online และ MSN.com
ในตัวอย่างของเรา แม้ว่าคุณจะไม่ได้ท่องอินเทอร์เน็ต คุณก็ไม่สามารถหลีกเลี่ยงการถูกแฮกเกอร์ออนไลน์โจมตีได้ น่าแปลกที่อันตรายส่วนใหญ่มาจากเว็บไซต์ที่เราเชื่อถือมากที่สุด หากคุณต้องการให้เว็บไซต์ของคุณปราศจากปัญหา คุณต้องไม่ดาวน์โหลดเนื้อหาแบบไดนามิกหรือคุกกี้ใดๆ สำหรับรายละเอียด โปรดดูข้อมูลที่เกี่ยวข้องของเบราว์เซอร์ของคุณ
Microsoft ยังเตือนให้คุณตั้งค่า Active Script ของเบราว์เซอร์ของคุณเป็นสถานะที่ถูกจำกัดอย่างเข้มงวด และอีเมลของคุณให้เป็นโหมดการรับที่ถูกจำกัดอย่างเข้มงวด โปรดใช้ความระมัดระวังเมื่อคลิกลิงก์ในอีเมล สำหรับข้อมูลเพิ่มเติม โปรดดูหนังสือชื่อ <<บทความฐานความรู้ของ Microsoft Q253117>> ในกรณีที่คุณควรมีประสบการณ์ออนไลน์มากขึ้นและระมัดระวังตลอดเวลา
บทสรุป
หากคุณเป็นอดีตโปรแกรมเมอร์ UNIX คุณอาจไม่รู้ว่า Cross-site Scripting หมายถึงอะไร คุณทราบว่าชื่อผู้ใช้และรหัสผ่านสำหรับผู้ดูแลระบบของหลาย ๆ ไซต์ในการเข้าสู่ระบบคือรูทและรูทตามลำดับ ในทำนองเดียวกันชื่อและรหัสผ่านของผู้ดูแลระบบฐานข้อมูลจำนวนมากคือ sa และรหัสผ่านตามลำดับ คุณยังรู้จัก Webzine (เช่น Phrack และ Alt2600) วิธีการที่พวกเขาให้ไว้สามารถแจ้งให้คุณทราบจุดอ่อนของเซิร์ฟเวอร์บางตัวทีละขั้นตอน สำหรับฮาร์ดแวร์ประเภทนี้ คุณยังทราบด้วยว่าเซิร์ฟเวอร์ฐานข้อมูลเว็บไซต์และเว็บเซิร์ฟเวอร์จำนวนมากไม่ได้ป้องกันตัวเอง เมื่อเจอแฮกเกอร์ เครื่องจะเป็นอัมพาต
แม้ว่าจะเป็นเรื่องง่ายที่จะทำตามขั้นตอนเพื่อปกป้องระบบของเราจากแฮกเกอร์ แต่ระบบของเราก็มักจะถูกแฮ็กเกอร์อยู่เสมอ มีเหตุผลทุกประการที่เชื่อได้ว่าจะมีช่องโหว่ด้านความปลอดภัยใหม่ๆ เกิดขึ้นในปีหน้า บทความที่จัดทำภายใต้การแนะนำของ Mr. John Howard จากบริษัท CERT กล่าวว่า "จากการวิจัยในปัจจุบัน ทุกเว็บไซต์ที่มีชื่อโดเมนบนอินเทอร์เน็ตถูกแฮกเกอร์โจมตีโดยเฉลี่ยอย่างน้อยปีละครั้ง"
สำหรับเซิร์ฟเวอร์ แม้แต่เพียงเซิร์ฟเวอร์เดียวเท่านั้น การโจมตีนั้นทนไม่ได้ การโจมตีด้วยสคริปต์ข้ามไซต์เป็นอีกวิธีหนึ่งที่แฮกเกอร์สามารถใช้ได้ แต่เราสามารถป้องกันไม่ให้การโจมตีรูปแบบนี้เกิดขึ้นได้ตราบใดที่เราดำเนินการประมวลผลง่ายๆ ที่กล่าวถึงข้างต้น