是否有一种简单的方法可以检查请求是否来自内部我的应用中的操作?
我正在我正在制作的网站上建立电子邮件确认页面,我想在不同的请求来源上显示不同的文本。
如果用户来自我的其他操作(例如:注册操作) 应用,然后我只是想显示一个文字说: “感谢您注册x,请通过以下方式确认您的帐户 在我们收到的电子邮件中给出了链接..“
如果用户不在我的应用中,那么他可能会想要 确认他或她的帐户,所以我将显示另一个文本取决于 确认成功。或许他/她是黑客,并希望在查询字符串中插入恶意代码。
为什么我需要这样做,你可能会问。好吧,我的客户非常热衷于安全性,而且我想检查网站上的几乎所有请求,这样他就可以安心入睡:)
答案 0 :(得分:6)
只需检查UrlReferrer
属性,它是请求的属性(属于控制器的属性):
if (Request.UrlReferrer.ToString().StartsWith("The domain"))
你也可以使用它:
if (Request.UrlReferrer.Host == Request.Url.Host)
顺便说一下,既然您关心安全性,请注意可以轻松编辑请求并包含错误数据。根据数据验证每个请求,不要依赖以前的网址等。