賞金將在 6 天后到期。此問題的答案有資格獲得 50聲望賞金。 SmalliSax希望引起對這個問題的更多關注:
獲得有關如何解決此類問題的一些資訊會很棒,因為您需要在應用程式中使用證書密碼加載證書,而編譯后的代碼不會以明文形式吐出密碼。
我有一個正在開發的 iOS 應用程式,該應用程式必須與證書捆綁在一起才能使用該應用程式,因為它使用 webview 并且沒有證書就無法訪問該站點。
我目前有一個可行的解決方案,但我注意到在解壓縮 .ipa 檔案并查看代碼時,我可以非常清楚地看到證書的密碼,正如您從編譯代碼的這一行中看到的那樣:
lastSampleTimeMainjsbundlecertificatep12PASSWORDHEREGCDAsyncSocketErrorDomain
我如何檢索證書的簡短代碼片段:
[[NSBundle mainBundle] pathForResource:@"certificate" ofType:@"p12"];
NSData *p12Data = [[NSData alloc] initWithContentsOfFile:p12Path];
CFStringRef password = CFSTR("somePassword");
有沒有安全的方法來處理這種情況?或者如果密碼落入知道自己在做什么的人手中,密碼是否總是可以檢索的。
uj5u.com熱心網友回復:
一個簡單的解決方案可能是混淆字串,從位元組陣列創建密碼字串,但這仍然不是很安全。
這里的一些解釋..還要考慮,應避免將密碼加載到字串中,因為它可以在運行時從堆中讀取: https ://stackoverflow.com/a/8881376/20283130
uj5u.com熱心網友回復:
使用鑰匙串 API。
https://developer.apple.com/documentation/security/keychain_services
這是保護 API_KEYS、證書、甚至用戶名和密碼的標準方法。
它簡單且與Objective-C兼容
編輯:對于證書:https ://developer.apple.com/documentation/security/certificate_key_and_trust_services/certificates/storing_a_certificate_in_the_keychain
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521837.html
上一篇:當我在一種自定義按鈕(正常)內設定影像時,畫外音模式會說影像名稱。如何為按鈕影像視圖禁用它?
下一篇:在加載iOS視圖之前,應如何在locationManagerDidChangeAuthorization中檢查CLLocationManager狀態?
