Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

JavaScript ในความปลอดภัยเครือข่าย: โจมตี ป้องกัน และบทบาทใน Cybersecurity

JavaScript และความปลอดภัย: มุมมองสองด้าน

JavaScript เป็นภาษาที่ ทุกเว็บไซต์ใช้ (95%+) ทำให้กลายเป็น พื้นที่โจมตี (Attack Surface) กว้างที่สุด ในโลก แต่ก็เป็น เครื่องมือสำคัญสำหรับนักความปลอดภัย ด้วย

🔴 JavaScript เป็นช่องโหว่ (Attack Vector) - ด้านโจมตี

1. Cross-Site Scripting (XSS) - ช่องโหว่ #1 ของเว็บ

  • Reflected XSS: สคริปต์ใน URL/Parameter → Reflect กลับใน Response → Execute ใน Browser เหยื่อ
  • Stored XSS: สคริปต์เก็บใน Database (Comment, Profile) → Execute ทุกคนที่เปิดหน้านั้น
  • DOM-based XSS: JavaScript ฝั่ง Client จัดการข้อมูลไม่ปลอดภัย (source: location.hash, document.referrer → sink: innerHTML, eval)

Impact: Session Hijacking (Cookie Theft), Credential Theft, Defacement, Malware Download, Keylogging, Crypto Mining

2. Cross-Site Request Forgery (CSRF)

  • หลอก Browser เหยื่อส่ง Request ไปยัง Target Site พร้อม Cookie/Session ของเหยื่อ
  • JavaScript สร้าง Form/Ajax Request อัตโนมัติเมื่อเหยื่อเปิดหน้าเว็บโจมตี

3. Clickjacking / UI Redressing

  • ใช้ iframe + CSS opacity=0 วางปุ่มปลอมบนปุ่มจริง (Like, Transfer, Delete)
  • JavaScript ควบคุมตำแหน่ง iframe ตามเมาส์

4. Client-Side Prototype Pollution

  • JavaScript Prototype Chain ถูกปนเปื้อน → เปลี่ยนพฤติกรรม Object ทั่วไป → RCE/DoS

5. Supply Chain Attacks (NPM/Supply Chain)

  • Malicious Package ใน NPM (event-stream, ua-parser-js, coa, rc) → รันใน Build/Production
  • Dependency Confusion, Typosquatting

6. Exploit Kits & Drive-by Downloads

  • JavaScript บนเว็บที่ถูกโจมตี/โฆษณา (Malvertising) → Fingerprint Browser/Plugin → ส่ง Exploit เหมาะสม (Browser 0-day, Flash, Java)

7. Browser Fingerprinting & Tracking

  • Canvas Fingerprinting, AudioContext, WebGL, Font Enumeration, Battery API, Hardware Concurrency
  • Track ผู้ใช้ข้ามเว็บไซต์ แม้ไม่ Login/ไม่มี Cookie

🟢 JavaScript เป็นเครื่องมือป้องกัน (Defensive) - ด้านป้องกัน

1. Client-Side Security Controls

  • Content Security Policy (CSP): Header `Content-Security-Policy` ควบคุม Script/Style/Font/Image Source ที่โหลดได้ (Mitigate XSS)
  • Subresource Integrity (SRI): `