Skip to content

Commit 41a3139

Browse files
improved webpush pushResource validation
1 parent d0ec837 commit 41a3139

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

lib/PushTransports/WebPushTransport.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,7 @@ private function parseOptions(array $options): array {
5555
public function validateOptions($options): array {
5656
['pushResource' => $pushResource] = $this->parseOptions($options);
5757

58-
// TODO: check if string is valid URL
59-
60-
if(isset($pushResource) && $pushResource !== '') {
58+
if(isset($pushResource) && $this->validPushResource($pushResource)) {
6159
return [
6260
'valid' => True,
6361
'errors' => [],
@@ -70,6 +68,10 @@ public function validateOptions($options): array {
7068
}
7169
}
7270

71+
private function validPushResource(string $url): bool {
72+
return (str_starts_with($url, 'https://') && filter_var($url, FILTER_VALIDATE_URL) !== false);
73+
}
74+
7375
public function registerSubscription($subsciptionId, $options) {
7476
['pushResource' => $pushResource] = $this->parseOptions($options);
7577

0 commit comments

Comments
 (0)