本文是关于存储和检索cookie 的。也欢迎初学者看看。
首先,由于我们讨论的是存储和检索cookie,因此我们需要澄清cookie 是什么。
简而言之,cookie 是一些网站存储在您本地设备上的数据,用于识别您的身份并执行会话跟踪。也称为浏览器缓存。
Cookie 主要是服务器或脚本在HTTP 协议下维护客户端工作站上的信息的一种方式。
这可能就是你所说的cookies的意思。现在您了解了cookie 是什么,让我们进入今天的主题:捕获和存储cookie。
Cookie 经常用于登录,但是如何将您的用户名和密码保存在cookie 中?现在让我们详细了解如何检索cookie 中的数据。
1.使用jQuery.cookie.js存储数据。
如果打开的页面有“记住密码”单选按钮,请确定检查是否正确。如果是,则获取用户名和密码值。 $.cookie(id, id对应存储的值, {expires:存储期限})
if($(‘#rememberme’).prop(‘已检查’)==true) {
var userName=$(‘#user’).val();
var passWord=$(‘#psw’).val();
$.cookie(‘rememberme’, ‘true’, {expires: 7}); //保存有效期为7 天的cookie。
$.cookie(‘user’, userName, {expires: 7}); $.cookie(‘psw’, passWord, {expires: 7});
如果未选中“记住密码”,请将保留期限设置为-1。如果您以这种方式提交,数据将存储在cookie 中。
您可以通过打开控制台并选择ApplicationStorageCookie 来查看它。
2. 如何检索cookie中的数据?
方法:$.cookie(名称)
示例:$.cookie(‘rememberme’)、$.cookie(‘user’)、$.cookie(‘password’)
如果cookie设置期限尚未到期,则必须首先在页面上显示cookie数据。如果cookie的rememberme为true,则将cookie的值分配给相应的文本框。选择“记住密码”单选按钮。
if($.cookie(‘rememberme’)===’true’){
$(‘#user’).val($.cookie(‘user’));
$(‘#psw’).val($.cookie(‘psw’)); 4 $(‘#rememberme’).prop(‘已检查’,true);
}
这就是我们今天讨论的cookie的获取和存储。
尽管Cookie 的危险性低于病毒,但它们确实包含敏感信息,例如您的用户名、计算机名称、使用的浏览器和访问的网站。用户不希望此内容被泄露,尤其是包含个人信息的内容。
其实,这并不奇怪。一种称为跨站点脚本的攻击可以实现此目标。跨站脚本攻击通常涉及利用网站中的漏洞将脚本代码嵌入到网站页面中,或者当网站页面引用第三方脚本代码时可能会遭受跨站脚本攻击。它检索当前站点的所有cookie 内容(目前没有cookie 范围限制),然后以某种方式将cookie 内容发送到指定服务器(例如AJAX)。一旦cookie落入攻击者手中,它就会恢复其价值。
当向客户端cookie 输出敏感内容时,鼓励开发人员:
1)使cookie不被脚本读取在一定程度上解决了上述问题。
2)对cookie的内容进行加密,并在加密前嵌入时间戳,保证每次加密后的密文都不同(防止消息重播)。
3) 根据客户的请求,每次或定期更新cookie 的内容(即根据第2 条重新加密)。
4)每次向cookie写入时间戳时,数据库必须记录最后的时间戳(以防止cookie篡改和重放攻击)。
5) 当客户端发送cookie时,它首先解密它,然后验证时间戳。如果时间戳小于数据数据库中的记录,则表明发生了攻击。
根据上述建议,即使cookie被盗,攻击者也无法利用它,因为cookie是随机更新的,并且其内容是不规则的。使用时间戳的另一个好处是它们可以防止cookie 被篡改或重播。
Cookie 盗窃:黑客收集用户的cookie 并将其发送给攻击者。攻击者使用cookie 信息来获取对用户帐户的合法访问权限。
Cookie 篡改:攻击者利用安全机制,添加重写Cookie 内容的代码,以继续攻击。
这次我们不再谈论cookie的危险了。
贡献者:暗盾安全、尚宇
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/81662.html