首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAT.NET:漏洞还是误报?

CAT.NET:漏洞还是误报?
EN

Stack Overflow用户
提问于 2011-01-05 23:52:42
回答 3查看 402关注 0票数 0

偶然系列中的第二个:Here's the first one

以下是ASP.NET中真正的漏洞,还是误报,这是CAT.NET正确的说法吗?

代码语言:javascript
复制
var myInt = Int32.Parse(txtUserInput.Text);

Response.Redirect(string.Format("myPage.aspx?myId={0}", myInt);

CAT.NET将此报告为需要通过编码myInt进行修复的重定向漏洞。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-06 00:00:08

我不认为这是危险的,但这不是我自己写的方式

代码语言:javascript
复制
int myInt;
if(Int32.TryParse(txtUserInput.Text,out myInt)){
    Response.Redirect(string.Format("myPage.aspx?myId={0}", myInt);
   }

在我看来更清晰,因为如果由于错误的用户输入而导致解析失败,它不会抛出异常,并且我们显式地键入int。

任何错误处理代码都可以捆绑到最后的else语句中。

票数 1
EN

Stack Overflow用户

发布于 2011-01-05 23:59:06

我不这样认为,它可能会导致一个异常,所以TryParse可能是一个更好的方法。它只是大喊大叫,因为你正在接受用户输入,并基于它进行重定向。这可能是有点太激进了,这并不是很糟糕。

票数 1
EN

Stack Overflow用户

发布于 2011-01-06 00:00:02

此代码不会导致可利用的漏洞。任何漏洞都是由于myPage.aspx对myId的值做了什么,而不是你的url是如何构建的。任何人都可以在查询字符串中使用他们想要的任何东西来直接访问myPage.aspx。

然而,这是一种糟糕的做法,假设您没有在这两行之间的代码中留下任何东西。您应该验证txtUserInput.Text是否仅包含数字字符,并且在允许值范围内。

攻击的发生是因为用户提供的数据被发布到的页面不正确地解析--而不是不正确地生成URL。尽管尝试确保您的网站不会因为表单中的某些内容而写入损坏的URL是一个好主意,但前端的输入验证与安全性无关。重要的是接受输入的代码对它做了什么,因为任何帖子或查询字符串都可以伪造。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4606059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档