C# 在c中验证查询字符串参数的最佳方法#
我在查询字符串中接收数字变量 我正在使用以下代码进行验证:C# 在c中验证查询字符串参数的最佳方法#,c#,security,C#,Security,我在查询字符串中接收数字变量 我正在使用以下代码进行验证: if (!String.IsNullOrEmpty(Request.QueryString["num"])) if (!int.TryParse(Request.QueryString["num"],out value) throw SecurityError; 验证是否足够安全?这是最有效的吗? (假设我得到的每个整数都是有效的)在上面的代码中,您没有处理的唯一情况是在查询字符串中没有传递“num”。我不确定
if (!String.IsNullOrEmpty(Request.QueryString["num"]))
if (!int.TryParse(Request.QueryString["num"],out value)
throw SecurityError;
验证是否足够安全?这是最有效的吗?
(假设我得到的每个整数都是有效的)在上面的代码中,您没有处理的唯一情况是在查询字符串中没有传递“num”。我不确定在这种情况下您想做什么,但是您可以删除外部
if
块,这样,如果根本没有传递参数,就会抛出异常
if (!int.TryParse(Request.QueryString["num"],out value)
throw SecurityError;
此外,“SecurityError”似乎是一种奇怪的异常类型,在非数值参数的情况下抛出
否则看起来很好。上面代码中没有处理的唯一情况是在查询字符串中没有传递'num'时。我不确定在这种情况下您想做什么,但是您可以删除外部
if
块,这样,如果根本没有传递参数,就会抛出异常
if (!int.TryParse(Request.QueryString["num"],out value)
throw SecurityError;
此外,“SecurityError”似乎是一种奇怪的异常类型,在非数值参数的情况下抛出
否则它看起来很好。它既安全又高效。您甚至可以删除第一个
,如果
:
if (!int.TryParse(Request.QueryString["num"], out value)
throw SecurityError;
它安全高效。您甚至可以删除第一个
,如果
:
if (!int.TryParse(Request.QueryString["num"], out value)
throw SecurityError;