我已经阅读了几天关于CSRF和XSS漏洞的文章,并试图想出一种解决方案: 1)易于实现和使用;2)使用Javascript进行大量繁重的工作;3)几乎不可能执行CSRF攻击。
我还没见过像我将要描述的那样的解决方案。我希望这并不意味着它是漏的。
根据我对AJAX和JS的知识,我提出了以下解决方案。此代码假定用户已通过登录屏幕,并且在cookie中的服务器和上设置了一个会话变量,其值相同。
更容易的是粘贴代码并将其记录下来,而不是解释它在做什么。此代码将在用户登录后立即看到的页面中运行:
<script>
// this is the constructor:
function Co
我正在用角js和ASP.NET Web 2后端创建一个应用程序。我想弄清楚如何做认证部分。我计划使用无记名令牌而不是cookie,因为它似乎是一种更现代的方法。我将有一个用户登录表单,在那里他们可以输入他们的密码和用户名。我是否应该将用户名和密码传递给我的Web,让它返回一个承载令牌,然后将其存储在localStorage中?如何在每个后续请求中传递该令牌,以便访问受保护的资源?这种身份验证是否需要特殊的角度模块?
我想存储一些用户信息(散列)在cookie中,以记住登录自动登录。为了使其相对安全,我会使用HTTP_USER_AGENT添加用户浏览器信息,如下所示:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3我不会添加用户IP,因为动态IP每次都会改变。是否有其他用户特定的信息,我可以存储在散列cookie中,以使其有点安全,以防止cookie被盗等?谢谢。
会话是通过session_start()启动的,我知道这一点,但是为了使会话持久,它们需要一个ID。
现在,php.ini文件有一个设置:
session.use_cookies = 1
这样我就不用到处传递ID了。但是还有另一种设置:
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0
我是不是可以理解,如果我实现了这一点,去我的网站,登录,做我想做的事情,关闭浏览器,过一段时间再启动它,当我回到我的网站时,我就不会再登录了吗?
编辑:因此,为了保持