2016-06-29 30 views
9

Mam do czynienia z problemem "MyViewcontroller przy użyciu NULL argumentu baseURL z metodą loadHTMLString baseURL: twierdzenie o danych" - Z powodzeniem ukończyłem moje zadanie i wszystkie działają poprawnie .viewcontroller za pomocą NULL argumentu baseURL z metodą loadHTMLString baseURL: Twierdzenie o danych

Problem dotyczył skanowania zabezpieczeń OSWAP w poszukiwaniu luki, pokazujący powyższy błąd.

Moje urywek kodu: -

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]; 

Aktualizacja:

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

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

nadal pokazuje mi problem skanowania

+0

chciałbym zacząć logując wartości 'thePlistPath' (i ewentualnie' theURLdata') i sprawdzeniu, faktycznie masz plik w lokalizacji wskazanej przez 'thePlistPath'. Jeśli tego nie zrobisz, wtedy '[NSURL plikURLWithPath: thePlistPath];' prawdopodobnie zwróci zero, a 'theURLdata' również prawdopodobnie będzie zerowe. – fullofsquirrels

+0

co to jest "ee", "yy" i "ii"? proszę używać czystych nazw zmiennych, a także jakie są wartości 'kConfigurationPlistName' i' kPlistFormType'? czy to ustawia wartość 'thePlistPath' poprawnie czy jest to zero? –

+0

@ MostafaTorbjørnBerg Cześć, to zmienne oparte na warunku w loadFAQForewithout wewnątrz buduję plik html .js i .css – Spynet

Odpowiedz

5

Kwestia jest parametrem baseURL:. BaseURL nie jest potrzebny dla łańcucha html, zazwyczaj jest używany dla odnośników. Jeśli wszystko, co próbujesz zrobić, to pokazać jakiś html, czy na pewno go potrzebujesz?

Zgłoszony problem z bezpieczeństwem ma sens (rozumiem mniej więcej): Jeśli baseURL witryny internetowej jest ustawiony na lokalny system plików, strona załadowana (ostatecznie) za pośrednictwem tego widoku sieci Web może uzyskać dostęp do zasobów lokalnych.

Spróbuj przekazać zero dla numeru baseURL:, aby wyciszyć to ostrzeżenie.

+0

Powiązany adres URL w tym znaczeniu Co? Czy mógłbyś podać szczegółowe informacje? – Spynet

+0

Względna ścieżka w sensie? ..., jest to również ścieżka względna prawa [NSURL plikURLWithPath: @ "about: blank"] – Spynet

+0

masz jakieś sugestie na temat podawania względnej ścieżki – Spynet

1

baseURL powinien być [[NSBunld mainBunld] bunldPath], można spróbować tak ..

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

nie ujawnia problemu bezpieczeństwa – Spynet

+0

Wreszcie znalazłem właściwą odpowiedź: [NSURL URLWithString: @ "about: blank"], Dzięki za pomoc człowieka – Spynet