2011-03-10 112 views
0

我正在寻找一种很好的方法来防止页面重复调用自己的情况。递归HTTP请求:如何防止页面自行调用

我有一个页面,需要渲染的页面需要对RSS提要进行HTTP请求。如果该RSS源的URL恰好是当前页面,它将触发对自身的请求。新的请求将从另一个页面请求开始,这将启动另一个请求......这个过程一直持续到当这个递归循环中所有可用的连接都忙时站点停止。

的几个注意事项:

  • 的URL RSS是由用户输入。
  • 这是CMS中的页面,页面的URL几乎可以是任何内容,并且可以在输入RSS URL后进行更改。
  • 在这种情况下,用户输入了导致重定向回页面的远程服务器的URL。

几个想法:

  1. 我可以拒绝从本地主机IP的所有请求呈现之前。

  2. 在发送请求之前,我可以在通用位置跟踪哪些请求处于活动状态,如果它已经处于对同一地址的另一个请求的中间,甚至不会发送它。

  3. 也许添加一个自定义的用户代理到请求头,并拒绝请求,如果该用户代理被看到?

+0

除非我失去了一些东西,不能(不应该)这个功能更好地作为一个单独的模块(而不是一个页面)吗? (或使用RSS处理的处理程序?) – 2011-03-10 17:48:23

+0

嗯,是的。这不是一个简单的aspx页面。页面本身是由处理程序渲染的,并且有已经涉及的模块。我试图不让这个问题挂在细节上。我可能会实现“拒绝本地主机请求”作为模块。 – 2011-03-10 18:21:09

回答

0

页面是否被渲染知道这是自己的地址/ URL(应该),如果是的话不能只是检查,以确保它的地址不匹配的RSS呢?

+0

它确实有帮助。但在这种特殊情况下,输入的URL会发送到远程服务器,该远程服务器会发送重定向,随后将加载RSS的框架函数自动执行该重定向。 – 2011-03-11 16:55:20