X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ddb7f33868ea499ab8f48a7062f145e8c0fbe02f..refs/pull/2376/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3a1b4f42e..f41815399 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -34,7 +34,7 @@ class AppServiceProvider extends ServiceProvider // Custom validation methods Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { - $validImageExtensions = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'tiff', 'webp']; + $validImageExtensions = ['png', 'jpg', 'jpeg', 'gif', 'webp']; return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions); }); @@ -43,6 +43,13 @@ class AppServiceProvider extends ServiceProvider return substr_count($uploadName, '.') < 2; }); + Validator::extend('safe_url', function ($attribute, $value, $parameters, $validator) { + $cleanLinkName = strtolower(trim($value)); + $isJs = strpos($cleanLinkName, 'javascript:') === 0; + $isData = strpos($cleanLinkName, 'data:') === 0; + return !$isJs && !$isData; + }); + // Custom blade view directives Blade::directive('icon', function ($expression) { return "";