2009-02-22 80 views
0

如果我有一个小型的微型站点并且在第一页上我想确保用户不能跳转到(例如2或3)之间的非安全页面,将是实现这一目标的最佳方式?只有用户在下拉框中设置某个项目才能看到下一页。使用Cookie来防止访问站点中的某些非安全页面

我首先想到的是cookies。如果用户转到第二页并且Cookie的值为空,则会重定向到失败页面。如果用户选择正确的值,则Cookie的值被设置为成功。如果我将第二页上的链接发送给另一台PC上的朋友,该方法是否可行?

有没有更好的方法?

+0

我不明白 - 你希望你的用户看到第一页,并在看到第二页之前设置一些东西,对吗?但是,如果链接发送给朋友,您希望朋友立即看到第二页还是收到错误页面? – 2009-02-22 23:55:37

回答

0

廉价,downa和脏? Cookie或会话值有效。长期来看也不可靠。

如果您使得用户在选择下拉菜单后只能看到某些信息,则可以将其隐藏在面板中,并且只有在选择下拉菜单时才显示该面板。如果你不介意用户不得不每次从下拉菜单中选择,这是最有用的。如果您希望用户能够在不选择下拉列表的情况下查看数据,也可以将其与c​​ookie一起使用。

隐藏在同一页面(在一个面板中下拉,另一个面板中的信息),您可以永久隐藏它。

如果这必须是第二页,您也可以将页面放在另一个目录中,然后在其中放置一个需要登录的web.config文件。然后您可以通过以下方式使它成为“登录”: “登录”每个回答的人。你最终使用Membership位,但他们没有连接任何东西。

+0

更糟的是,不是吗?除非隐藏你的意思是使控件的Visible属性为false。如果你只是通过CSS隐藏,用户只需要查看源代码,看看他们不应该看到什么。 – 2009-02-23 01:04:15

0

由于某个特定原因,Cookie不是一个好主意。他们在用户的控制下,而不是你。

如果用户已禁用饼干(全局或只为您的网站),他们将不能够得到第2页,现在不管他们有多少次读第1

此外,如果他们知道你的cookie包含了什么(即它没有加密),他们可以很容易地自己创建它,或者将该方法转发给朋友让他们创建它。

关于您是否可以将第2页链接发送给其他人的问题,Cookie属于计算机。这意味着“其他人”几乎肯定不会有正确的cookie来正确查看第2页:他们会得到一个错误。

我们实施了一个类似的计划(很多年前,所以现在可能有更好的方法)。它涉及在将第1页发送到IP地址时存储特殊的“一次性”密钥。该页面1中的链接已被修改,以包含此密钥作为参数,因此,当您请求第2页时,密钥也已发送通过。

钥匙有30分钟的使用寿命(可配置,但我们在30分钟结束)。为了让我们提供第2页,请求必须来自相同的IP地址并且具有正确的密钥。

这阻止了链接转发到其他地方,并确保链接的生命周期有限。

无论对您而言,这是否可行的解决方案都只是一个您可以回答的问题。我知道我们收到了购买第1页的人的一些投诉,然后出去喝咖啡。当他们回来时,他们尝试访问第2页是不成功的。我们通过简单地将它们重定向到第1页来解决这个问题,并带有一个合适的错误消息,表明它们的密钥已超时。

不完美,但是,由于用户被教育为什么发生这种情况,他们明白其必要性。

0

如果我正确理解你的问题,那么你发送给你的朋友的链接将不起作用,因为他们不会将cookie存储在他们的浏览器内存或他们的机器上。如果您将值存储在Session中,这也将是真实的,因为他们将在打开链接时创建自己的新会话。

为了在共享链接时获得这种行为,您需要传递查询字符串中的值,即当您在页面1上选择所需的选项并将窗体分隔开时,回发将采用选定选项,然后重定向到第2页选项作为查询字符串值附加到url。