Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Android

ปกป้องคีย์ API ของคุณ:แนวทางปฏิบัติที่ดีที่สุดสำหรับแอป Android

ปกป้องคีย์ API ของคุณ:แนวทางปฏิบัติที่ดีที่สุดสำหรับแอป Android

สมมติว่าคุณกำลังใช้ระบบควบคุมเวอร์ชันและโปรเจ็กต์ของคุณใช้บริการที่ต้องใช้คีย์ API ทุกอย่างจะดีเมื่ออยู่บนเครื่องของคุณ แต่คุณไม่ต้องการแชร์คีย์ API เหล่านี้กับโลก

ดังนั้นคุณจะรักษาคีย์ API ของคุณไว้ในแอปพลิเคชันของคุณได้อย่างไร แต่ยังซ่อนคีย์เหล่านั้นเมื่อคุณอัปโหลดโค้ดไปยังที่เก็บของคุณ

คุณอาจต้องการให้ยังคงใช้คีย์ API ของคุณได้ตามปกติภายในแอปพลิเคชันของคุณ แต่อย่าเปิดเผยคีย์เหล่านี้ด้วย

ความลับคืออะไร

นั่นคือสิ่งที่ความลับ เข้ามาสิ คล้ายกับที่คุณเก็บไว้คนเดียว แต่ในลักษณะของนักพัฒนา

ข้อมูลลับสามารถแสดงข้อมูลสำคัญที่แอปพลิเคชันของคุณต้องการเพื่อดำเนินการ แต่ไม่ควรปรากฏให้ใครก็ตามที่ทำงานนอกโครงการเห็น

สิ่งเหล่านี้อาจเป็นคีย์ API หรือโทเค็นการอนุญาต แต่โดยพื้นฐานแล้ว ความลับคือข้อมูลการอนุญาตใดๆ ที่คุณและคุณเท่านั้นที่ควรใช้ คล้ายกับการที่คุณไม่ต้องการเปิดเผยรหัสผ่านของคุณไปยังเว็บไซต์กับบุคคลอื่น

🚨 ข้อจำกัดความรับผิดชอบ:โปรดทราบว่าวิธีแก้ปัญหาที่ให้ไว้ในบทความนี้ใช้ได้ผลในกรณีที่ไม่เปิดเผยความลับของคุณจากระบบควบคุมเวอร์ชันของคุณ แต่เนื่องจากสิ่งเหล่านี้เป็นส่วนหนึ่งของแอปพลิเคชันของคุณ คุณจึงยังสามารถค้นพบได้โดยการถอดรหัส APK ของคุณ

วิธีรักษาความลับของคุณให้ปลอดภัย

ในโปรเจ็กต์ของคุณ คุณควรมี local.properties ไฟล์ภายใต้ไดเร็กทอรีรากของโครงการของคุณ

เพื่อให้แน่ใจว่าระบบควบคุมเวอร์ชันของคุณละเว้นมัน ให้เปิดไฟล์ .gitignore และดูว่าพบไฟล์นั้นอยู่ที่นั่น:

ปกป้องคีย์ API ของคุณ:แนวทางปฏิบัติที่ดีที่สุดสำหรับแอป Android

คุณจะต้องนำเข้าปลั๊กอิน Secrets Gradle ไปยังโปรเจ็กต์ของคุณ

หากต้องการทำสิ่งนี้ ให้ไปที่ไฟล์ root build.gradle ของโปรเจ็กต์ของคุณและวางในบรรทัดต่อไปนี้:

buildscript {
 dependencies {
 id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
 }
}

จากนั้น ไปที่ไฟล์ build.gradle ของแอปของคุณ และวางในบรรทัดต่อไปนี้:

plugins {
 ...
 id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}

เพิ่มคีย์ API ของคุณภายในไฟล์ local.properties:

ปกป้องคีย์ API ของคุณ:แนวทางปฏิบัติที่ดีที่สุดสำหรับแอป Android

คุณสามารถใช้ความลับของคุณภายใน AndroidManifest.xml โดยการเพิ่มแท็กข้อมูลเมตาภายในแท็กแอปพลิเคชันของคุณ:

<application
 android:allowBackup="true" 
 .....
 >
 <activity>
 ....
 </activity>
 <meta-data
 android:name="YOUR_API_KEY_NAME" /// Choose any value here
 android:value="${API_KEY_NAME}"/> /// Write the name you gave inside your local.properties file
</application>

หากต้องการเข้าถึงคีย์ API ของคุณ คุณสามารถใช้ PackageManager เพื่อรับข้อมูลเมตา:

val applicationInfo: ApplicationInfo = application.packageManager
 .getApplicationInfo(application.packageName, PackageManager.GET_META_DATA)
val apiKey = applicationInfo.metaData["YOUR_API_KEY_NAME"]

หรือคุณสามารถใช้ออบเจ็กต์ BuildConfig เพื่อรับ:

BuildConfig.YOUR_API_KEY_NAME

แค่นั้นแหละ. ตอนนี้คุณสามารถพักผ่อนได้อย่างสบายใจโดยรู้ว่าความลับของคุณจะไม่ถูกเปิดเผยโดยระบบควบคุมเวอร์ชันของคุณ

สนุกกับการเก็บความลับของคุณ ㊙️

ฉันใช้สิ่งนี้กับหนึ่งในโปรเจ็กต์ล่าสุดของฉัน และคุณสามารถดูซอร์สโค้ด (ปราศจากความลับ) ได้ที่นี่

และหากต้องการดูบทความอื่นๆ ที่ผมเขียนไว้ ก็ไปได้ที่นี่

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น