我有以下场景:
1)用户打开网页test1.aspx,点击test1.aspx上的某个按钮。点击后,用户被重定向至网页callback.aspx。
2)callback.aspx使用javascript向另一个服务器(如facebook服务器)发出一些跨域的http请求。
3)然后,callback.aspx将收集到的数据(从另一个服务器)发送到网页test2.aspx(简单的web表单post)。
现在,我的问题是如何确保发送到test2.aspx的收集数据只来自callback.aspx,而不是其他任何地方。我的意思是,任何黑客都可以通过post或get请求向test2.aspx发送虚假数据。
callback.aspx有点像认证脚本,如果它说用户已被认证,test2.aspx必须相信用户已被认证。基本上,我是使用oauth-2.0客户端流程进行身份验证的用户。
发布于 2013-02-12 22:50:52
从网页执行HTTP请求-通常称为“屏幕抓取”的任务-涉及服务器端代码向其他网站发出HTTP请求,检索返回的结果,并以某种方式处理这些结果。例如,屏幕抓取通常用于从另一个站点抓取数据,例如从Yahoo!金融页,获取特定股票代码的当前股票价格。多亏了WebClient类,在ASP.NET中执行简单的HTTP请求只需要几行代码。这个类可以在System.Net名称空间中找到,它提供了一些属性和方法,这些属性和方法对于发出简单的HTTP请求很有用。
http://www.4guysfromrolla.com/articles/102605-1.aspx
发布于 2013-02-12 22:50:59
有很多方法可以达到这样的要求。首先想到的是对从callback.aspx发送到test2.aspx的数据进行加密。如果您能够在test2.aspx中解密,则可以确定数据是正确的。
https://stackoverflow.com/questions/14835123
复制相似问题