ฉันมีเว็บแอปพลิเคชันที่จะเป็นเทคโนโลยีฝั่งไคลเอ็นต์ทั้งหมด (HTML, CSS, JavaScript / AngularJS, ฯลฯ ... ) เว็บแอปพลิเคชันนี้กำลังโต้ตอบกับ REST API เพื่อเข้าถึงและแก้ไขข้อมูล ตอนนี้มันยังไม่ได้ตัดสินใจว่าจะใช้ระบบรับรองความถูกต้องประเภทใด REST API
จากความเข้าใจของฉันระบบการตรวจสอบความถูกต้อง API ประเภทใด ๆ (คีย์ API, OAuth 1/2, ฯลฯ ... ) จะมีข้อมูลบางอย่างที่ต้องเก็บเป็นความลับมิฉะนั้นการเข้าถึงอาจถูกบุกรุกได้ สำหรับคีย์ API คีย์เหล่านั้นต้องเป็นความลับสำหรับ OAuth 2 ไคลเอนต์ลับ / โทเค็นการเข้าถึง / โทเค็นการรีเฟรชจำเป็นต้องเก็บเป็นความลับฉันแน่ใจว่าสี่คีย์ที่เกี่ยวข้องใน OAuth 1 ต้องเก็บเป็นความลับ (ไม่ใช่ มีประสบการณ์มากเกินไปกับ OAuth 1) ฉันพยายามคิดว่าหากมีวิธีการจัดเก็บสิ่งที่เป็นความลับนี้ในเว็บแอปพลิเคชันฝั่งไคลเอนต์ที่บริสุทธิ์โดยไม่มีการเรียงลำดับชั้นกลางบนฝั่งเซิร์ฟเวอร์
ฉันพยายามคิดเกี่ยวกับสิ่งนี้และฉันไม่สามารถนึกถึงสถานที่ที่จะทำเช่นนั้นได้ ฉันหมายถึงฉันไม่สามารถเก็บไว้ในจาวาสคริปต์เพราะทุกคนสามารถดูแหล่งข้อมูลหรือเปิดคอนโซลและรับข้อมูลได้ ฉันไม่แน่ใจ 100% ว่า localStorage มีความปลอดภัยแค่ไหนและหากผู้ใช้สามารถเข้าถึง / แก้ไขข้อมูลนั้นได้ แม้ว่าที่เก็บข้อมูลในเครื่องจะมีความปลอดภัยสองวิธีที่ฉันสามารถนึกถึงการรับข้อมูลลงในนั้นไม่ได้ วิธีหนึ่งคือเพียงเก็บข้อมูลในซอร์สโค้ดจาวาสคริปต์ซึ่งเป็นสิ่งที่ไม่ปลอดภัยที่สุดที่ฉันคิดได้ ตอนนี้ถ้าฉันใช้บางอย่างเช่น OAuth 2 ซึ่ง api ที่เหลือจะให้โทเค็นฉันนั่นจะไม่ปลอดภัย (ดีกว่าตัวเลือกแรก) เพราะโทเค็นเหล่านั้นจะถูกส่งกลับเป็นข้อความธรรมดาที่ใครก็ตามที่เห็น การร้องขอคอมพิวเตอร์ทำให้สามารถมองเห็นได้
มีวิธีใดบ้างที่จะมีแอปพลิเคชันที่ใช้งานฝั่งไคลเอ็นต์อย่างสมบูรณ์สามารถจัดเก็บข้อมูลลับได้อย่างปลอดภัยโดยไม่ต้องมีเลเยอร์กลางที่ฝั่งเซิร์ฟเวอร์