网络安全——XSS之被我们忽视的Cookie

简介: Cookie在我们身边一直被大家所使用着,但却一直被忽视,那我们今天就一起来看看到底什么是Cookie,和我们的网络安全又有什么联系呢


1.1  XSS 跨站脚本攻击介绍

跨站脚本攻击英文全称为(Cross site Script)缩写为 CSS,但是为了和层叠样式表(Cascading Style Sheet)CSS 区分开来,所以在安全领域跨站脚本攻击叫做 XSS(官方解释)

 

XSS 攻击简介

XSS 攻击通常指黑客通过往 Web 页面中插入恶意 Script 代码,当用户访问网页时恶意代码在用户的浏览器中被执行,从而劫持用户浏览器窃取用户信息。

 

 

1.2  XSS 跨站脚本攻击分类

XSS 脚本分为下面三类

 

第一种类型:反射型 XSS

反射型 XSS 又称之为非持久型 XSS,黑客需要通过诱使用户点击包含 XSS 攻击代码的恶意链接,然后用户浏览器执行恶意代码触发 XSS 漏洞。

 

第二种类型:存储型 XSS

存储型 XSS 会把用户输入的数据存储在服务器端,这种 XSS 可以持久化,而且更加稳定。

比如黑客写了一篇包含 XSS 恶意代码的博客文章,那么访问该博客的所有用户他们的浏览器中都会执行黑客构造的 XSS 恶意代码,通常这种攻击代码会以文本或数据库的方式保存在服务器端,所以称之为存储型 XSS。


第三种类型:DOM 型 XSS(不常用)

DOM 概述:HTML DOM 定义了访问和操作 HTML 文档的标准方法。

DOM 将 HTML 文档表达为树结构。


DOM 型 XSS 并不根据数据是否保存在服务器端来进行划分,从效果来看它属于反射性 XSS,但是因为形成原因比较特殊所以被单独作为一个分类,通过修改 DOM 节点形成的 XSS 攻击被称之为 DOM 型 XSS。



1.3  Cookie 概述

(1、Cookie 概述:

Cookie 是一些数据,存储于你电脑上的文本文件中。

当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。

Cookie的作用就是用于解决“如何记录客户端的用户信息":

(1)、当用户访问web页面时,他的名字可以记录在cookie 中。

(2)、在用户下一-次访问该页面时,可以在cookie 中读取用户访问记录里

 

Cookie以键值对形式存储,如下所示:

username= Jack20

当浏览器从服务器.上请求web页面时,属 于该页面的cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

 

(2、使用JavaScript 创建Cookie

JavaScript可以使用document.cookie属性来创建、读取、及删除cookie。

例1: JavaScript中,创建cookie 如下所示:

document.cookie= "username=Jack20";

 

例2:你还可以为cookie 添加一个过期时间(以UTC或GMT时间)默认情况下,cookie 在浏览器关闭时删除:

document.cookie= "username=Jack20; expires=Wed, 26 July 2028 12:00:00 GMT";

(3、使用JavaScript读取Cookie

在JavaScript中,可以使用以下代码来读取cookie: 4

var x = document.cookie;

注: document.cookie将以字符串的方式返回所有的cookie,类型格式: cookie1 =value;cookie2 =value; cookie3= value;

 

(4、使用JavaScript 修改Cookie

在JavaScript 中,修改cookie类似于创建cookie, 如下所示:

document.cookie= "username= Jack; expires=Wed, 26 July 2028 12:00:00 GMT;path=/";

旧的cookie 将被覆盖。

 

(5、Cookie字符串

document.cookie属性看起来像一个普通的文本字符串,其实它不是。

 

(6、JavaScript Cookie 实例

实验描述:在以下实例中,我们将创建 cookie 来存储访问者名称。

首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。访问者下一次访问页面时,他会看到一个欢迎的消息。

 

在 kali 打开终端(这里在虚拟机里装了Kali2020.2),先启动 apache 服务,然后新建 一个html 页面

写入如下代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>js_cookie 实例</title>
</head>
<head>
    <script>
        function setCookie(cname, cvalue, exdays) {
            var d = new Date();
            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
            var expires = "expires=" + d.toGMTString();
            document.cookie = cname + "=" + cvalue + "; " + expires;
        }
        function getCookie(cname) {
            var name = cname + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i].trim();
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        }
        function checkCookie() {
            var user = getCookie("username");
            if (user != "") {
                alert("欢迎 " + user + " 再次访问");
            } else {
                user = prompt("请输入你的名字:", "");
                if (user != "" && user != null) {
                    setCookie("username", user, 30);
                }
            }
        }
    </script>
</head>
<body onload="checkCookie()"></body>
</html>


在本地浏览器测试一下:

2.png


第一次访问,服务器里没有任何Cookie数据,提示输入名字,输入Jack20,然后点击确定,然后再次刷新页面


3.png

刷新后,自动登录并提示 欢迎 Jack20 再次访问。这是服务器里多了一条Cookie数据

 

原理分析:第一次访问的时候,检查 cookie 中是否有存储用户名,如果没有提示输入名字,如果有提示“欢迎 xxxx 再次访问”,如果 cookie 中没有存储用户名,输入名字点击确定后,名字将会被存储在 cookie 中,再次刷新页面的时候,将会从 cookie 中读取到名字,并在页面中弹出提示框显示“欢迎 xxxx 再次访问”。


(7、Cookie的安全问题

  • 1.Cookie欺骗
  • 2.Flash的代码隐患


所以,平时我们去访问一些来路不明的网站,在填写信息时一定要看清楚,防止重要信息泄露


以上内容仅供学习研究使用,请勿用于非法用途

目录
相关文章
|
7月前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
130 0
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
91 3
|
3月前
|
存储 前端开发 JavaScript
浅谈Web前端安全策略xss和csrf,及又该如何预防?
该文章详细讨论了Web前端安全中的XSS(跨站脚本攻击)和CSRF(跨站请求伪造)攻击原理及其防范措施,帮助读者了解如何保护Web应用程序免受这两种常见安全威胁的影响。
浅谈Web前端安全策略xss和csrf,及又该如何预防?
|
7月前
|
存储 监控 安全
应对跨站脚本攻击(XSS)和社会工程学攻击
应对跨站脚本攻击(XSS)和社会工程学攻击
|
存储 JavaScript 前端开发
网络安全——XSS之被我们忽视的Cookie
Cookie在我们身边一直被大家所使用着,但却一直被忽视,那我们今天就一起来看看到底什么是Cookie,和我们的网络安全又有什么联系呢
4267 10
网络安全——XSS之被我们忽视的Cookie
|
SQL XML 开发框架
关于网站防范XSS攻击的几点思考
关于网站防范XSS攻击的几点思考
152 1
|
Web App开发 安全 前端开发
网站安全公司之XSS跨站前端防御措施
相信大家对前端漏洞的成因和攻击方式都有一定的了解。只有熟悉了“进攻”,才能对防守有更深的理解。毕竟防守永远比进攻难。接下来,我们将进入详细研究。防御前端攻击主要有三个角度。
139 0
网站安全公司之XSS跨站前端防御措施
|
Web App开发 存储 安全
Web安全系列(一):XSS 攻击基础及原理
跨站脚本攻击(XSS)是客户端脚本安全的头号大敌。本文章深入探讨 XSS 攻击原理,下一章(XSS 攻击进阶)将深入讨论 XSS 进阶攻击方式。 本系列将持续更新。 XSS 简介 XSS(Cross Site Script),全称跨站脚本攻击,为了与 CSS(Cascading Style Sheet) 有所区别,所以在安全领域称为 XSS。
3506 0
|
SQL JavaScript 安全
详解程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,在项目研发过程中才能防患于未然,下面列举一些常见的安全漏洞和对应的防御措施。
3014 0
|
JavaScript 前端开发
xss前端预防措施
用户在输入框中输入个js标签 或者在 src 上传图片,路径干个 alert 干扰程序,评论的时候,也干一下 1.输入过滤 对于用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望合适的内容提交,阻止或者忽略除此之外的其他任何数据。
1246 0