@@ -41,7 +41,13 @@ func testInputStream() {
41
41
let remoteStream = InputStream ( data: remoteData)
42
42
let parser = XMLParser ( stream: remoteStream) // $ hasXXE=39
43
43
parser. shouldResolveExternalEntities = true
44
+ }
44
45
46
+ func testUrl( ) {
47
+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
48
+ let remoteUrl = URL ( string: remoteString) !
49
+ let parser = XMLParser ( contentsOf: remoteUrl) // $ hasXXE=47
50
+ parser? . shouldResolveExternalEntities = true
45
51
}
46
52
47
53
func testDataSafe( ) {
@@ -55,7 +61,6 @@ func testDataSafeExplicit() {
55
61
let remoteData = Data ( remoteString)
56
62
let parser = XMLParser ( data: remoteData) // NO XXE: parser disables external entities
57
63
parser. shouldResolveExternalEntities = false
58
-
59
64
}
60
65
61
66
func testInputStreamSafe( ) {
@@ -71,4 +76,17 @@ func testInputStreamSafeExplicit() {
71
76
let remoteStream = InputStream ( data: remoteData)
72
77
let parser = XMLParser ( stream: remoteStream) // NO XXE: parser disables external entities
73
78
parser. shouldResolveExternalEntities = false
79
+ }
80
+
81
+ func testUrlSafe( ) {
82
+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
83
+ let remoteUrl = URL ( string: remoteString) !
84
+ let _ = XMLParser ( contentsOf: remoteUrl) // NO XXE: parser doesn't enable external entities
85
+ }
86
+
87
+ func testUrlSafeExplicit( ) {
88
+ let remoteString = String ( contentsOf: URL ( string: " http://example.com/ " ) !)
89
+ let remoteUrl = URL ( string: remoteString) !
90
+ let parser = XMLParser ( contentsOf: remoteUrl) // NO XXE: parser disables external entities
91
+ parser? . shouldResolveExternalEntities = false
74
92
}
0 commit comments