Krug.SanitizerUtil (Krug v0.1.0) View Source
Utilitary secure module to provide methods that help whit data sanitization for validation, and some methods that result sanitized values.
Link to this section Summary
Functions
Return the valid email chars array.
Generates a random string whit length size
containing
"A-z0-9" chars.
Generates a random string whit length size
containing
only allowed chars to be used in file names.
Generates a random string whit length size
containing
only numeric 0-9 chars.
Verify if an element of arrayValues
is one of [nil,""," "].
Verify if an element of arrayValues
is < value
.
Return the valid money format chars array.
Return the valid numeric chars array.
Return the valid numbers chars array.
Convert received value to a string, make some validations of forbidden content.
Convert received value to a string, make some validations of forbidden content and allowed chars. If forbidden content or not allowed chars are finded, return empty string for not numeric input values and "0" for numeric values.
Sanitizes a file name to escape not allowed chars and force the use of file name whit length <= maxSize.
Convert received value to a string, and replace some special chars to normalized chars.
Verify if an email contains only allowed chars to be present on email. Apply lowercase before verification.
Verify if an url contains only chars allowed to be in a url.
Link to this section Functions
Return the valid email chars array.
Example
iex > Krug.SanitizerUtil.emailChars()
["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"0","1","2","3","4","5","6","7","8","9",
"-","+","@","_","."]
Generates a random string whit length size
containing
"A-z0-9" chars.
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z",
"0","1","2","3","4","5","6","7","8","9",
"(",")","*","-","+","%","@","_",".",",","$",":"," ","/"]
If size
is not a number, set size
to 10.
Examples
iex > Krug.SanitizerUtil.generateRandom(nil)
"V@/)B*$fXG" - random
iex > Krug.SanitizerUtil.generateRandom("")
"NXd6oBJJK$" - random
iex > Krug.SanitizerUtil.generateRandom(" ")
"WñQcVCX1m(" - random
iex > Krug.SanitizerUtil.generateRandom("10")
"Y,nEWnty/t" - random
iex > Krug.SanitizerUtil.generateRandom(20)
"28ñHH5I2:$jcPCñ6kNk8" - random
iex > Krug.SanitizerUtil.generateRandom("30")
"7@sX$M%7gyy,58$_p@48_rRN%VjtVO" - random
Generates a random string whit length size
containing
only allowed chars to be used in file names.
If size
is not a number, set size
to 10.
Examples
iex > Krug.SanitizerUtil.generateRandomFileName(nil)
"2mi1k281XY" - random
iex > Krug.SanitizerUtil.generateRandomFileName("")
"1xdsohbWBs" - random
iex > Krug.SanitizerUtil.generateRandomFileName(" ")
"3orpWPvnfg" - random
iex > Krug.SanitizerUtil.generateRandomFileName(10)
"T29p17Gbqi" - random
iex > Krug.SanitizerUtil.generateRandomFileName("20")
"Ry7JFypiFVl2z8jDhsg1" - random
iex > Krug.SanitizerUtil.generateRandomFileName(30)
"OxC5DTSmih3BG5uj7KmK1XgWDvMBe3" - random
Generates a random string whit length size
containing
only numeric 0-9 chars.
If size
is not a number, set size
to 10.
Examples
iex > Krug.SanitizerUtil.generateRandomOnlyNum(nil)
"8842631571" - random
iex > Krug.SanitizerUtil.generateRandomOnlyNum("")
"3983415257" - random
iex > Krug.SanitizerUtil.generateRandomOnlyNum(" ")
"5367142216" - random
iex > Krug.SanitizerUtil.generateRandomOnlyNum(10)
"1519486235" - random
iex > Krug.SanitizerUtil.generateRandomOnlyNum("20")
"45396319754971833184" - random
iex > Krug.SanitizerUtil.generateRandomOnlyNum(30)
"845951826982685147272442547731" - random
Verify if an element of arrayValues
is one of [nil,""," "].
Examples
iex > Krug.SanitizerUtil.hasEmpty(nil)
false
iex > Krug.SanitizerUtil.hasEmpty([])
false
iex > Krug.SanitizerUtil.hasEmpty([nil,1,2])
true
iex > Krug.SanitizerUtil.hasEmpty([3,4,""])
true
iex > Krug.SanitizerUtil.hasEmpty([8,7,9," "])
true
iex > Krug.SanitizerUtil.hasEmpty([[],%{},9,34,"$A"])
false
Verify if an element of arrayValues
is < value
.
If arrayValues
is nil/empty return true.
If value
is not a number return false.
Examples
iex > Krug.SanitizerUtil.hasLessThan(nil,1)
true
iex > Krug.SanitizerUtil.hasLessThan([""],1)
false
iex > Krug.SanitizerUtil.hasLessThan([nil],1)
false
iex > Krug.SanitizerUtil.hasLessThan([1],nil)
false
iex > Krug.SanitizerUtil.hasLessThan([1],"")
false
iex > Krug.SanitizerUtil.hasLessThan([1],"-1-1")
false
iex > Krug.SanitizerUtil.hasLessThan([1],"10")
true
iex > Krug.SanitizerUtil.hasLessThan([1,0],1)
true
iex > Krug.SanitizerUtil.hasLessThan([1,0,-1],"-0.5")
true
iex > Krug.SanitizerUtil.hasLessThan([1,0,-1],"-0,5.5")
false - * "-0,5.5" convert to -5.5
iex > Krug.SanitizerUtil.hasLessThan([1,0,-1],"-0,0.5")
true
iex > Krug.SanitizerUtil.hasLessThan([1,0,-1,[],nil,%{}],"-0,0.5")
true
iex > Krug.SanitizerUtil.hasLessThan([1,0,2,[],nil,%{}],"-0,0.5")
false
Return the valid money format chars array.
Example
iex > Krug.SanitizerUtil.moneyChars()
[",","0","1","2","3","4","5","6","7","8","9"]
Return the valid numeric chars array.
Example
iex > Krug.SanitizerUtil.nums()
["-",".","0","1","2","3","4","5","6","7","8","9"]
Return the valid numbers chars array.
Example
iex > Krug.SanitizerUtil.onlyNums()
["0","1","2","3","4","5","6","7","8","9"]
Convert received value to a string, make some validations of forbidden content.
If forbidden content are finded, return nil. Otherwise return received value making some unobfscating substution operations.
Examples
iex > Krug.SanitizerUtil.sanitize("echo <script echo")
nil
iex > Krug.SanitizerUtil.sanitize("echo < script echo")
nil
iex > Krug.SanitizerUtil.sanitize("echo script> echo")
nil
iex > Krug.SanitizerUtil.sanitize("echo script > echo")
nil
iex > Krug.SanitizerUtil.sanitize(echoscript>echo)
nil
iex > Krug.SanitizerUtil.sanitize("echoscriptecho")
"echoscriptecho"
iex > Krug.SanitizerUtil.sanitize("echo script echo")
"echo script echo"
Convert received value to a string, make some validations of forbidden content and allowed chars. If forbidden content or not allowed chars are finded, return empty string for not numeric input values and "0" for numeric values.
If sanitizeInput
received as true, then call additionally methods
to sanitize the value as comming from a html input field
(type: text,number and all others except textarea).
validChars
should be a string whit the valid chars aceppted, separated
by comma (ex.: "a,b,c,d,4") or a string that matches whit a predefined values name.
If validChars
is nil/empty default value "A-z0-9" is used if
isNumber
= false otherwise if is a number the "0-9" value used by default.
Named validChars
predefined values and respective chars:
"A-z0-9"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "(",")","*","-","+","%","@","_",".",",","$",":"," ","/"]
"A-z0-9Name"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "-",","," "]
"A-z0-9|" All "A-z0-9" more "|"
"0-9"
["-",".","0","1","2","3","4","5","6","7","8","9"]
"A-z"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "(",")","*","-","+","%","@","_",".",",","$",":"," ","/"]
"a-z"
["a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "(",")","*","-","+","%","@","_",".",",","$",":"," ","/"]
"A-Z"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "(",")","*","-","+","%","@","_",".",",","$",":"," ","/"]
"DATE_SLASH"
[":","/"," ","0","1","2","3","4","5","6","7","8","9"]
"DATE_SQL"
[":","-"," ","0","1","2","3","4","5","6","7","8","9"]
"email"
["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "-","+","@","_","."]
"password"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "*","+","%","@","_",".",",","$",":","-"]
"url"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "(",")","*","-","+","%","@","_",".",",","$",":"," ",";","/","\","?","=","&","[","]","{","}"]
"hex"
["A","B","C","D","E","F","a","b","c","d","e","f","0","1","2","3","4","5","6","7","8","9"]
"filename"
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "_","."]
Examples
iex > Krug.SanitizerUtil.sanitizeAll("09 8778 987",false,true,250,"0-9")
""
iex > Krug.SanitizerUtil.sanitizeAll("098778987",false,true,250,"0-9")
"098778987"
iex > Krug.SanitizerUtil.sanitizeAll("09 8778 987",true,true,250,"0-9")
"0"
iex > Krug.SanitizerUtil.sanitizeAll("098778987",true,true,250,"0-9")
"098778987"
iex > Krug.SanitizerUtil.sanitizeAll("09 8778 987 ABCDEF ",false,true,250,"A-z")
""
iex > Krug.SanitizerUtil.sanitizeAll("09 8778 987 ABCDEF ",false,true,250,"0-9")
""
iex > Krug.SanitizerUtil.sanitizeAll("09 8778 987 ABCDEF ",false,true,250,"A-z0-9")
"09 8778 987 ABCDEF"
Sanitizes a file name to escape not allowed chars and force the use of file name whit length <= maxSize.
If any not allowed char is found, or the file name length > maxSize, the value received is ignored and a new random name is generated whit the valid chars whit size = maxSize and return.
If maxSize is nil or maxSize <= 0, maxSize for generate a ramdom string name receive 10. (Then the file name has no limit of chars, if contains only valid chars).
Allowed chars:
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"0","1","2","3","4","5","6","7","8","9",
"_","."]
Examples
iex > Krug.SanitizerUtil.sanitizeFileName(nil,10)
"rOufHwKL7a" - random
iex > Krug.SanitizerUtil.sanitizeFileName("",10)
"WQskDae0ZP" - random
iex > Krug.SanitizerUtil.sanitizeFileName(" ",10)
"htlp9cKxHC" - random
iex > Krug.SanitizerUtil.sanitizeFileName(" ",10)
"rOufHwKL7a" - random
iex > Krug.SanitizerUtil.sanitizeFileName(" afdd#%%{}8989nfdfdd@",10)
"ts44e22BuP" - random
iex > Krug.SanitizerUtil.sanitizeFileName("afdd#%%{}8989nfdfdd@",100)
"Jnn7nZICOwuuOXou4q7EBqNVtPHcYgvjh7dORJczzIlPMI7Yr5N96miqHv8gV88KTc2QOaW1yG9FJRsqeRMCKtVTbjepPKQE3whd" - random
iex > Krug.SanitizerUtil.sanitizeFileName("Aabcde_fg.6712.89_as",10)
"ts44e22BuP" - random
iex > Krug.SanitizerUtil.sanitizeFileName("Aabcde_fg.6712.89_as",19)
"ts44e22BuP" - random
iex > Krug.SanitizerUtil.sanitizeFileName("Aabcde_fg.6712.89_as",20)
"Aabcde_fg.6712.89_as"
iex > Krug.SanitizerUtil.sanitizeFileName("Aabcde_fg.6712.89_as",50)
"Aabcde_fg.6712.89_as"
Convert received value to a string, and replace some special chars to normalized chars.
Special chars:
["ã","á","à","â","ä","å","æ", "é","è","ê","ë", "í","ì","î","ï", "õ","ó","ò","ô","ö","ø","œ","ð", "ú","ù","û","ü","µ", "ç","š","ž","ß","ñ","ý","ÿ", "Ã","Á","À","Â","Ä","Å","Æ", "É","È","Ê","Ë", "Í","Ì","Î","Ï", "Õ","Ó","Ò","Ô","Ö","Ø","Œ", "Ú","Ù","Û","Ü", "Ç","Š","Ž","Ÿ","¥","Ý","Ð","Ñ"]
Normalized chars:
["a","a","a","a","a","a","a", "e","e","e","e", "i","i","i","i", "o","o","o","o","o","o","o","o", "u","u","u","u","u", "c","s","z","s","n","y","y", "A","A","A","A","A","A","A", "E","E","E","E", "I","I","I","I", "O","O","O","O","O","O","O", "U","U","U","U", "C","S","Z","Y","Y","Y","D","N"]
Example
iex > Krug.SanitizerUtil.translate("éèêëÇŠŽŸ¥ÝÐÑ")
"eeeeCSZYYYDN"
Verify if an email contains only allowed chars to be present on email. Apply lowercase before verification.
- Allowed chars:
["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "-","+","@","_","."]
Examples
iex > Krug.SanitizerUtil.validateEmail(nil)
false
iex > Krug.SanitizerUtil.validateEmail("")
false
iex > Krug.SanitizerUtil.validateEmail([])
false
iex > Krug.SanitizerUtil.validateEmail([""])
false
iex > Krug.SanitizerUtil.validateEmail("echo@ping%com")
false
iex > Krug.SanitizerUtil.validateEmail("echo@ping$com")
false
iex > Krug.SanitizerUtil.validateEmail("echo@ping.com")
true
iex > Krug.SanitizerUtil.validateEmail("echo@ping_com")
true
Verify if an url contains only chars allowed to be in a url.
- Allowed chars:
["A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z", "0","1","2","3","4","5","6","7","8","9", "(",")","*","-","+","%","@","_",".",",","$",":"," ",";","/","\","?","=","&","[","]","{","}"]
Examples
iex > Krug.SanitizerUtil.validateUrl(nil)
false
iex > Krug.SanitizerUtil.validateUrl("")
false
iex > Krug.SanitizerUtil.validateUrl(" ")
false
iex > Krug.SanitizerUtil.validateUrl([])
false
iex > Krug.SanitizerUtil.validateUrl([""])
false
iex > Krug.SanitizerUtil.validateUrl("www.google.com")
false
iex > Krug.SanitizerUtil.validateUrl("http://www.google.com")
true
iex > Krug.SanitizerUtil.validateUrl("https://www.google.com")
true
iex > Krug.SanitizerUtil.validateUrl("https://www.echo|")
false