2

为了停止会话共享,我使用了代码

<sessionState mode=”InProc” cookieless=”UseUri”&gt;</sessionState>

这工作正常,虽然我的 URL 很尴尬,但没关系。我面临的问题是:如果用户已经登录到应用程序,并且如果用户直接在 Web 浏览器中复制并粘贴 URL 以打开页面,那么用户可以打开页面,因为用户已经有一个活动会话。

但要求是限制 URL 的复制和粘贴以打开页面。在这种情况下,我们必须做什么?

我没有 .cs 页面,因为这是一个旧应用程序,我们有 .aspx 页面,带有 javascript/VB 脚本。

<sessionState mode="InProc" cookieless="UseUri">在登录应用程序时遇到的另一个问题,如果用户直接复制 url 并将 URL 粘贴到 Web 浏览器中以在关闭第一个(我们复制 url 的位置)后打开页面,用户仍然可以在不登录的情况下打开页面。示例:http://XXX/YYY/(S(fxiejp3mcnnt3wwob3ytkmbf))/Home/FrameSet.aspx 如果我在关闭打开的窗口(我复制此 uRL 的位置)后粘贴上面的 URL 用户能够打开应用程序。这似乎是错误。请 建议 请建议

4

3 回答 3

1

您可以使用这样的代码在您的 Html 标记中禁用复制粘贴吗?

<html>
<head>
</head>
<body oncopy="return false;" onpaste="return false;" oncut="return false;">
    <form id="form1" runat="server">
        <div>
           Try to copy this and paste in your editor
        </div>
    </form>
</body>
</html>
于 2012-11-21T17:58:57.080 回答
1

如果您想确保用户不会直接访问某个页面,您可以查看 http 标头中的引用者 [原文如此],并确保它已设置并且用户通过您的网站导航到该页面。如果referer设置为google,或者未设置,则用户直接访问该URL。

从安全的角度来看,您应该依赖 cookie 中的某些标识符来存储会话信息,并且 cookie 不应包含任何私人或机密信息。如果 cookie 中的会话 ID 与服务器的会话 ID 不匹配,则该页面应被拒绝。(有关会话的一些好的提示,请参阅http://www.truste.com/blog/2011/12/02/best-practices-for-using-cookies/ )

于 2012-11-21T18:07:44.960 回答
0

为什么不将 IP 地址与登录会话相关联,以便其他用户无法剪切和粘贴 URL。

(请注意,如果两个用户都在同一个 NAT 路由器后面,这将不起作用,如果用户使用更改 IP 地址的移动设备,则可能会出现问题。)

于 2012-11-21T18:10:23.047 回答