【问题标题】:ASP.NET MVC - Check if request comes from another actionASP.NET MVC - 检查请求是否来自另一个动作
【发布时间】:2013-06-09 21:08:53
【问题描述】:

是否有一种简单的方法来检查请求是否来自我的应用内部的操作?

我正在我正在处理的网站上构建电子邮件确认页面,我想在不同的请求来源上显示不同的文本。

  • 如果用户来自 my 中的另一个操作(例如:注册操作) 应用程序,然后我只想显示一个文本,内容如下: “感谢您在 x 上注册,请确认您的帐户与 您从我们那里收到的电子邮件中给出的链接..”

  • 如果用户离开我的应用程序,那么他可能想要 确认他或她的帐户,因此我将根据具体情况显示另一条文本 确认成功。或者他/她是黑客,想在查询字符串中插入恶意代码。

为什么我需要这样做,你可能会问。嗯,我的客户对安全非常感兴趣,我想检查网站上的几乎每个请求,这样他就可以安心睡觉了:)

【问题讨论】:

    标签: asp.net asp.net-mvc security asp.net-mvc-4


    【解决方案1】:

    只需检查UrlReferrer 属性,它是请求的属性(它是控制器的属性):

    if (Request.UrlReferrer.ToString().StartsWith("The domain"))
    

    您也可以使用它:

    if (Request.UrlReferrer.Host == Request.Url.Host)
    

    顺便说一句,既然您关心安全性,请注意请求很容易被编辑并包含虚假数据。根据数据验证每个请求,不要依赖以前的 url 等。

    【讨论】:

    • 我确实验证了每个数据,这只是为了我的客户将收到的一些统计信息:) 我可以将这两个条件与“and”(&&) 语句一起使用以获得额外的安全性吗?像这样: if (Request.UrlReferrer.ToString().StartsWith("The domain") && Request.UrlReferrer.Host == Request.Url.Host)
    猜你喜欢
    • 2010-11-23
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多