Packages
krug
0.4.14
2.0.36
2.0.35
2.0.34
2.0.33
2.0.32
2.0.31
2.0.30
2.0.29
2.0.27
2.0.26
2.0.25
2.0.24
2.0.23
2.0.22
2.0.20
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.1
2.0.0
1.1.53
1.1.52
1.1.50
1.1.49
1.1.48
1.1.47
1.1.46
1.1.45
1.1.44
1.1.43
1.1.42
1.1.41
1.1.40
1.1.39
1.1.38
1.1.37
1.1.36
1.1.35
1.1.34
1.1.33
1.1.32
1.1.31
1.1.30
1.1.29
1.1.28
1.1.27
1.1.26
1.1.25
1.1.24
1.1.23
1.1.22
1.1.21
1.1.20
1.1.19
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.12
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
A Utilitary package functionalities modules for improve a secure performatic development.
Current section
Files
Jump to
Current section
Files
lib/krug/util/image.util.ex
defmodule Krug.ImageUtil do
@moduledoc """
Utilitary module to work with images.
"""
alias Krug.StringUtil
@doc """
Validates a url relative to a image stored in cloud.
Should be an ```HTTPS``` link and the image should be of type: ```["png","bmp","jpg","jpeg","gif"]```.
Useful to block the use of images that don't are serverd over https protocol
and could break application security.
## Examples
```elixir
iex > url = "www.google.com"
iex > Krug.ImageUtil.validate_url(url)
false
```
```elixir
iex > url = "http://www.google.com"
iex > Krug.ImageUtil.validate_url(url)
false
```
```elixir
iex > url = "https://www.google.com.br"
iex > Krug.ImageUtil.validate_url(url)
false
```
```elixir
iex > url = "https://www.google.com.png"
iex > Krug.ImageUtil.validate_url(url)
true
```
```elixir
iex > url = "https://www.google.com.gif"
iex > Krug.ImageUtil.validate_url(url)
true
```
"""
def validate_url(url) do
url = url |> StringUtil.trim()
cond do
(!(String.contains?(url,"https://")) or !(String.contains?(url,"."))) -> false
(String.length(url) < 13) -> false
(url |> StringUtil.split(":") |> Enum.at(0) != "https") -> false
true -> url |> StringUtil.split(".") |> validate_url_extension()
end
end
defp validate_url_extension(arr) do
ext = Enum.at(arr,length(arr) - 1) |> StringUtil.trim() |> String.downcase()
Enum.member?(["png","bmp","jpg","jpeg","gif"],ext)
end
end