我在我的queryString中接收数字变量。在c#中验证QueryString参数的最佳方法
我做验证用下面的代码:
if (!String.IsNullOrEmpty(Request.QueryString["num"]))
if (!int.TryParse(Request.QueryString["num"],out value)
throw SecurityError;
就够了验证安全吗?它是最高效的吗? (假设我得到的每个整数都是有效的)
我在我的queryString中接收数字变量。在c#中验证QueryString参数的最佳方法
我做验证用下面的代码:
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'在抛出非数字参数的情况下似乎是一种奇怪的异常类型。
否则它看起来很好。
它安全高效。你甚至可以删除第一个if
:
if (!int.TryParse(Request.QueryString["num"], out value)
throw SecurityError;