-1

比如说,一个人的链接通过电子邮件发送给用户。如果该人已经在他/她的浏览器中登录到该网页,则单击该链接会将他/她带到该页面。但是,如果他/她没有登录,则应要求他/她登录才能访问该页面。有没有办法使用jquery、javascript来实现上述功能?

4

2 回答 2

1

是的。使用 AJAX 和任何您的服务器端语言构建后端身份验证系统。

从那里,开发一种超媒体风格的内容系统,以及一个模块化的、基于“小部件”的应用程序交付模型。

在您对登录的超媒体响应中(加上传递从电子邮件中获得的任何相关路径信息),要么将页面重定向到新页面(基于来自服务器的链接响应),要么下载从服务器请求的小部件(对于您在其中显示媒体的任何应用程序),然后流式传输 AJAX 内容(同样,来自服务器响应指定的 URL)。

就通过身份验证实时向客户端交付内容而言,这与您将要达到的安全性差不多。

如果您要加载报告/图库/游戏/任何内容,并在其上放置一个 div,并要求用户登录,那么聪明的用户可以直接杀死该 div。

如果您包含内容,或包含应用程序组件(JS 文件),甚至包含指向将请求和显示内容的 JS 文件的链接,那么聪明的人将在 20 秒内再次将其分解。

我能看到的唯一方法是有一个共同的请求点,触摸服务器,并有条件地加载您的应用程序,基于“下一步”URL,传递给客户端,基于成功的授权和/或成功完成上一步,加上对每个请求的某种形式的身份验证(基于 REST 的令牌+随机数,或其他)......

这将保留客户端的内容(以及任何可能存在漏洞的应用程序结构),直到您可以保证客户端已被正确授权,并且整个应用程序在多个封闭/沙盒模块中运行,没有直接访问权限彼此,并且仅基于实例访问共享库。

值得这份工作吗?谁知道。

我们是在谈论一个必须在 JavaScript 中运行的 NORAD 核发射 iPhone 应用程序吗?那么不,在接下来的六个月里设计这整件事并不过分。

再一次,一旦一个人离开自己的登录状态并将他们的手机放在桌子上(那么生物特征身份验证也是如此?),所有这些安全性都会失效。

我们是否在谈论您想要阻止人们登录的画廊或折扣优惠,所以您知道只有受邀的人在使用它们?
好吧,那么一个为期 18 个月的项目来设计、开发、调试和部署这样的系统可能会有点矫枉过正。

在这种情况下,也许您可​​以尽最大努力防止普通人窃取您的内容或使用您的降价,并接受那些花时间挖掘和逆向工程的人会找到一种方法得到他们想要的,100 次中有 95 次。

在这种情况下,也许只是在页面顶部放置一个登录 div 就是您要寻找的...

如果您正在处理公司后端、公司财务或最终用户、私人数据或任何类似的事情,那么除了满足收集/显示/存储的法律要求之外,还有多少额外的工作你投入系统的安全性取决于你的公司愿意为此付出多少。

如果它让你感觉更好,有些公司每年支付 60,000-150,000 美元来使用 Adob​​e 的 JS 跟踪/测试程序。这些程序大部分时间都在网页上,任何人都可以看到,只要你知道在哪里看。

所以这并不是一个未知的问题。

于 2013-04-24T01:14:23.637 回答
0

是的。通过身份验证(登录),您可以存储一个“loggedIn”cookie,您必须在会话结束时(注销或关闭浏览器)将其删除。您可以使用该 cookie 来检查是否有人登录。如果未登录,则可以显示登录页面并使用 ajax 发送登录请求。顺便说一句,使用这样的混合应用程序不是一个好习惯。最好将 SPA-s 与 REST 服务一起使用,或者在服务器端实现它。

于 2013-09-08T01:59:37.573 回答