คำถามติดแท็ก web-services

บริการบนเว็บเป็นระบบซอฟต์แวร์ที่ออกแบบมาเพื่อรองรับการทำงานร่วมกันระหว่างเครื่องกับเครื่องผ่านเครือข่าย

3
รูปแบบที่แนะนำสำหรับการวางแผนจุดปลาย REST สำหรับการเปลี่ยนแปลงที่คาดการณ์ไว้คืออะไร
การพยายามออกแบบ API สำหรับแอปพลิเคชันภายนอกที่มีการคาดการณ์ล่วงหน้าสำหรับการเปลี่ยนแปลงนั้นไม่ใช่เรื่องง่าย แต่การคิดล่วงหน้าเล็กน้อยจะทำให้ชีวิตง่ายขึ้นในภายหลัง ฉันกำลังพยายามสร้างโครงร่างที่จะรองรับการเปลี่ยนแปลงในอนาคตในขณะที่ยังคงเข้ากันได้แบบย้อนกลับโดยปล่อยให้ตัวจัดการเวอร์ชันก่อนหน้าเข้าแทนที่ ข้อกังวลหลักของบทความนี้คือรูปแบบใดที่ควรปฏิบัติตามสำหรับจุดสิ้นสุดที่กำหนดไว้ทั้งหมดสำหรับผลิตภัณฑ์ / บริษัท ที่กำหนด โครงการฐาน ได้รับเทมเพลต URL ฐานของhttps://rest.product.com/ผมได้วางแผนว่าบริการทั้งหมดอาศัยอยู่ภายใต้/apiพร้อมกับ/authและปลายทางที่ไม่ใช่ส่วนที่เหลืออื่น ๆ /docเช่น ดังนั้นฉันสามารถสร้างจุดปลายพื้นฐานดังนี้: https://rest.product.com/api/... https://rest.product.com/auth/login https://rest.product.com/auth/logout https://rest.product.com/doc/... จุดบริการ ตอนนี้สำหรับปลายทางเอง ความกังวลเกี่ยวกับPOST, GET, DELETEไม่ได้เป็นวัตถุประสงค์หลักของบทความนี้และเป็นกังวลกับการกระทำเหล่านั้นเอง จุดปลายสามารถแบ่งออกเป็นเนมสเปซและการกระทำได้ แต่ละการกระทำจะต้องนำเสนอตัวเองในวิธีที่จะสนับสนุนการเปลี่ยนแปลงขั้นพื้นฐานในประเภทผลตอบแทนหรือพารามิเตอร์ที่จำเป็น การใช้บริการแชทสมมุติที่ผู้ใช้ที่ลงทะเบียนสามารถส่งข้อความเราอาจมีจุดสิ้นสุดดังต่อไปนี้: https://rest.product.com/api/messages/list/{user} https://rest.product.com/api/messages/send ตอนนี้เพื่อเพิ่มการรองรับเวอร์ชันสำหรับการเปลี่ยนแปลง API ในอนาคตซึ่งอาจแตกหัก เราสามารถเพิ่มลายเซ็นเวอร์ชันหลังจาก/api/หรือหลังจาก/messages/นั้น เมื่อกำหนดsendจุดสิ้นสุดเราจะได้สิ่งต่อไปนี้สำหรับ v1 https://rest.product.com/api/v1/messages/send https://rest.product.com/api/messages/v1/send ดังนั้นคำถามแรกของฉันคือสถานที่ที่แนะนำสำหรับตัวระบุรุ่นคืออะไร ผู้จัดการรหัสควบคุม ดังนั้นตอนนี้เราได้สร้างขึ้นแล้วเราจำเป็นต้องสนับสนุนเวอร์ชันก่อนหน้าดังนั้นเราจึงต้องจัดการกับรหัสสำหรับเวอร์ชั่นใหม่แต่ละเวอร์ชั่นซึ่งอาจเลิกใช้ไปตามกาลเวลา สมมติว่าเรากำลังเขียนจุดปลายใน Java เราสามารถจัดการสิ่งนี้ผ่านแพ็คเกจ package com.product.messages.v1; public interface MessageController { …

2
ย้ายจาก JSON ไปยัง Protobuf มันคุ้มหรือไม่
เรามีเว็บเซอร์วิส REST ที่สามารถให้บริการ XML หรือ JSON (WCF) ฉันกำลังคิดจะใช้ Protobufs ทำไม? ข้อดี โหลดบนเซิร์ฟเวอร์น้อยลง ขนาดข้อความที่เล็กลง - ทราฟฟิกน้อย มันง่ายกว่าที่จะสลับตอนนี้ในภายหลัง ข้อเสีย จะต้องมีการดำเนินการ การแก้ไขปัญหา / การดมกลิ่นเพื่อแก้ไขข้อบกพร่องจะทำได้ยากขึ้น ฉันสามารถเปิดใช้งาน GZip บนเซิร์ฟเวอร์และ JSON จะใช้ปริมาณการใช้งานมาก คุณมีข้อเสนอแนะและ / หรือประสบการณ์เกี่ยวกับเรื่องนี้อย่างไร?

5
ฉันจะทดสอบหน่วยเรียนที่ต้องใช้บริการโทรทางเว็บได้อย่างไร
ฉันพยายามทดสอบคลาสที่เรียกบริการเว็บของ Hadoop รหัสมีรูปแบบค่อนข้างมาก: method() { ...use Jersey client to create WebResource... ...make request... ...do something with response... } เช่นมีวิธีสร้างไดเรกทอรีวิธีสร้างโฟลเดอร์เป็นต้น ระบุว่ารหัสนั้นเกี่ยวข้องกับบริการเว็บภายนอกที่ฉันไม่สามารถควบคุมได้ฉันจะทดสอบหน่วยนี้ได้อย่างไร ฉันสามารถลองและเยาะเย้ยไคลเอนต์บริการเว็บ / การตอบสนอง แต่นั่นทำลายแนวทางที่ฉันได้เห็นมากเมื่อเร็ว ๆ นี้: "อย่าเยาะเย้ยวัตถุที่คุณไม่ได้เป็นเจ้าของ" ฉันสามารถตั้งค่าการใช้บริการเว็บจำลองที่ยังคงเป็นการทดสอบหน่วยหรือว่าเป็นการทดสอบการรวมหรือไม่ เป็นไปไม่ได้หรือที่จะทำการทดสอบหน่วยในระดับต่ำนี้ผู้ประกอบการ TDD จะทำเช่นนี้ได้อย่างไร?

4
REST กับ RESTful และบริการเว็บ“ ปกติ” - เหมือนกันหรือไม่?
ฉันได้อ่านคำจำกัดความและการอภิปรายเกี่ยวกับแอปพลิเคชัน REST และ / หรือ RESTful แล้ว แต่ฉันยังไม่เข้าใจความหมายที่แท้จริงของมัน ฉันมักจะทำงานกับแอพที่ดึงข้อมูลผ่าน GET หรือส่งข้อมูลผ่าน POST ไปยังเว็บเซอร์วิสบางตัว (โดยปกติจะเป็นสคริปต์ PHP) จากนั้นรับข้อมูลจากฐานข้อมูลหรือเขียนลงในฐานข้อมูล ตอนนี้เป็นแอปที่เงียบสงบหรือไม่ ถ้าไม่ใช่แอป RESTful จะเป็นอย่างไร อะไรคือความแตกต่างระหว่างแนวคิด RESTful และแนวคิดที่ฉันทำงานด้วย กรุณาอธิบายผ่านตัวอย่าง นอกจากนี้บางคนกำลังพูดถึง REST และบางคนเกี่ยวกับแอป RESTful ฉันพบว่าคำว่า REST หมายถึงแนวคิดเชิงทฤษฎีในขณะที่ RESTful จะใช้เมื่อเราพูดถึงแอพที่เฉพาะเจาะจง ถูกต้องหรือมีความแตกต่างระหว่างแอพ REST และ RESTful จริงหรือไม่?

4
การรักษาความสมบูรณ์ของ Referential ระหว่างไคลเอนต์มือถือและเซิร์ฟเวอร์
ดังนั้นฉันจึงมีระบบที่ค่อนข้างเรียบง่าย ลูกค้าโทรศัพท์มือถือสร้างบันทึกในฐานข้อมูล SQLite ที่ผมอยากจะได้ซิงค์กับเซิร์ฟเวอร์ระยะไกล SQL (ที่ใช้ร่วมกันกับลูกค้ามือถืออื่น ๆ ) ดังนั้นเมื่อฉันสร้างระเบียนใหม่ในตาราง sqlite ของโทรศัพท์ฉันจะผลักดันการเปลี่ยนแปลงไปยังบริการระยะไกลของฉันผ่าน RESTful API ปัญหาที่ฉันมีคือฉันจะสั่งซื้อคีย์หลักอย่างไรเพื่อไม่ให้เกิดการชนกันของข้อมูล (เช่นบันทึกในโทรศัพท์มีคีย์หลักเดียวกันกับระเบียนที่แตกต่างกันโดยสิ้นเชิงบนเซิร์ฟเวอร์) "แนวปฏิบัติที่ดีที่สุดสำหรับการอ้างอิงระเบียนบนไคลเอนต์คืออะไรและสำหรับการอ้างอิงระเบียนเดียวกันบนเซิร์ฟเวอร์?
21 sql  web-services 

4
ทำไมผู้คนถึงคิดว่า SOAP เลิกใช้แล้ว [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ในขณะที่เรียกดู SO วันนี้ฉันพบคำถามนี้ที่นี่และเริ่มด้วย: แน่นอนว่าคุณจะบอกฉันว่าสบู่ไม่ได้ให้ความสำคัญกับสิ่งใดเลยและฉันก็บังคับให้ใช้มัน พบคำแถลงมากมายเช่นนี้จนถึงตอนนี้อันนี้เพิ่งกระตุ้นให้ฉันถามคำถามนี้ REST มีการใช้งาน SOAP มีการใช้งานในบางสถานที่ที่พวกเขาตัดกันเป็นฟังก์ชันการทำงาน แต่ไม่สามารถใช้แทนกันได้ ดังนั้นฉันจึงสงสัยว่าทำไมผู้คนถึงคิดว่า SOAP นั้น "เลิกใช้แล้ว"? มันเป็นความไม่รู้? ความซับซ้อนของรายละเอียดของ SOAP และ WS- *? ส่วนที่เหลือ hype? อะไร? หากคุณคิดว่าเลิกใช้สบู่แล้วโปรดบอกฉันทีว่าทำไม ฉันอยากรู้!
20 web-services  soa  soap 

2
มีใครเคยอ้างสิทธิ์รับประกันในใบรับรอง SSL หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ใบรับรอง SSL มักจะโฆษณาจำนวนการรับประกันหรือการรับประกันที่แตกต่างกันเช่น $ 500,000 หรือ $ 1m คำถามของฉันคือในประวัติศาสตร์ของ SSL มีใครเคยอ้างสิทธิ์รับประกันอย่างใดอย่างหนึ่งเหล่านี้สำเร็จหรือไม่? เคยมีคดีไหม? ถ้าไม่เป็นธรรมหรือไม่ที่จะถือว่าพวกเขาเป็นเพียงลูกเล่นทางการตลาด

4
ทำไมไม่ใช้ SQL แทน GraphQL
เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้เกี่ยวกับ GraphQL ซึ่งอ้างว่าเหนือกว่า RESTful อย่างไรก็ตามฉันเริ่มสงสัยว่าทำไมเราไม่ใส่คำสั่ง SQL ลงในคำขอ HTTP GET ตัวอย่างเช่นใน GraphQL ฉันจะเขียน { Movie(id: "cixos5gtq0ogi0126tvekxo27") { id title actors { name } } } ซึ่งไม่ง่ายกว่า SQL แบบเดียวกัน SELECT id, title FROM movies WHERE id = cixos5gtq0ogi0126tvekxo27; SELECT actors.name FROM actors, actors_movies WHERE actors.id == movies.actor_id AND movie.id == …

3
เหตุใดจึงต้องใช้บริการเว็บแทนการเข้าถึงฐานข้อมูลเชิงสัมพันธ์โดยตรงสำหรับแอป Android
ฉันค้นหาบนเว็บวิธีการเข้าถึงอย่างมีประสิทธิภาพในฐานข้อมูลกลางที่สถานที่ห่างไกลและฉันได้พบกับข้อเสนอแนะในการใช้บริการเว็บแทนการเข้าถึงโดยตรง (เช่น JDBC เป็นต้น) ไปยังฐานข้อมูลฉันสงสัยว่าเหตุผลนั้นและคำแนะนำอื่น ๆ .

5
สถาปัตยกรรม API ภายในและภายนอก
บริษัท ที่ฉันทำงานเพื่อรักษาผลิตภัณฑ์ SaaS ที่ประสบความสำเร็จซึ่งเติบโตขึ้นอย่าง "เป็น" ในช่วงหลายปีที่ผ่านมา เราวางแผนที่จะขยายสายผลิตภัณฑ์ใหม่ที่จะใช้ข้อมูลร่วมกันกับผลิตภัณฑ์ที่มีอยู่ เพื่อสนับสนุนสิ่งนี้เราต้องการรวมตรรกะทางธุรกิจไว้ในที่เดียวนั่นคือเลเยอร์บริการเว็บ เลเยอร์ WS จะถูกใช้โดย: เว็บแอพพลิเคชั่น เครื่องมือในการนำเข้าข้อมูล เครื่องมือที่จะรวมเข้ากับซอฟต์แวร์ไคลเอ็นต์อื่น ๆ (ไม่ใช่ API ต่อ se) เราต้องการสร้าง API ที่ลูกค้าของเราสามารถใช้เพื่อสร้างการรวมระบบของพวกเขาเอง เรากำลังดิ้นรนกับคำถามต่อไปนี้: ควรใช้ API ภายใน (รู้จักกันว่าเลเยอร์ WS) และ API ภายนอกเป็นหนึ่งเดียวกันพร้อมการตั้งค่าความปลอดภัยและการอนุญาตเพื่อควบคุมสิ่งที่สามารถทำได้โดยใครหรือควรเป็นสองแอปพลิเคชันแยกต่างหากที่ API ภายนอกเรียก API ภายใน ชอบแอปพลิเคชันอื่นหรือไม่ จนถึงตอนนี้การถกเถียงของเราดูเหมือนว่าการแยกพวกเขาอาจปลอดภัยมากขึ้น แต่จะเพิ่มค่าใช้จ่าย คนอื่น ๆ ทำอะไรในสถานการณ์คล้ายกัน
19 api  web  web-services 

3
การจัดการการต่ออายุโทเค็น / การหมดอายุเซสชันใน RESTful API
ฉันกำลังสร้าง RESTful API ที่ใช้โทเค็น JWT สำหรับการรับรองความถูกต้องของผู้ใช้ (ที่ออกโดยloginปลายทางและส่งในส่วนหัวทั้งหมดหลังจากนั้น) และโทเค็นต้องได้รับการรีเฟรชหลังจากระยะเวลาคงที่ (เรียกrenewจุดสิ้นสุด ) เป็นไปได้ว่าเซสชัน API ของผู้ใช้จะไม่ถูกต้องก่อนที่โทเค็นจะหมดอายุดังนั้นจุดสิ้นสุดทั้งหมดของฉันเริ่มต้นด้วยการตรวจสอบว่า: 1) โทเค็นยังคงถูกต้องและ 2) เซสชันของผู้ใช้ยังคงถูกต้อง ไม่มีวิธีในการทำให้โทเค็นเป็นโมฆะโดยตรงเนื่องจากไคลเอนต์เก็บไว้ในเครื่อง ดังนั้นจุดสิ้นสุดของฉันทั้งหมดต้องส่งสัญญาณให้ลูกค้าทราบถึงสองเงื่อนไขที่เป็นไปได้: 1) ถึงเวลาต่ออายุโทเค็นหรือ 2) เซสชันนั้นไม่ถูกต้องและพวกเขาไม่ได้รับอนุญาตให้เข้าถึงระบบอีกต่อไป ฉันสามารถนึกถึงทางเลือกสองทางสำหรับจุดสิ้นสุดของฉันในการส่งสัญญาณลูกค้าเมื่อเกิดหนึ่งในสองเงื่อนไข (สมมติว่าลูกค้าสามารถปรับให้เข้ากับตัวเลือกใดตัวเลือกหนึ่ง): ส่งคืนรหัส http 401 (ไม่ได้รับอนุญาต) หากเซสชันไม่ถูกต้องหรือส่งคืนรหัส 412 (เงื่อนไขเบื้องต้นล้มเหลว) เมื่อโทเค็นหมดอายุและถึงเวลาเรียกrenewจุดสิ้นสุดซึ่งจะส่งคืนรหัส 200 (ok) ส่งคืน 401 สำหรับการส่งสัญญาณว่าเซสชันไม่ถูกต้องหรือโทเค็นหมดอายุแล้ว ในกรณีนี้ลูกค้าจะโทรหาrenewปลายทางทันทีถ้ามันคืน 200 โทเค็นจะถูกรีเฟรช แต่ถ้าrenewกลับ 401 ก็หมายความว่าไคลเอนต์ออกจากระบบ คุณจะแนะนำทางเลือกใดจากสองข้อด้านบน อันไหนจะเป็นมาตรฐานมากขึ้นเข้าใจง่ายและ / หรือสงบมากขึ้น? หรือคุณจะแนะนำวิธีการอื่นโดยสิ้นเชิง? คุณเห็นปัญหาที่ชัดเจนหรือความเสี่ยงด้านความปลอดภัยที่มีตัวเลือกอย่างใดอย่างหนึ่ง? …

7
การเรียกฐานข้อมูล mutliple นั้นสำคัญมากกับการโทรผ่านเครือข่ายสำหรับเว็บ API หรือไม่?
ที่หนึ่งในนายจ้างของฉันเราทำงานกับ REST (แต่ก็ใช้กับ SOAP) API ด้วย ลูกค้าซึ่งเป็น UI ของแอปพลิเคชันจะโทรผ่านเว็บ (LAN ในการปรับใช้การผลิตทั่วไป) ไปยัง API API จะทำการเรียกไปยังฐานข้อมูล ชุดรูปแบบหนึ่งที่เกิดขึ้นในการสนทนาของเราคือประสิทธิภาพ: บางคนในทีมเชื่อว่าคุณไม่ควรมีการเรียกฐานข้อมูลหลายครั้ง (โดยปกติจะอ่าน) จากการเรียก API เดียวเนื่องจากประสิทธิภาพ คุณควรปรับให้เหมาะสมเพื่อให้การเรียก API แต่ละครั้งมีการเรียกฐานข้อมูลเพียงหนึ่งครั้งเท่านั้น แต่นั่นสำคัญจริงๆเหรอ? พิจารณาว่า UI ต้องทำการเรียกเครือข่ายไปยัง API มันค่อนข้างใหญ่ (ลำดับความสำคัญเป็นมิลลิวินาที) ฐานข้อมูลได้รับการปรับให้เหมาะสมเพื่อเก็บสิ่งต่าง ๆ ในหน่วยความจำและดำเนินการอ่านอย่างรวดเร็ว (เช่น SQL Server โหลดและเก็บทุกอย่างไว้ใน RAM และใช้ RAM ฟรีของคุณเกือบทั้งหมดถ้าทำได้) TLDR: เป็นเรื่องสำคัญหรือไม่ที่จะต้องกังวลเกี่ยวกับการโทรฐานข้อมูลหลายครั้งเมื่อเราทำการโทรผ่านเครือข่ายผ่าน LAN หรือไม่? ถ้าเป็นเช่นนั้นทำไม เพื่อความชัดเจนฉันกำลังพูดถึงลำดับความสำคัญ - ฉันรู้ว่าขึ้นอยู่กับข้อมูลเฉพาะ …

4
Microservices REST หรือ AMQP ซึ่งในกรณีนี้
ฉันได้อ่านบทความมากมายเกี่ยวกับสถาปัตยกรรมไมโครไซต์และฉันสงสัยว่าเมื่อไรที่จะใช้ AMQP หรือ REST ฉันได้อ่านว่าการเชื่อมต่อระหว่างบริการเป็นสิ่งที่ดีและ AMQP ดูเหมือนจะเป็นทางเลือกที่ดีในกรณีนี้ แต่ถ้าเราใช้ AMQP นี่หมายความว่าเราไม่จำเป็นต้องใช้ปลายทาง REST อีกต่อไป (แต่นั่นหมายความว่าเราสูญเสียแนวคิด HATEOAS) แต่ REST เป็นวิธีที่ดีในการสร้างบริการของฉันหรือไม่ เพราะฉันจะไม่ใช้จุดปลายใด ๆ ... ในกรณีใดอันหนึ่งดีกว่าอีกอัน? เมื่อใดที่ฉันควรใช้รายการใดรายการหนึ่ง

3
องค์ประกอบบริการ SOA ใช้งานได้จริงหรือไม่
หนึ่งในหลักการออกแบบการบริการ SOA หลักคือหลักการบริการการรวมบริการ ( https://en.wikipedia.org/wiki/Service_composability_principle ) แนวคิดก็คือการสร้างบริการใหม่โดยใช้สิ่งที่มีอยู่เป็นหน่วยการสร้างจะสามารถพัฒนาบริการใหม่ได้อย่างรวดเร็ว ชนิดคล้ายกับวิธีที่คุณเรียกวิธีการที่มีอยู่ของวัตถุเมื่อคุณใช้วิธีการใหม่ นี่คือสิ่งที่การเพิ่มประสิทธิภาพการผลิตส่วนใหญ่จาก SOA ควรมาจาก มีคนทำสิ่งนี้จริงๆในทางปฏิบัติหรือไม่? ฉันได้เห็นสิ่งนี้ซ้ำไปซ้ำมาอย่างไม่มีที่สิ้นสุดในข้อความที่เป็นลายลักษณ์อักษร แต่ยังไม่เคยมีประสบการณ์การใช้งานจริงมาใช้ ข้อความส่วนใหญ่ไม่ได้กล่าวถึงการจัดการธุรกรรมใด ๆซึ่งดูเหมือนว่าฉันจะเป็นอุปสรรคที่ใหญ่ที่สุดในการตระหนักถึงบริการที่รวบรวมได้ ก่อนอื่นคุณต้องแก้ไขปัญหาการทำธุรกรรมก่อนที่จะสามารถเขียนบริการที่ไม่สำคัญ แน่นอนถ้าตัวอย่างมีบริการ "findCurrentTime ()" และ "writeLogMessage ()" มันง่ายที่จะไม่กังวลเกี่ยวกับการทำธุรกรรม แต่ไม่เมื่อมีตัวอย่างในโลกแห่งความจริงเช่น "depositMoney ()" และ "drawMoney () " ฉันรู้สองตัวเลือก: ใช้งานธุรกรรมจริงกับ WS-Atomic Transaction หรือ ใช้โซลูชันที่อิงตามค่าตอบแทนซึ่งชดเชยการเรียกไปยัง A ด้วย "CancA ()" หรือ somesuch หากการเรียกไปยัง B ล้มเหลว ทั้งสองอย่างดูมีปัญหามาก / ใกล้จะใช้ไม่ได้กับฉัน: ธุรกรรม …

1
แนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยเว็บ API คืออะไร
ฉันต้องสร้าง API บริการเว็บสำหรับแอพมือถือของเราเพื่อโต้ตอบกับเซิร์ฟเวอร์และฐานข้อมูลของเรา (ใน ASP.Net MVC 4 แต่มันไม่ค่อยเกี่ยวข้องกัน) การกระทำส่วนใหญ่ไม่ต้องการให้ผู้ใช้ลงทะเบียนกับบริการของเราเราต้องการ จำกัด การเข้าถึงเฉพาะผู้ใช้แอปของเราเท่านั้น อะไรคือวิธีการตรวจสอบให้แน่ใจว่าการโทรออกจากที่อื่น (เช่นมีคนต้องการข้อมูลทั้งหมดของเราหรือสร้างแอปที่ไม่เป็นทางการ) ถูกปฏิเสธ? แนวคิดเบื้องต้นของฉันคือการให้อุปกรณ์ถามโทเค็นเซิร์ฟเวอร์ซึ่งสร้างแบบสุ่มและส่งตามที่เป็นอยู่ วิธีการอื่น ๆ ทั้งหมดจะตรวจสอบว่าส่วนหัวคำขอมีวิธีเฉพาะที่จะแฮช md5 ของโทเค็นที่ผ่านการเค็ม เซิร์ฟเวอร์รู้โทเค็นและเกลือและสามารถคำนวณแฮชและเปรียบเทียบกับที่ส่ง นอกจากนี้โทเค็นเป็นอายุการใช้งานที่ จำกัด และอุปกรณ์จะต้องได้รับอีกหนึ่งชั่วโมงทุก ๆ ที่ดูเหมือนจะค่อนข้างง่ายในการใช้งานและถึงแม้ว่าอาจจะไม่ใช่ข้อพิสูจน์ 100% แต่ก็เป็นความคิดที่ดี คุณคิดอย่างไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.