libs/web: rework hostname match to not allow arbritary sequences of numbers and dots

This commit is contained in:
Jo-Philipp Wich 2011-12-16 06:05:51 +00:00
parent 3a0905f21c
commit 375a476d27
2 changed files with 8 additions and 6 deletions

View file

@ -153,8 +153,9 @@ var cbi_validators = {
'hostname': function(v) 'hostname': function(v)
{ {
if (v.length <= 253) if (v.length <= 253)
return (v.match(/^[a-zA-Z0-9]+$/) != null || return (v.match(/^[a-zA-Z]+$/) != null ||
v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) != null); (v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) &&
v.match(/[^0-9.]/)));
return false; return false;
}, },
@ -191,7 +192,7 @@ var cbi_validators = {
'neg_network_ip4addr': function(v) 'neg_network_ip4addr': function(v)
{ {
v = v.replace(/^\s*!/, ""); v = v.replace(/^\s*!/, "");
return cbi_validators.uciname(v) || cbi_validators.ip4addr(v); return cbi_validators.uciname(v) || cbi_validators.ip4addr(v);
}, },
'range': function(v, args) 'range': function(v, args)

View file

@ -142,8 +142,9 @@ end
function hostname(val) function hostname(val)
if val and (#val < 254) and ( if val and (#val < 254) and (
val:match("^[a-zA-Z0-9]+$") or val:match("^[a-zA-Z]+$") or
val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") (val:match("^[a-zA-Z0-9][a-zA-Z0-9%-%.]*[a-zA-Z0-9]$") and
val:match("[^0-9%.]"))
) then ) then
return true return true
end end
@ -238,7 +239,7 @@ function neg_network_ip4addr(val)
if type(v) == "string" then if type(v) == "string" then
v = v:gsub("^%s*!", "") v = v:gsub("^%s*!", "")
return (uciname(v) or ip4addr(v)) return (uciname(v) or ip4addr(v))
end end
end end
function range(val, min, max) function range(val, min, max)