比如说,通过电子邮件向用户发送指向某个人的链接。如果此人已经在他/她的浏览器中登录了该网页,则单击该链接会将他/她带到该页面。但是,如果他/她未登录,则应要求他/她登录以访问该页面。有没有办法使用jquery,javascript实现上述功能?
答案 0 :(得分:1)
是。使用AJAX和任何服务器端语言构建后端身份验证系统。
从那里开发出一种超媒体风格的内容系统,以及一种基于“小部件”的模块化应用交付模式。
在您的超媒体对登录的响应中(加上传递从电子邮件获得的任何相关路径信息),将页面重定向到新页面(基于来自服务器的链接响应),或者下载请求的小部件服务器(用于显示媒体的任何应用程序),然后在AJAX内容中流式传输(再次,从服务器响应指示的URL)。
在通过身份验证向客户端实时交付内容方面,这与您获得安全性的关系非常接近。
如果您要加载报告/图库/游戏/任何内容,并在其上放置一个div,并要求用户登录,那么智能用户就可以杀死div。
如果您包含内容,或包含应用程序组件(JS文件),甚至包括将请求和显示内容的JS文件的链接,那么聪明的人将再次在20秒内反汇编,平坦的。
我能看到这样做的唯一方法是根据成功的授权,根据传递给客户端的“后续步骤”URL,有一个共同的请求点,触摸服务器,并有条件地加载您的应用程序和/或成功完成上一步所做的任何事情,并在每个请求上对某些表单进行身份验证(基于REST的令牌+随机数,或其他)...
这将保留客户端的内容(以及可能存在漏洞的任何应用程序结构),直到您可以保证客户端已获得正确授权,并且整个应用程序在多个封闭/沙盒模块内运行,没有直接访问彼此,只有基于实例的访问共享库。
值得的工作吗? 谁知道呢。
我们是否在讨论NORAD核启动iPhone应用程序,它必须在JavaScript中运行? 然后不,在接下来的六个月里对整个工程进行设计并不是一件容易的事。
而且,一旦一个人离开自己登录,所有这些安全性都会失效,并将他们的手机放在桌面上(生物识别身份验证,然后呢?)。
我们是在谈论您希望阻止人们登录的图库或折扣优惠,所以您知道只有受邀人员才会使用它们吗? 那么,一个为期18个月的项目来设计,开发,调试和部署这样的系统可能会有点过头了。
在这种情况下,也许您可以尽力阻止普通人窃取您的内容或使用您的降价,并接受那些花时间挖掘和逆向工程的人会发现一种获得他们想要的东西的方法,100次中有95次。
在这种情况下,或许只是将登录div置于页面上方,您将要寻找...
如果您正在处理公司后端,公司财务或最终用户,私人数据或任何此类事件,那么除了满足收集/显示/存储的法律要求外,您在系统安全性方面投入的大量额外工作取决于您的公司愿意为此付出多少钱。
如果它让你感觉更好,有些公司每年需要支付60,000到15万美元才能使用Adobe的JS跟踪/测试程序。只要你知道在哪里看,这些节目就坐在网页上,大部分时间都是供任何人看的。
所以这不是一个未知的问题。
答案 1 :(得分:0)
是的。通过身份验证(登录),您可以存储“loggedIn”cookie,您必须在会话结束时删除(注销或关闭浏览器)。您可以使用该cookie来检查是否有人登录。如果未登录,则可以显示登录页面并使用ajax发送登录请求。顺便说一句,使用这样的混合应用程序并不是一个好习惯。最好将SPA-s与REST服务一起使用,或者在服务器端实现它。