React Native

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

การจัดเก็บที่ปลอดภัย, SSL pinning, การทำ obfuscation, การป้องกัน reverse engineering, ข้อมูลที่ละเอียดอ่อน

20 คำถามสัมภาษณ์·
Senior
1

วิธีที่แนะนำในการจัดเก็บข้อมูลที่ละเอียดอ่อน เช่น โทเค็นการยืนยันตัวตน ในแอปพลิเคชัน React Native คืออะไร?

คำตอบ

ข้อมูลที่ละเอียดอ่อนเช่นโทเค็นการยืนยันตัวตนต้องถูกจัดเก็บใน Keychain (iOS) หรือ Keystore (Android) โดยใช้ไลบรารีเช่น react-native-keychain หรือ expo-secure-store ระบบเหล่านี้ให้การเข้ารหัสที่อิงฮาร์ดแวร์และการป้องกันการดึงข้อมูลแม้บนอุปกรณ์ที่ root แล้ว AsyncStorage จัดเก็บข้อมูลเป็นข้อความธรรมดาและไม่ควรใช้กับข้อมูลที่ละเอียดอ่อนเลย

2

SSL pinning คืออะไรและทำไมจึงควรนำมาใช้ในแอปพลิเคชัน React Native?

คำตอบ

SSL pinning ตรวจสอบใบรับรองของเซิร์ฟเวอร์เทียบกับใบรับรองหรือคีย์สาธารณะที่รู้จักซึ่งฝังอยู่ในแอปพลิเคชัน แทนที่จะเชื่อถือเฉพาะ certificate chain ของระบบเท่านั้น สิ่งนี้ช่วยป้องกันการโจมตีแบบ man-in-the-middle แม้ว่าผู้โจมตีจะติดตั้งใบรับรองที่เป็นอันตรายบนอุปกรณ์แล้วก็ตาม ไลบรารีเช่น react-native-ssl-pinning หรือ TrustKit ช่วยให้สามารถนำการป้องกันนี้มาใช้ได้

3

จะปกป้องโค้ด JavaScript ในแอปพลิเคชัน React Native จาก reverse engineering ได้อย่างไร?

คำตอบ

การทำ obfuscation โค้ด JavaScript ด้วยเครื่องมือเช่น Metro bundler, react-native-obfuscating-transformer หรือ Hermes bytecode ทำให้โค้ดเข้าใจได้ยากขึ้น Hermes คอมไพล์ JavaScript เป็น bytecode เพิ่มชั้นการป้องกัน อย่างไรก็ตาม obfuscation ไม่ใช่การป้องกันที่สมบูรณ์ - มันทำให้ผู้โจมตีช้าลงแต่ไม่สามารถป้องกัน reverse engineering ได้อย่างสมบูรณ์ ไม่ควรจัดเก็บ secret ที่สำคัญไว้ในโค้ดฝั่งไคลเอนต์เลย

4

จะจัดการ API key และ secret ในแอปพลิเคชัน React Native บน production ได้อย่างไร?

5

การตรวจจับ root/jailbreak คืออะไรและจะนำมาใช้ใน React Native ได้อย่างไร?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ React Native อื่นๆ

พื้นฐาน JavaScript

Junior
25 คำถาม

พื้นฐาน React

Junior
20 คำถาม

พื้นฐาน React Native

Junior
22 คำถาม

React Hooks

Junior
20 คำถาม

TypeScript สำหรับ React และ React Native

Junior
22 คำถาม

คอมโพเนนต์และ API ของ React Native

Junior
20 คำถาม

การจัดสไตล์และเลย์เอาต์ใน React Native

Junior
18 คำถาม

การนำทางใน React Native

Mid-Level
22 คำถาม

การจัดการ State ใน React Native

Mid-Level
24 คำถาม

Networking และ API ใน React Native

Mid-Level
20 คำถาม

การคงอยู่ของข้อมูล

Mid-Level
20 คำถาม

ฟอร์มและการตรวจสอบความถูกต้อง

Mid-Level
18 คำถาม

แอนิเมชัน React Native

Mid-Level
22 คำถาม

Native Modules & Bridge

Mid-Level
20 คำถาม

โค้ดเฉพาะแพลตฟอร์ม

Mid-Level
18 คำถาม

สิทธิ์และ Device API

Mid-Level
20 คำถาม

Push Notifications

Mid-Level
18 คำถาม

การทดสอบ React Native

Mid-Level
20 คำถาม

การ Debug React Native

Mid-Level
18 คำถาม

Build & Deployment

Mid-Level
20 คำถาม

Expo vs React Native Bare

Mid-Level
18 คำถาม

การเพิ่มประสิทธิภาพ

Senior
24 คำถาม

การจัดการหน่วยความจำ

Senior
20 คำถาม

Architecture Patterns

Senior
22 คำถาม

React Native New Architecture

Senior
24 คำถาม

Offline-First Architecture

Senior
20 คำถาม

CI/CD React Native

Senior
20 คำถาม

Monorepo และการแชร์โค้ด

Senior
18 คำถาม

หัวข้อขั้นสูง

Senior
22 คำถาม

วงจรชีวิตแอปและการทำงานเบื้องหลัง

Mid-Level
20 คำถาม

การยืนยันตัวตนและการจัดการเซสชัน

Mid-Level
22 คำถาม

Monitoring & Crash Reporting

Senior
20 คำถาม

เชี่ยวชาญ React Native สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี