RESTful Web Services - ความปลอดภัย

เนื่องจาก RESTful Web Services ทำงานร่วมกับ HTTP URL Paths จึงเป็นสิ่งสำคัญมากที่จะต้องปกป้อง RESTful Web Service ในลักษณะเดียวกับที่เว็บไซต์มีความปลอดภัย

ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดที่จะต้องปฏิบัติในขณะออกแบบบริการเว็บ RESTful -

  • Validation- ตรวจสอบอินพุตทั้งหมดบนเซิร์ฟเวอร์ ปกป้องเซิร์ฟเวอร์ของคุณจากการโจมตีด้วย SQL หรือ NoSQL

  • Session Based Authentication - ใช้การรับรองความถูกต้องตามเซสชันเพื่อรับรองความถูกต้องของผู้ใช้เมื่อใดก็ตามที่มีการร้องขอวิธีการบริการเว็บ

  • No Sensitive Data in the URL - ห้ามใช้ชื่อผู้ใช้รหัสผ่านหรือโทเค็นเซสชันใน URL ควรส่งค่าเหล่านี้ไปยัง Web Service ผ่านวิธีการ POST

  • Restriction on Method Execution- อนุญาตให้ใช้วิธีการที่ จำกัด เช่นเมธอด GET, POST และ DELETE เมธอด GET ไม่ควรลบข้อมูลได้

  • Validate Malformed XML/JSON - ตรวจสอบอินพุตที่มีรูปทรงที่ดีที่ส่งผ่านไปยังวิธีการบริการบนเว็บ

  • Throw generic Error Messages - วิธีการบริการเว็บควรใช้ข้อความแสดงข้อผิดพลาด HTTP เช่น 403 เพื่อแสดงการเข้าถึงที่ถูกห้ามเป็นต้น

รหัส HTTP

ซีเนียร์ รหัส HTTP และคำอธิบาย

1

200

OK - แสดงให้เห็นถึงความสำเร็จ

2

201

CREATED- เมื่อสร้างทรัพยากรสำเร็จโดยใช้คำขอ POST หรือ PUT ส่งกลับลิงก์ไปยังทรัพยากรที่สร้างขึ้นใหม่โดยใช้ส่วนหัวตำแหน่ง

3

204

NO CONTENT- เมื่อร่างกายตอบสนองว่างเปล่า ตัวอย่างเช่นคำขอ DELETE

4

304

NOT MODIFIED- ใช้เพื่อลดการใช้แบนด์วิดท์เครือข่ายในกรณีที่มีการร้องขอ GET ตามเงื่อนไข เนื้อหาตอบสนองควรว่างเปล่า ส่วนหัวควรมีวันที่สถานที่ ฯลฯ

5

400

BAD REQUEST- ระบุว่ามีการป้อนข้อมูลที่ไม่ถูกต้อง ตัวอย่างเช่นข้อผิดพลาดในการตรวจสอบข้อมูลขาดหายไป

6

401

UNAUTHORIZED - ระบุว่าผู้ใช้ใช้โทเค็นการตรวจสอบสิทธิ์ที่ไม่ถูกต้องหรือไม่ถูกต้อง

7

403

FORBIDDEN- ระบุว่าผู้ใช้ไม่สามารถเข้าถึงวิธีการที่ใช้ ตัวอย่างเช่นลบการเข้าถึงโดยไม่มีสิทธิ์ของผู้ดูแลระบบ

8

404

NOT FOUND - ระบุว่าวิธีนี้ไม่สามารถใช้ได้

9

409

CONFLICT- ระบุสถานการณ์ความขัดแย้งในขณะที่ใช้งานเมธอด ตัวอย่างเช่นการเพิ่มรายการที่ซ้ำกัน

10

500

INTERNAL SERVER ERROR - ระบุว่าเซิร์ฟเวอร์มีข้อยกเว้นบางอย่างขณะเรียกใช้เมธอด