Validaci贸n de devoluci贸n de llamada JSONP sin expresiones regulares a trav茅s de LINQ magic

Para las llamadas JSONP, siempre debemos restringir y validar el par谩metro de devoluci贸n de llamada para evitar inyecciones de c贸digo y otros ataques de piratas inform谩ticos.

Para hacer esto, generalmente establecemos un tama帽o m谩ximo y solo permitimos caracteres alfanum茅ricos y guiones bajos.

La mayor铆a de los desarrolladores recurrir铆an a expresiones regulares, pero yo prefiero hacer cosas sin expresiones regulares, en C # podemos validar la cadena <i> callback </i> como se ve en este fragmento de c贸digo a continuaci贸n usando algo de magia LINQ:

if (!callback.ToCharArray().All(c => Char.IsLetter(c) || Char.IsNumber(c) || c == '_')))

return "illegal callback, can only contain alphanumeric characters and underscores";