Android常見(jiàn)安全測(cè)試

1. 組件安全檢測(cè)

漏洞名稱 Activity 組件暴露檢測(cè)
威脅等級(jí) 中危
風(fēng)險(xiǎn)描述 Activity 組件的屬性 exported 被設(shè)置為 true 或是未設(shè)置 exported 值 但 IntentFilter 不為空時(shí),activity 被認(rèn)為是導(dǎo)出的,可通過(guò)設(shè)置相 應(yīng)的 Intent 喚起 activity。黑客可能構(gòu)造惡意數(shù)據(jù)針對(duì)導(dǎo)出 activity 組件實(shí)施越權(quán)攻擊。

參考鏈接
https://developer.android.com/guide/components/activities.html

漏洞名稱 Service 組件暴露檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 Service 組件的屬性 exported 被設(shè)置為 true 或是未設(shè)置 exported 值 但 IntentFilter 不為空時(shí),Service 被認(rèn)為是導(dǎo)出的,可通過(guò)設(shè)置相 應(yīng)的 Intent 喚起 Service。黑客可能構(gòu)造惡意數(shù)據(jù)針對(duì)導(dǎo)出 Service 組件實(shí)施越權(quán)攻擊。

參考鏈接
https://developer.android.com/guide/components/services.html

漏洞名稱 BroadcastReceiver 組件暴露檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 BroadcastReceiver 組件的屬性 exported 被設(shè)置為 true 或是未設(shè)置 exported 值但 IntentFilter 不為空時(shí),BroadcastReceiver 被認(rèn)為是導(dǎo) 出的。導(dǎo)出的廣播可以導(dǎo)致數(shù)據(jù)泄漏或者是越權(quán)。

參考鏈接
https://developer.android.com/guide/topics/manifest/receiver-ele- ment.html

2. APP 漏洞檢測(cè)

漏洞名稱 SSL 通信服務(wù)端檢測(cè)信任 任意證書漏洞檢測(cè)
威脅等級(jí) 高危
漏洞危害 自定義 SSL x509 TrustManager,重寫 checkServerTrusted 方法,方法內(nèi)不 做任何服務(wù)端的證書校驗(yàn)。黑客可以使用中間人攻擊獲取加密內(nèi)容。

參考鏈接
https://developer.android.com/reference/javax/net/ssl/X509TrustManag- er.html

漏洞名稱 HTTPS 關(guān)閉主機(jī)名驗(yàn)證漏 洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 構(gòu)造 HttpClient 時(shí),設(shè)置 HostnameVerifier 時(shí)參數(shù)使用 ALLOW_ALL_HOSTNAME_VERIFIER 或空的 HostnameVerifier。關(guān)閉主機(jī) 名校驗(yàn)可以導(dǎo)致黑客使用中間人攻擊獲取加密內(nèi)容。

[參考鏈接](https://developer.android.com/reference/javax/net/ssl/HostnameVerifi- er.html)

漏洞名稱 隱式意圖調(diào)用漏洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 封裝 Intent 時(shí)采用隱式設(shè)置,只設(shè)定 action,未限定具體的接收對(duì)象,導(dǎo) 致 Intent 可被其他應(yīng)用獲取并讀取其中數(shù)據(jù)。Intent 隱式調(diào)用發(fā)送的意圖 可能被第三方劫持,可能導(dǎo)致內(nèi)部隱私數(shù)據(jù)泄露。

參考鏈接
[https://developer.android.com/guide/components/intents-filters.html]

漏洞名稱 程序數(shù)據(jù)任意備份漏洞檢測(cè)
威脅等級(jí) 高危
檢測(cè)方法 安卓 AndroidManifest.xml 文件中 android: allowBackup 為 true。app 數(shù)據(jù)可 以被備份導(dǎo)出。

參考鏈接
https://developer.android.com/guide/topics/manifest/application-elemen- t.html#allowbackup

漏洞名稱 程序可被任意調(diào)試漏洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 安卓 AndroidManifest.xml 文件中 android:debuggable 為 true。app 可以被 任意調(diào)試,攻擊者可以發(fā)起動(dòng)態(tài)調(diào)試攻擊。

參考鏈接
https://developer.android.com/guide/topics/manifest/application-elemen- t.html#debug

漏洞名稱 Webview 存在本地 Java 接口 漏洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 android 的 webView 組件有一個(gè)非常特殊的接口函數(shù) addJavascriptInter- face,能實(shí)現(xiàn)本地 java 與 js 之間交互。在 targetSdkVersion 小于 17 時(shí), 攻擊者利用 addJavascriptInterface 這個(gè)接口添加的函數(shù),可以遠(yuǎn)程執(zhí)行 任意代碼。

參考鏈接
https://developer.android.com/reference/android/webkit/WebView.html

漏洞名稱 WebView 忽略 SSL 證 書錯(cuò)誤漏洞檢測(cè)
威脅等級(jí) 高危
漏洞危害 WebView 調(diào)用 onReceivedSslError 方法時(shí),直接執(zhí)行 handler.pro- ceed()來(lái)忽略該證書錯(cuò)誤。忽略 SSL 證書錯(cuò)誤可能引起中間人攻 擊。

參考鏈接
https://developer.android.com/reference/android/webkit/WebView- Client.html

漏洞名稱 Intent Scheme URLs 攻擊 漏洞檢測(cè)
威脅等級(jí)
檢測(cè)方法 在 AndroidManifast.xml 設(shè)置 Scheme 協(xié)議之后,可以通過(guò)瀏覽器打開(kāi) 對(duì)應(yīng)的 Activity。攻擊者通過(guò)訪問(wèn)瀏覽器構(gòu)造 Intent 語(yǔ)法喚起 app 相應(yīng) 組件,輕則引起拒絕服務(wù),重則可能演變?yōu)樘釞?quán)漏洞。

參考鏈接
https://developer.android.com/guide/components/intents-filters.html

漏洞名稱 全局文件可讀寫漏洞檢 測(cè)
威脅等級(jí) 中危
檢測(cè)方法 APP 在創(chuàng)建內(nèi)部存儲(chǔ)文件時(shí),將文件設(shè)置了全局的可讀權(quán)限。攻擊者 惡意讀取文件內(nèi)容,獲取敏感信息。

參考鏈接
https://developer.android.com/ reference/android/content/Context.html#MODE_WORLD_READABLE

漏洞名稱 全局文件可讀寫漏洞檢 測(cè)
威脅等級(jí) 高危
檢測(cè)方法 APP 在創(chuàng)建內(nèi)部存儲(chǔ)文件時(shí),將文件設(shè)置了全局的可寫權(quán)限。攻擊者 惡意寫文件內(nèi)容,破壞 APP 的完整性。

參考鏈接
https://developer.android.com/ reference/android/content/Context.html#MODE_WORLD_WRITEABLE

漏洞名稱 配置文件可讀可寫漏洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 使用 getSharedPreferences 打開(kāi)文件時(shí),如果將第二個(gè)參數(shù)設(shè)置為 MODE_WORLD_READABLE。當(dāng)前文件可以被其他應(yīng)用讀取導(dǎo)致信息泄 漏。

參考鏈接
https://developer.android.com/reference/android/content/Context.html#g etSharedPreferences(java.lang.String, int) https://developer.android.com/reference/android/content/Context.html# MODE_WORLD_READABLE

漏洞名稱 配置文件可讀可寫漏洞檢測(cè)
威脅等級(jí) 高危
檢測(cè)方法 使用 getSharedPreferences 打開(kāi)文件時(shí),如果將第二個(gè)參數(shù)設(shè)置為 MODE_WORLD_WRITEABLE。當(dāng)前文件可以被其他應(yīng)用寫入,導(dǎo)致文件 內(nèi)容被篡改,影響應(yīng)用程序的正常運(yùn)行或更嚴(yán)重的問(wèn)題。

參考鏈接
https://developer.android.com/reference/android/content/Context.html#g etSharedPreferences(java.lang.String, int) https://developer.android.com/reference/android/content/Context.html# MODE_WORLD_WRITEABLE

漏洞名稱 DEX 文件動(dòng)態(tài)加載漏 洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 使用 DexClassLoader 加載外部的 apk、jar 或 dex 文件,當(dāng)外部文 件的來(lái)源無(wú)法控制時(shí)或是被篡改,此時(shí)無(wú)法保證加載的文件是否 安全。加載惡意的 dex 文件將會(huì)導(dǎo)致任意命令的執(zhí)行。

參考鏈接
https://developer.android.com/reference/dalvik/system/DexClass- Loader.html

漏洞名稱 AES 弱加密漏洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 在 AES 加密時(shí),使用“AES/ECB/NoPadding”或“AES/ECB/PKCS5padding”的 模式。ECB 是將文件分塊后對(duì)文件塊做同一加密,破解加密只需要針 對(duì)一個(gè)文件塊進(jìn)行解密,降低了破解難度和文件安全性。

參考鏈接
https://developer.android.com/reference/javax/crypto/Cipher.html

漏洞名稱 Provider 文件目 錄遍歷漏洞檢測(cè)
威脅等級(jí) 中危
漏洞危害 當(dāng) Provider 被導(dǎo)出且覆寫了 openFile 方法時(shí),沒(méi)有對(duì) Content Query Uri 進(jìn)行有效判斷或過(guò)濾。攻擊者可以利用 openFile()接口進(jìn)行文件目錄遍 歷以達(dá)到訪問(wèn)任意可讀文件的目的。

參考鏈接
https://developer.android.com/reference/android/content/Content- Provider.html#openFile(android.net.Uri, java.lang.String)

漏洞名稱 activity 綁定 browserable 與 自定義協(xié)議漏洞 檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 activity 設(shè)置“android.intent.category.BROWSABLE”屬性并同時(shí)設(shè)置了自 定義的協(xié)議 android:scheme 意味著可以通過(guò)瀏覽器使用自定義協(xié)議打 開(kāi)此 activity??赡芡ㄟ^(guò)瀏覽器對(duì) app 進(jìn)行越權(quán)調(diào)用。

參考鏈接
https://developer.android.com/reference/android/content/Intent.html#CA TEGORY_BROWSABLE

漏洞名稱 動(dòng)態(tài)注冊(cè)廣播漏 洞檢測(cè)
威脅等級(jí) 中危
檢測(cè)方法 使用 registerReceiver 動(dòng)態(tài)注冊(cè)的廣播在組件的生命周期里是默認(rèn)導(dǎo)出 的。導(dǎo)出的廣播可以導(dǎo)致拒絕服務(wù)、數(shù)據(jù)泄漏或是越權(quán)調(diào)用。

參考鏈接
https://developer.android.com/reference/android/content/Context.html#r egisterReceiver(android.content.BroadcastReceiver, android.content.In- tentFilter, java.lang.String, android.os.Handler)

漏洞名稱 開(kāi)放 socket 端口 漏洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 app 綁定端口進(jìn)行監(jiān)聽(tīng),建立連接后可接收外部發(fā)送的數(shù)據(jù)。攻擊者 可構(gòu)造惡意數(shù)據(jù)對(duì)端口進(jìn)行測(cè)試,對(duì)于綁定了 IP 0.0.0.0 的 app 可發(fā)起 遠(yuǎn)程攻擊。

參考鏈接
https://developer.android.com/reference/java/net/Socket.html#Socket(ja- va.net.InetAddress, int)

漏洞名稱 Fragment 注入漏 洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 通過(guò)導(dǎo)出的 PreferenceActivity 的子類,沒(méi)有正確處理 Intent 的 extra 值。攻擊者可繞過(guò)限制訪問(wèn)未授權(quán)的界面。

參考鏈接
https://developer.android.com/reference/android/preference/Preference- Activity.html#isValidFragment(java.lang.String)

漏洞名稱 Webview 啟用訪 問(wèn)文件數(shù)據(jù)漏洞 檢測(cè)
威脅等級(jí) 高危
漏洞危害 Webview 中使用 setAllowFileAccess(true),App 可通過(guò) webview 訪問(wèn)私 有目錄下的文件數(shù)據(jù)。在 Android 中,mWebView.setAllowFileAccess(true)為默認(rèn)設(shè)置。當(dāng) setAllowFileAccess(true)時(shí),在 File 域下,可執(zhí)行任意的 JavaScript 代 碼,如果繞過(guò)同源策略能夠?qū)λ接心夸浳募M(jìn)行訪問(wèn),導(dǎo)致用戶隱私 泄漏。

參考鏈接
https://developer.android.com/reference/android/webkit/WebSettings.ht ml#setAllowFileAccess(boolean)

漏洞名稱 unzip 解壓縮(Zip- perDown)漏洞檢 測(cè)
威脅等級(jí) 高危
檢測(cè)方法 解壓 zip 文件,使用 getName()獲取壓縮文件名后未對(duì)名稱進(jìn)行校驗(yàn)。 攻擊者可構(gòu)造惡意 zip 文件,被解壓的文件將會(huì)進(jìn)行目錄跳轉(zhuǎn)被解壓 到其他目錄,覆蓋相應(yīng)文件導(dǎo)致任意代碼執(zhí)行。

參考鏈接
https://developer.android.com/reference/java/util/zip/ZipEntry.html#get- Name()

漏洞名稱 未使用編譯器堆棧保護(hù)技術(shù)漏洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 為了檢測(cè)棧中的溢出,引入了 Stack Canaries 漏洞緩解技術(shù)。在所有函 數(shù)調(diào)用發(fā)生時(shí),向棧幀內(nèi)壓入一個(gè)額外的被稱作 canary 的隨機(jī)數(shù),當(dāng) 棧中發(fā)生溢出時(shí),canary 將被首先覆蓋,之后才是 EBP 和返回地址。 在函數(shù)返回之前,系統(tǒng)將執(zhí)行一個(gè)額外的安全驗(yàn)證操作,將棧幀中原 先存放的 canary 和.data 中副本的值進(jìn)行比較,如果兩者不吻合,說(shuō)明發(fā)生了棧溢出。不使用 Stack Canaries 棧保護(hù)技術(shù),發(fā)生棧溢出時(shí)系統(tǒng) 并不會(huì)對(duì)程序進(jìn)行保護(hù)。
修復(fù)意見(jiàn) 使用 NDK 編譯 so 時(shí),在 Android.mk 文件中添加:LOCAL_CFLAGS := -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all

參考鏈接
https://en.wikipedia.org/wiki/Stack_buffer_overflow#Stack_canaries

漏洞名稱 未使用地址空間隨機(jī)技術(shù)漏洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 PIE 全稱 Position Independent Executables,是一種地址空間隨機(jī)化技 術(shù)。當(dāng) so 被加載時(shí),在內(nèi)存里的地址是隨機(jī)分配的。不使用 PIE,將 會(huì)使得 shellcode 的執(zhí)行難度降低,攻擊成功率增加。

參考鏈接
https://en.wikipedia.org/wiki/Position-independent_code#Position-inde- pendent_executables

漏洞名稱 動(dòng)態(tài)鏈接庫(kù)中包含執(zhí)行命令函數(shù)漏洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法
在 native 程序中,有時(shí)需要執(zhí)行系統(tǒng)命令,在接收外部傳入的參數(shù)執(zhí) 行命令時(shí)沒(méi)有做過(guò)濾或檢驗(yàn)。攻擊者傳入任意命令,導(dǎo)致惡意命令的 執(zhí)行。

參考鏈接
http://baike.baidu.com/subview/627587/14965930.htm#2

漏洞名稱 隨機(jī)數(shù)不安全使用漏洞
威脅等級(jí) 低低危
漏洞危害 調(diào)用 SecureRandom 類中的 setSeed 方法。生成的隨機(jī)數(shù)具有確定性, 存在被破解的可能性。

參考鏈接
https://developer.android.com/reference/java/security/SecureRan- dom.html#setSeed(long)

漏洞名稱 FFmpeg 文件讀取漏 洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 使用了低版本的 FFmpeg 庫(kù)進(jìn)行視頻解碼。在 FFmpeg 的某些版本 中可能存在本地文件讀取漏洞,可以通過(guò)構(gòu)造惡意文件獲取本地 文件內(nèi)容。

參考鏈接
http://ffmpeg.org/

漏洞名稱 libupnp 棧溢出漏洞 漏洞檢測(cè)
威脅等級(jí) 低危
檢測(cè)方法 使用了低于 1.6.18 版本的的 libupnp 庫(kù)文件。構(gòu)造惡意數(shù)據(jù)包可造 成緩沖區(qū)溢出,造成代碼執(zhí)行。

參考鏈接
https://sourceforge.net/projects/pupnp/files/pupnp/libUPnP %201.6.18/

漏洞名稱 Webview 組件遠(yuǎn)程代 碼執(zhí)行(調(diào)用 get- ClassLoader)漏洞檢
威脅等級(jí) 中危
漏洞危害 使用低于 17 的 targetSDKVersion,并且在 Context 子類中使用 add- JavascriptInterface 綁定 this 對(duì)象。通過(guò)調(diào)用 getClassLoader 可以繞 過(guò) google 底層對(duì) getClass 方法的限制。

參考鏈接
https://developer.android.com/reference/android/content/Contex- t.html#getClassLoader()

漏洞名稱 AES/DES 硬編碼密鑰 漏洞檢測(cè)
威脅等級(jí) 高危
檢測(cè)方法 使用 AES 或 DES 加解密時(shí),采用硬編碼在程序中的密鑰。通過(guò)反 編譯拿到密鑰可以輕易解密 APP 通信數(shù)據(jù)。

參考鏈接
https://developer.android.com/reference/javax/crypto/spec/Se- cretKeySpec.html#SecretKeySpec(byte[], java.lang.String)

漏洞名稱 Android 應(yīng)用克隆 漏洞檢測(cè)
威脅等級(jí) 高危
檢測(cè)方法 該漏洞影響使用 WebView 控件,開(kāi)啟 file 域訪問(wèn)并且未按安全策略開(kāi) 發(fā)的 Android 應(yīng)用 APP。檢測(cè)方法為:1.檢測(cè) WebView 中是否setAllowFileAccessFromFileURLs****setAllowUniversalAccessFromFileURLs配置為 true;2.檢測(cè) WebView 是否可以直接被外部調(diào)用,并能夠加載外部可控的 HTML 文件

參考鏈接
http://www.cnvd.org.cn/webinfo/show/4365

移動(dòng)安全架構(gòu)設(shè)計(jì)基本原則

在應(yīng)用系統(tǒng)軟件開(kāi)發(fā)設(shè)計(jì)的過(guò)程中,對(duì)應(yīng)用系統(tǒng)的總體設(shè)計(jì)應(yīng)當(dāng)滿足如下
安全原則:

原則 說(shuō)明
最小權(quán)限原則Least Privilege 應(yīng)用軟件的每個(gè)模塊如進(jìn)程、用戶只能訪問(wèn)當(dāng)所必需的信息或者資源。賦予每一個(gè)合法動(dòng)作最小的權(quán)限,以保護(hù)數(shù)據(jù)以及功能避免受到錯(cuò)誤或者惡意行為的破壞。
權(quán)限分離原則Separation of Duties 對(duì)業(yè)務(wù)的操作、管理和審計(jì)權(quán)限應(yīng)該由軟件中的不同角色的用戶分別承擔(dān);普通用戶和管理員用戶信息應(yīng)該存放在不同的數(shù)據(jù)表中。
深度防御原則Defense in Depth 在應(yīng)用程序?qū)I(yè)務(wù)數(shù)據(jù)進(jìn)行處理的每個(gè)階段都要考慮安全性問(wèn)題,不能僅在某個(gè)階段做安全防御,這樣單點(diǎn)防御一旦被突破將造成安全風(fēng)險(xiǎn)。
容錯(cuò)保護(hù)原則Fail Secure 當(dāng)程序出現(xiàn)故障時(shí)或系統(tǒng)異常當(dāng)系統(tǒng)失敗時(shí),可以進(jìn)入到一個(gè)失敗保護(hù)的狀態(tài)。如果用戶請(qǐng)求失敗,系統(tǒng)仍可保障安全。
單點(diǎn)異常終止原則Single Point of Failure 當(dāng)用戶提交數(shù)據(jù)超出預(yù)期時(shí),應(yīng)立即終止程序的執(zhí)行,不要試圖加以修正并繼續(xù)執(zhí)行下去。
外來(lái)代碼安全原則Least Third Party Compo-nents 嚴(yán)格控制第三方函數(shù)與插件的使用,對(duì)外來(lái)代碼必須進(jìn)行詳細(xì)的安全測(cè)試。
代碼重用原則Leveraging Existing Com- ponents 盡可能的重用軟件已有的模塊,這樣可以降低引入新的漏洞和攻擊界面的可能性。
數(shù)據(jù)保護(hù)原則Data Protection 對(duì)用戶數(shù)據(jù)的保護(hù)功能應(yīng)涵蓋用戶數(shù)據(jù)存儲(chǔ)的完整性、用戶數(shù)據(jù)傳輸保密性、數(shù)據(jù)傳輸?shù)脑L問(wèn)控制、剩余信息的保護(hù)、數(shù)據(jù)反轉(zhuǎn)操作等內(nèi)容;應(yīng)對(duì)系統(tǒng)中關(guān)鍵數(shù)據(jù)(如用戶密碼等)的存儲(chǔ)和網(wǎng)絡(luò)傳輸時(shí)應(yīng)采用加密保護(hù),實(shí)用加密加密算法應(yīng)該符合國(guó)際標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)和業(yè)界標(biāo)準(zhǔn)。
可審計(jì)原則Auditing 在應(yīng)用系統(tǒng)中設(shè)計(jì)審計(jì)日志記錄的功能,并對(duì)應(yīng)用系統(tǒng)產(chǎn)生的日志增加完備的審計(jì)功能
開(kāi)放設(shè)計(jì)原則Open Design 開(kāi)放設(shè)計(jì)與“不開(kāi)放即安全”的原則相對(duì)而 言,認(rèn)為設(shè)計(jì)本身不應(yīng)具有神秘感。這一原則的 具體表現(xiàn)可以參見(jiàn)應(yīng)用于加密設(shè)計(jì)的 Kerchoff 定 律,“系統(tǒng)不應(yīng)單純依賴私密性,若落入敵人手 中則毫無(wú)優(yōu)勢(shì)可言”;開(kāi)放設(shè)計(jì)以提高系統(tǒng)兼容 性和可擴(kuò)展性。
抗抵賴原則Anti Repudiation 對(duì)于涉及支付交易等重要的業(yè)務(wù)場(chǎng)景,系統(tǒng)設(shè)計(jì)應(yīng)有效地防止通信雙方抵賴,如采用電子證書簽名等方式。
規(guī)范性Standardization 系統(tǒng)設(shè)計(jì)所采用的安全技術(shù)和安全產(chǎn)品應(yīng)符合國(guó)際標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)和業(yè)界標(biāo)準(zhǔn),為系統(tǒng)的擴(kuò)展升級(jí)、與其他系統(tǒng)的互聯(lián)提供良好的基礎(chǔ)。
可擴(kuò)展性Scalability 以當(dāng)前業(yè)務(wù)安全需求為基礎(chǔ),充分考慮發(fā)展的需要,安全功能模塊子系統(tǒng)以插件或接口方式以方便未來(lái)的擴(kuò)展。
實(shí)用性Practicable 安全功能設(shè)計(jì)需要盡可能的考慮投入產(chǎn)出比,同時(shí)盡量控制對(duì)用戶體驗(yàn)的影響。
符合性Regulatory Compliance 安全功能的設(shè)計(jì)盡可能的要符合國(guó)家規(guī)范、行業(yè)規(guī)范以及業(yè)界的通用標(biāo)準(zhǔn),如等級(jí)保護(hù)等規(guī)范。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容