Skip to content

Commit d0c723c

Browse files
authored
Validate url domain and path (#4522)
1 parent ee59b6a commit d0c723c

38 files changed

Lines changed: 189 additions & 47 deletions

src/main/java/org/prebid/server/bidder/acuityads/AcuityadsBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private ExtImpAcuityads parseImpExt(Imp imp) {
9595

9696
private String resolveEndpoint(String host, String accountId) {
9797
return endpointUrl
98-
.replace(URL_HOST_MACRO, StringUtils.stripToEmpty(host))
98+
.replace(URL_HOST_MACRO, HttpUtil.validateDomainName(StringUtils.stripToEmpty(host)))
9999
.replace(URL_ACCOUNT_ID_MACRO, StringUtils.stripToEmpty(accountId));
100100
}
101101

src/main/java/org/prebid/server/bidder/adhese/AdheseBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ private ExtImpAdhese parseImpExt(Imp imp) {
7878
}
7979

8080
private String getUrl(ExtImpAdhese extImpAdhese) {
81-
return endpointUrl.replace("{{AccountId}}", extImpAdhese.getAccount());
81+
return endpointUrl.replace("{{AccountId}}", HttpUtil.validateDomainName(extImpAdhese.getAccount()));
8282
}
8383

8484
private BidRequest modifyBidRequest(BidRequest bidRequest, ExtImpAdhese extImpAdhese) {

src/main/java/org/prebid/server/bidder/adtonos/AdtonosBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private ExtImpAdtonos parseImpExt(Imp imp) {
6363
}
6464

6565
private String makeUrl(ExtImpAdtonos extImp) {
66-
return endpointUrl.replace(PUBLISHER_ID_MACRO, extImp.getSupplierId());
66+
return endpointUrl.replace(PUBLISHER_ID_MACRO, HttpUtil.validatePathSegment(extImp.getSupplierId()));
6767
}
6868

6969
@Override

src/main/java/org/prebid/server/bidder/adview/AdviewBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private static Banner resolveBanner(Banner banner) {
131131
}
132132

133133
private String resolveEndpoint(String accountId) {
134-
return endpointUrl.replace(ACCOUNT_ID_MACRO, HttpUtil.encodeUrl(accountId));
134+
return endpointUrl.replace(ACCOUNT_ID_MACRO, HttpUtil.encodeUrl(HttpUtil.validatePathSegment(accountId)));
135135
}
136136

137137
@Override

src/main/java/org/prebid/server/bidder/axonix/AxonixBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private ExtImpAxonix parseImpExt(Imp imp) {
6767
}
6868

6969
private String resolveEndpoint(String supplyId) {
70-
return endpointUrl.replace(URL_SUPPLY_ID_MACRO, HttpUtil.encodeUrl(supplyId));
70+
return endpointUrl.replace(URL_SUPPLY_ID_MACRO, HttpUtil.encodeUrl(HttpUtil.validatePathSegment(supplyId)));
7171
}
7272

7373
@Override

src/main/java/org/prebid/server/bidder/bidmachine/BidmachineBidder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,9 @@ private static boolean isMissedRewardedBattr(List<Integer> battr) {
142142
}
143143

144144
private String buildEndpointUrl(ExtImpBidmachine extImpBidmachine) {
145-
return endpointUrl.replace("{{HOST}}", extImpBidmachine.getHost())
146-
.replace("{{PATH}}", extImpBidmachine.getPath())
147-
.replace("{{SELLER_ID}}", extImpBidmachine.getSellerId());
145+
return endpointUrl.replace("{{HOST}}", HttpUtil.validateDomainName(extImpBidmachine.getHost()))
146+
.replace("{{PATH}}", HttpUtil.validatePathSegment(extImpBidmachine.getPath()))
147+
.replace("{{SELLER_ID}}", HttpUtil.validatePathSegment(extImpBidmachine.getSellerId()));
148148
}
149149

150150
private ExtPrebid<ExtImpPrebid, ExtImpBidmachine> parseImpExt(Imp imp) {

src/main/java/org/prebid/server/bidder/blis/BlisBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ private static MultiMap makeHeaders(String supplyId) {
7272
}
7373

7474
private String makeUrl(String supplyId) {
75-
return endpointUrl.replace(SUPPLY_ID_MACRO, HttpUtil.encodeUrl(supplyId));
75+
return endpointUrl.replace(SUPPLY_ID_MACRO, HttpUtil.encodeUrl(HttpUtil.validatePathSegment(supplyId)));
7676
}
7777

7878
@Override

src/main/java/org/prebid/server/bidder/clydo/ClydoBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private static MultiMap constructHeaders(BidRequest bidRequest) {
111111
private static String resolveUrl(String endpoint, ExtImpClydo extImp) {
112112
return endpoint
113113
.replace(REGION_MACRO, getRegionInfo(extImp))
114-
.replace(PARTNER_ID_MACRO, HttpUtil.encodeUrl(extImp.getPartnerId()));
114+
.replace(PARTNER_ID_MACRO, HttpUtil.encodeUrl(HttpUtil.validatePathSegment(extImp.getPartnerId())));
115115
}
116116

117117
private static String getRegionInfo(ExtImpClydo extImp) {

src/main/java/org/prebid/server/bidder/contxtful/ContxtfulBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ private static User modifyUser(User user) {
129129
}
130130

131131
private String makeUrl(String customerId) {
132-
return endpointUrl.replace(ACCOUNT_ID_MACRO, HttpUtil.encodeUrl(customerId));
132+
return endpointUrl.replace(ACCOUNT_ID_MACRO, HttpUtil.encodeUrl(HttpUtil.validatePathSegment(customerId)));
133133
}
134134

135135
@Override

src/main/java/org/prebid/server/bidder/elementaltv/ElementalTVBidder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ private ExtImpElementalTV parseAndValidateImpExt(Imp imp) {
8686
private String resolveUrl(ExtImpElementalTV extImp) {
8787
try {
8888
return endpointTemplate
89-
.replace("{{AdUnit}}", HttpUtil.encodeUrl(extImp.getAdunit()));
89+
.replace("{{AdUnit}}", HttpUtil.encodeUrl(HttpUtil.validatePathSegment(extImp.getAdunit())));
9090
} catch (Exception e) {
9191
throw new PreBidException(e.getMessage());
9292
}

0 commit comments

Comments
 (0)