2013-04-24 130 views
-1

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

+5

如果你想要任何级别的实际安全性,你需要从服务器端进行控制。你的登录状态如何持续存在? – 2013-04-24 00:27:23

+0

假设授权是在服务器级别处理的,您可以使用类似jQuery-UI的模式对话框并提示输入密码(服务器在用户未登录时呈现代码),或者将其重定向到具有“returnUrl”参数的登录页面。 – 2013-04-24 00:29:18

+0

你目前如何管理会话?如果你正在使用cookies,你可能想要使用Javascript来检查它们,如果你使用$ _SESSION参数或使用PHP的任何方法,除了使用PHP来检查用户当前是否登录以外别无选择。 – RelevantUsername 2013-04-24 00:30:34

回答

1

是的。构建一个后端认证系统,使用AJAX以及您的服务器端语言。从那里开发超媒体风格的内容系统和基于模块化“小部件”的应用交付模型。

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

这就像您将要通过身份验证实时交付客户端的安全一样。

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

如果您包含内容或包含应用程序组件(JS文件),甚至包含指向要求并显示内容的JS文件的链接,那么聪明人会再次在20秒内反汇编,平坦。

我能看到做到这一点的唯一方法是有一个共同的请求点,以触摸服务器,并根据成功传递给客户端的“下一步”URL,有条件地加载应用程序授权和/或成功完成前一步骤的任何操作,并且对每个请求(基于REST的令牌+随机数或其他)执行某种形式的认证...

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

这是值得的工作? 谁知道。

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

再一次,只要有一个人离开自己登录,并且将他们的手机留在了桌子上,所有这些安全性都会发生(生物识别身份验证,然后呢?)。

我们是在讨论一个您希望阻止人们登录的图库或折扣优惠吗?那么您知道只有受邀的人正在使用它们吗?
那么,一个为期18个月的项目就是设计,开发,调试和部署这样的系统,这可能会过度。

在这种情况下,也许您可​​以尽力防止普通人盗用您的内容或使用您的降价,并且接受那些花时间挖掘和逆向工程的人将要找到一种方式来获得他们想要的东西,95次中有100

在这种情况下,也许只是把一个登录格设置上层建筑的页面就是你打算怎么找...

如果您正在与公司后端或公司财务部门或最终用户,私人数据或任何其他类型进行交易,那么除了满足收集/显示/存储的法律要求外,还需要多少额外的工作你投入安全系统的性能取决于贵公司愿意为此付出多少。

如果它让你感觉好一点,那么有一些公司在那里每年支付60,000-15,000美元来使用Adobe的JS跟踪/测试程序。那些程序就坐在那里,大部分时间在任何人看到的网页上,只要你知道去哪里看。

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

0

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