限制URL的复制和粘贴以打开页面

时间:2012-11-21 17:51:19

标签: c# javascript asp.net c#-4.0 session

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

<sessionState mode=”InProc” cookieless=”UseUri”></sessionState>

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

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

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

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

3 个答案:

答案 0 :(得分:0)

你可以使用这样的代码来禁用你的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>

答案 1 :(得分:0)

如果您想确保用户不直接访问某个页面,您可以查看http标头中的referer [sic]并确保已设置并且用户在您的网站中导航以进入这页纸。如果引用设置为谷歌或未设置,则用户直接转到URL。

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

答案 2 :(得分:0)

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

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