2016-06-29 14 views
9

"MyViewcontroller loadHTMLString baseURL yöntemiyle bir NULL baseURL argümanı kullanarak: veri teoremi" - sorunumu tamamladım ve her şey yolunda . loadHTMLString baseURL yöntemiyle bir NULL baseURL argümanı kullanarak viewcontroller: veri teoremi

Sayı

yukarıdaki hata gösterir açığı için OSWAP güvenlik taraması yapıldı.

Benim kod parçacığı: -

NSString *aHtmlString = kEmptyString; 

    // Getting the bool from configuration plist 
    NSString *thePlistPath = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"plist"]; 
    NSDictionary *theURLdata = [[NSDictionary alloc] initWithContentsOfFile:thePlistPath]; 
    is 

ServerFAQAvailable = [[theURLdata valueForKey:kIsServerFAQAvailableKey] boolValue]; 

if (one || two || three) { 
    aHtmlString = [self loadFAQFor]; 
} else { 
    aHtmlString = [self loadFAQForwithout]; 
} 
NSURL *baseURL = [NSURL fileURLWithPath:thePlistPath]; 

[self.faqWebView loadHTMLString:aHtmlString baseURL:baseURL]; 

Güncelleme:

if (one || two || three) { 
     aHtmlString = [self loadFAQFor]; 
    } else { 
     aHtmlString = [self loadFAQForwithout]; 
    } 
    NSURL *baseURL = [NSURL fileURLWithPath:@"about:blank"]; 

    [self.faqWebView loadHTMLString:aHtmlString baseURL:baseURL]; 

Hala beni tarama sorunu

+0

Ben thePlistPath' 'değerlerini giriş yaparak başlayın (ve muhtemelen' theURLdata') olur .. Böyle deneyebilirsiniz, ve doğrulanması Aslında,'PlistPath 'tarafından işaret edilen konumda bir dosya var. Eğer yapmazsanız, o zaman '[NSURL fileURLWithPath :PlistPath];' büyük olasılıkla geri dönecek ve 'theURLdata' da muhtemelen sıfır olacaktır. – fullofsquirrels

+0

"ee", "yy" ve "ii" nedir? lütfen net değişken isimleri kullanın, ayrıca 'kConfigurationPlistName' ve' kPlistFormType''nın değerleri nedir? Bu, "PlistPath "değerini doğru olarak ayarlıyor mu yoksa Nil mi? MostafaTorbjørnBerg @ –

+0

hi o ben sonraki 48 saat geçerli html .js ve .css dosyasını – Spynet

cevap

5

konu baseURL: parametredir gösterir. Bir html dizesi için BaseURL gerekli değildir, genellikle nispi bağlantılar için kullanılır. Yapmaya çalıştığınız her şey bir miktar html gösteriyorsa, ihtiyacınız olduğuna emin misiniz? güvenlik sorunu bayraklı

yapar duyu (Bildiğim kadarıyla, kabaca): webview en baseURL yerel dosya sistemine ayarlanırsa, o Web görünümündeki yoluyla (sonunda) yüklü bir sayfa yerel kaynaklara erişebilir. baseURL: için

deneyin geçen nil bu uyarıyı susturmak gerekir.

+0

İlgili url ne anlama geliyor? Eğer anlamda sağlanan detay – Spynet

+0

Bağıl yolunu söyleyebilir misiniz acaba ... bu göreli yolu doğru da [NSURL fileURLWithPath: @ "about: blank"]? Eğer @Spynet ("hakkında göreli yolunu – Spynet

+0

: boş "- UIWebView'in bunu nasıl işlediğinden emin değilim.) Yine de, göreceli bir bağlantı, temel URL ile göreli. Normal İnternet'te, bir web sayfası "website.com/about" ile başlarsa, BaseURL web sitesi.com olur ve göreceli bir bağlantı "/ services" olur - tam adrese gerek yoktur. Ama bir URL dosya ve yerel dizine bir taban URL için olabilir. Bu durumda, web görünümü yerel dosyaları okumak için özel izin alır. Bu html harici bir sayfaya bağlanırsa, UIWebView hala bu izne sahip olacak ve bu sayfa yerel dosyaları okuyabilecektir (bu güvenlik sorunu). – Spynet

1

baseURL olmalıdır [[NSBunld mainBunld] bunldPath], sen

NSString *path = [[NSBundle mainBundle]bundlePath]; 
NSString *htmlPath = [[NSBundle mainBundle] pathForResource:self.htmlName ofType:@"html"]; 
NSString *htmlContent = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil]; 
[self.webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:path]]; 
+0

hayır güvenlik sorununu açığa çıkarıyor – Spynet

+0

Son olarak, doğru cevap [NSURL URLWithString: @ "about: blank"], yardım adamı için teşekkürler – Spynet

İlgili konular