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 - ระบุว่าเซิร์ฟเวอร์มีข้อยกเว้นบางอย่างขณะเรียกใช้เมธอด |