简介:这是我大三下准备实习面试的一家北京的信息安全公司,本次面试为线上面试,技术和HR一起参与面试。
已拿offer
1、对称加密和非对称加密的区别
对称加密的特性
1.单钥密码系统
对称加密采用单钥密码系统,即加密和解密使用相同的密钥。这意味着信息的发送方和接收方必须共享一个密钥,以便进行安全的通信。
2.高速加密解密
对称加密算法通常具有较高的加密和解密速度,适用于需要加密大量数据的场合。这是因为对称加密算法的运算相对简单,能够快速地对数据进行加解密处理。
3.密钥管理
虽然对称加密在速度上有优势,但其安全性在很大程度上取决于密钥管理的安全性。由于加密和解密使用同一个密钥,如何安全地将密钥传递给解密者成为了一个关键问题。如果密钥在传输过程中被截获,那么加密的信息就有可能被破解。
加密算法多种多样
对称加密有des,aes,3des
加密次数为16次
非对称加密特性
1.密钥匹配
rsa
非对称加密体系使用一对密钥,即公钥和私钥。公钥是公开的,可以自由分发给其他人;而私钥是保密的,只有私钥的持有者知道。
2.加密与解密分离
公钥用于加密信息,而私钥用于解密信息。这意味着,任何人都可以使用公钥对信息进行加密,但只有私钥的持有者才能解密该信息。这种特性确保了加密和解密过程的分离和安全性。
3.数字签名
非对称加密体系还可以用于创建数字签名。私钥用于签名信息,而公钥用于验证签名。这确保了信息的来源真实性和完整性,因为只有私钥的持有者才能生成有效的签名。
4.安全性
非对称加密体系的安全性基于数学上的复杂性。即使公钥被泄露,也无法直接推导出私钥,因此无法对加密的信息进行解密或伪造有效的签名。这种特性使得非对称加密体系在保护网络通信、数字签名和密钥交换等方面具有广泛的应用。
非对称加密 RSA、ElGamal、Rabin
对称加密 DES、3DES、AES
散列算法 MD5 SHA base64
2、在linux中如何查看进程
在Linux中,有多种命令可以用来查看进程。以下是一些常用的命令及其用法:
- ps命令:
-
- 查看所有进程:ps -e 或 ps -ef(以全格式显示)
- 查看特定用户的进程:ps -u 用户名
- 查看特定进程ID的进程:ps -p 进程ID
- 以树状图显示进程:ps -e --forest 或 pstree(需要安装pstree包)
- top命令:
top 是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较消耗系统资源,基本上就是实时显示的进程。
-
- 直接输入 top 即可查看
- 在 top 界面中,可以通过按键来选择排序方式、过滤进程等
- htop命令:
htop 是一个 Linux 系统中的交互式进程查看器,一个文本模式的应用程序(在控制台或者 X 终端中),需要 ncurses。它是 Linux 系统下的一个监控和进程管理工具,类似于 Windows 的任务管理器。
-
- 如果未安装,可以通过包管理器安装,例如:sudo apt install htop(Debian/Ubuntu)或 sudo yum install htop(CentOS)
- 直接输入 htop 即可查看,界面更加友好,支持鼠标操作
- pgrep命令:
pgrep 命令以名称为依据从运行中的进程当中查找符合指定条件的进程,并显示该进程的进程ID。
-
- 查找特定名称的进程:pgrep 进程名
- pidof命令:
pidof 命令用于查找指定名称的进程的进程ID。查找与指定名称完全匹配的进程名对应的进程ID。
- 查找特定名称的进程ID:pidof 进程名
3、网工NAT的种类
网络中的NAT(Network Address Translation,网络地址转换)技术主要用于在私有网络中使用私有IP地址,而在连接互联网时转换为全局IP地址。NAT有多种类型,以下是主要类型的详细介绍:
- 静态NAT(Static NAT)
-
- 定义:静态NAT将内部网络的私有IP地址一对一地映射到公共网络的某个合法IP地址上。
- 特点:内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。
- 应用场景:一般用于在内网中对外提供服务的服务器。
- 动态NAT(Dynamic NAT 或 Pooled NAT)
-
- 定义:动态NAT在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。
- 特点:它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。
- 工作原理:当远程用户联接上之后,动态NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
- 网络地址端口转换(NAPT 或 Port Address Translation, PAT)
-
- 定义:NAPT把内部地址映射到外部网络的一个IP地址的不同端口上。
- 特点:内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。
- 额外功能:隐藏网络内部的所有主机,有效避免来自internet的攻击。
- 应用场景:由于NAPT的灵活性和节约IP地址的特性,它成为了网络中应用最多的一种NAT方式。
4、虚拟机中的nat模式,桥接模式,仅主机模式的区别
一、NAT模式(Network Address Translation)
1. 工作原理
NAT模式允许虚拟机在私有网络环境中访问外部网络,同时隐藏虚拟机的真实IP地址。当虚拟机尝试访问外部网络时,NAT设备(在VMware中通常是vmnet8虚拟交换机)会捕获这些请求,并将虚拟机的内部IP地址替换为宿主机的外部IP地址。此外,NAT还涉及端口映射,根据预定义的规则将外部网络的请求转发到正确的虚拟机上。
2. 特点
- 网络隔离:虚拟机在私有网络环境中运行,与物理网络隔离,有助于保护虚拟机免受外部网络攻击。
- 保护虚拟机隐私:隐藏虚拟机的真实IP地址,保护其隐私和安全性。
- 易于配置和管理:VMware会自动处理IP地址分配和端口映射,用户无需手动配置虚拟机的网络设置。
- 适用于多虚拟机环境:允许在同一宿主机上运行多个虚拟机,并使用不同的内部IP地址,而不会与物理网络上的其他设备发生冲突。
3. 配置
NAT模式是VMware创建虚拟机的默认网络连接模式。在NAT模式下,虚拟机共享主机的外网IP地址,并通过虚拟的NAT服务器和DHCP服务器获取IP地址。
二、桥接模式(Bridged)
1. 工作原理
桥接模式将主机的物理网卡与虚拟机的虚拟网卡通过虚拟网桥进行连接,使得虚拟机能够直接访问外部网络,就像真实环境中的物理机一样。
2. 特点
- 平等地位:虚拟机与主机在网络中处于平等地位,具有相同的网络身份。
- IP地址设置:虚拟机IP地址需要与主机在同一网段,且网关、DNS等设置需保持一致。
- 手动配置:不提供DHCP服务,需手动为虚拟机配置IP地址、子网掩码等。
- 相互访问:虚拟机与主机、外部网络中的其他机器可以相互访问。
3. 配置
桥接网络模式是默认选项,用户需要手动配置虚拟机的网络参数。
三、仅主机模式(Host-Only)
1. 工作原理
仅主机模式是一种封闭的网络环境,虚拟机只能与主机进行通信,而无法访问外部网络。
2. 特点
- 封闭环境:虚拟机仅与主机相连,无法与外部网络中的其他机器通信。
- 适用场景:适用于测试虚拟机与主机间的网络通信,或者需要隔离虚拟机与外部网络的情况。
3. 配置
通过VMware的虚拟网络编辑器,可以设置虚拟机的网络模式为仅主机模式。
5、Nmap如何扫描一个端口号
扫描特定端口
- nmap -p <端口号> <目标IP地址>:扫描指定IP地址上的特定端口。例如,-p 80,443 扫描80和443端口。
扫描全部端口
- nmap -p- <目标IP地址>:扫描目标IP地址上的所有端口。
6、Linux配置ssh服务的目录
/etc/ssh/sshd_config
7、WireShark是个什么样的工具,怎么使用
WireShark 是一个开源抓包工具或者叫网络嗅探器,用于分析网络流量和分析工具包。
WireShark提供了两个过滤器:捕获过滤器和显示过滤器
抓包过滤器(Capture Filter)
- 作用:抓包过滤器是数据经过的第一层过滤器,它用于控制捕获的数据包数量,从而避免产生过大的日志文件。
- 设置时间:捕捉过滤器必须在开始捕捉前设置完毕,一旦数据包被捕获,就无法再通过此过滤器进行筛选。
- 过滤规则:遵循BPF(Berkeley Packet Filter)语法,可以设置基于IP地址、端口号、协议类型等条件的数据包捕获规则。
- 示例:
-
- 捕获单个IP地址的数据包:host 192.168.1.1
- 捕获特定端口范围的数据包:portrange 80-8080
- 捕获特定协议的数据包:tcp 或 udp
显示过滤器(Display Filter)
- 作用:显示过滤器是一种更为强大(复杂)的过滤器,它允许在已捕获的数据包中迅速准确地找到所需的记录。
- 设置时间:与抓包过滤器不同,显示过滤器可以在捕获过程中或捕获完成后进行设置和修改。
- 过滤规则:同样遵循BPF语法,但提供了更多的字段和条件供用户选择,包括协议、源/目标地址、端口号、数据包内容等。
- 示例:
-
- 显示TCP协议的数据包:tcp
- 显示来自特定IP地址的数据包:ip.src == 192.168.1.1
- 显示包含特定字符串的数据包内容:http.request.uri contains "example.com"
8、介绍一下Nmap工具和使用
一、Nmap的概述
- 定义:Nmap(Network Mapper)是一款开源的网络发现和安全审计工具,它使用原始IP数据包来确定网络上可用的主机、开放的端口、运行的服务及其版本等信息。
- 功能:
-
- 主机发现:扫描指定网络段上的活动主机。
- 端口扫描:探测目标主机上开放的端口及其服务。
- 服务探测:识别目标主机上运行的服务及其版本信息。
- 操作系统检测:通过端口扫描和协议分析,推断目标主机的操作系统类型。
- 漏洞扫描:与Nessus等工具结合,进行网络安全漏洞扫描。
- 特点:
-
- 支持多种扫描技术,如TCP SYN扫描、UDP扫描、ICMP扫描等。
- 支持自定义扫描参数,满足不同的扫描需求。
- 提供丰富的统计信息和可视化报告,便于用户分析和理解扫描结果。
- 跨平台支持,可在Windows、Linux、Mac OS等操作系统上运行。
二、Nmap的使用方法
- 安装Nmap:用户可以从Nmap官网下载适合自己操作系统的版本,并按照提示进行安装。
- 启动Nmap:在命令行中输入“nmap”命令,即可启动Nmap工具。用户可以使用“-V”参数查看Nmap的版本信息。
- 扫描目标主机:使用“nmap <目标IP地址>”命令扫描指定IP地址的主机。例如,要扫描IP地址为192.168.1.1的主机,可以输入“nmap 192.168.1.1”。
- 使用扫描参数:Nmap提供了丰富的扫描参数,用户可以根据需要选择适当的参数进行扫描。以下是一些常用的扫描参数:
-
- -p <端口号>:指定要扫描的端口号或端口范围。例如,“-p 1-65535”表示扫描所有端口。
- -sS:使用TCP SYN扫描技术,这是一种快速且隐蔽的扫描方式。
- -sU:使用UDP扫描技术,探测目标主机上的UDP端口。
- -O:启用操作系统检测功能,尝试推断目标主机的操作系统类型。
- -sV:启用服务版本探测功能,识别目标主机上运行的服务及其版本信息。
- 分析扫描结果:Nmap扫描完成后,将输出详细的扫描结果。用户可以根据结果了解目标主机的网络配置和安全状况,并采取相应的措施进行加固和优化。
9、过滤端口的命令
1. iptables
iptables是Linux内核提供的防火墙工具,用于配置IPv4数据包过滤规则。
允许端口
允许TCP协议的某个端口(例如8080)的访问:
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
阻止端口
阻止TCP协议的某个端口(例如8080)的访问:
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
解释
保存规则
注意:iptables的规则在重启后会丢失,除非你保存它们。在Debian/Ubuntu上,你可以使用iptables-persistent包来保存规则;在CentOS上,你可能需要将规则添加到启动脚本中或使用firewalld代替。
2. ufw
ufw是一个用户友好的防火墙管理工具,用于管理iptables规则。
允许端口
允许TCP协议的某个端口(例如8080)的访问:
sudo ufw allow 8080/tcp
解释
阻止端口
阻止TCP协议的某个端口(例如8080)的访问:
sudo ufw deny 8080/tcp
解释
启用/禁用ufw
启用ufw:
sudo ufw enable
解释
禁用ufw:
sudo ufw disable
3. firewalld
firewalld是CentOS 7及更高版本和Fedora的默认防火墙管理工具。
允许端口
允许TCP协议的某个端口(例如8080)的访问:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
--permanent选项表示规则是永久的,否则它们只在当前会话中有效。--reload选项用于重新加载防火墙配置,使更改生效。
阻止端口
阻止TCP协议的某个端口(例如8080)的访问:
sudo firewall-cmd --remove-port=8080/tcp --permanent
sudo firewall-cmd --reloa
4. netstat 和 lsoft
虽然netstat和lsoft不是用于设置防火墙规则的工具,但它们可以帮助你查看哪些端口正在被使用。
- netstat -tuln:列出所有正在监听的TCP和UDP端口。
- lsoft -i :端口号:查看哪个进程正在使用指定的端口。
这些命令可以帮助你诊断端口相关的问题,但在设置防火墙规则时,你仍然需要使用iptables、ufw或firewalld等工具。
10、BurpSuite的功能点
Burp Suite是一款功能强大的Web应用程序渗透测试工具,它提供了多个模块以执行不同类型的安全测试。以下是Burp Suite的主要功能点,以清晰的分点表示和归纳:
一、核心功能
- 拦截代理:
-
- Burp Suite提供了一个拦截代理,可以拦截Web应用程序的发送和接收的HTTP/HTTPS请求和响应。
- 渗透测试工程师可以通过拦截代理查看、修改和重放HTTP请求,以便发现和利用漏洞。
- 扫描器:
-
- Burp Suite包含了被动扫描器和主动扫描器。
-
-
- 被动扫描器在拦截代理中收集数据,并对其进行分析和检查,以自动识别Web应用程序中的漏洞。
- 主动扫描器则主动发送请求,并对其进行分析和检查,以检测网站中的常见漏洞,如SQL注入、XSS、CSRF等。
-
二、工具模块
- Spider(网络爬虫):
-
- Spider是一个应用智能感应的网络爬虫,能够自动遍历Web应用程序的所有页面,并将其添加到目标列表中。
- 它有助于发现隐藏的页面和功能,为渗透测试工程师提供更多的测试目标。
- Intruder(入侵者):
-
- Intruder是一个定制的高度可配置的工具,用于对Web应用程序进行自动化攻击。
- 它可以枚举标识符、收集有用的数据,并使用fuzzing技术探测常规漏洞。
- Repeater(重放器):
-
- Repeater允许用户手动操作来补发单独的HTTP请求,并分析应用程序的响应。
- 它对于测试和验证漏洞利用的效果非常有用。
- Sequencer(序列分析器):
-
- Sequencer用于分析那些不可预知的应用程序会话令牌和重要数据项的随机性。
- 这有助于评估应用程序的安全性,并发现可能的弱点。
- Decoder(解码器):
-
- Decoder是一个手动执行或对应用程序数据进行智能解码编码的工具。
- 它支持多种编码和解码格式,如URL编码、Base64编码、HTML编码等,帮助处理编码和加密数据。
- Comparer(比较器):
-
- Comparer是一个实用的工具,用于通过比较相关的请求和响应来可视化差异。
- 它可以帮助用户快速识别出两个请求或响应之间的不同之处。
三、扩展性
- Burp Suite是一个可扩展的工具,允许用户通过编写插件来扩展其功能。
- 渗透测试工程师可以编写自己的插件来满足特定的需求,从而进一步扩展Burp Suite的功能。
四、使用与配置
- Burp Suite提供了直观的界面和详细的文档,使用户能够轻松配置和使用各种工具模块。
- 用户可以根据需要配置代理设置、扫描选项和其他参数,以定制渗透测试的过程。
总之,Burp Suite是一款功能全面、易于使用的Web应用程序渗透测试工具,它提供了多种工具模块和扩展性选项,以满足不同用户的需求。
11、讲讲Icmp协议
ICMP协议,全称Internet Control Message Protocol,即互联网控制报文协议,是TCP/IP协议族中的一个子协议,主要运行在网络层。
以下是ICMP协议的主要特点、功能和工作原理:
主要特点
- ICMP协议是一个面向无连接的协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
功能
- 网络诊断:通过ICMP协议,可以使用ping命令来测试网络可达性
- 错误报告:当IP数据包在传输过程中发生错误时,路由器或主机会向源主机发送ICMP错误消息,如目标主机不可达、TTL超时等,帮助源主机了解并处理错误。
- 路由选择:ICMP协议中的ICMP Redirect消息可以帮助主机通知路由器选择更好的路径进行数据包转发。
工作原理
- ICMP消息通过IP协议进行传递。发送端将ICMP消息封装在IP数据包中,然后通过路由器等网络设备转发给目标主机。
12、Sql注入与Xss的区别
Sql注入(SQL Injection)与跨站脚本攻击(Cross-Site Scripting,简称XSS)是两种常见的网络安全漏洞,它们在攻击方式、目标对象和危害等方面存在显著区别。以下是对这两种攻击方式的详细比较:
一、Sql注入(SQL Injection)
- 定义:Sql注入是指Web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
- 攻击方式:攻击者通过构造特殊的输入作为参数传入Web应用程序,这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作。
- 攻击对象:主要针对服务器端的数据库进行攻击。
- 特点:
-
- 广泛性:任何一个基于SQL语言的数据库都可能被攻击。
- 隐蔽性:SQL注入语句一般都嵌入在普通的HTTP请求中,很难与正常语句区分开。
- 危害大:攻击者可以通过SQL注入获取到服务器的库名、表名、字段名,甚至整个服务器中的数据,对网站用户的数据安全有极大的威胁。
- 操作方便:互联网上有很多SQL注入工具,简单易学,攻击过程简单。
二、跨站脚本攻击(XSS)
- 定义:跨站脚本攻击是一种针对网站应用程序的安全漏洞攻击技术,攻击者将恶意脚本注入到Web页面中,当用户浏览该页面时,恶意脚本会被执行,从而达到攻击用户的目的。
- 攻击方式:攻击者将恶意代码注入到服务器中(如论坛、留言板、邮件等),用户在没有防备的情况下访问了被注入了恶意代码的服务器,服务器将含有恶意代码的网页响应给客户端,在客户端浏览器中触发JS恶意代码。
- 攻击对象:主要针对客户端的浏览器进行攻击。
- 特点:
-
- 基于JavaScript完成恶意的攻击行为,具有极大的想象空间。
- 攻击过程简单,不需要专业知识也能自如运用。
- 危害大:XSS常被列为是客户端web安全中的头号大敌,因为它可以窃取用户的cookie、会话令牌等敏感信息,甚至控制用户的浏览器进行恶意操作。
13、持久型xss与DOM型的区别
持久型XSS(跨站脚本攻击)与DOM型XSS的区别主要体现在以下几个方面:
- 存储位置与交互方式:
-
- 持久型XSS:攻击者将恶意的JavaScript脚本写入到正常的服务端数据库或文件系统中。这意味着一旦攻击成功,恶意代码就会被永久存储。
- DOM型XSS:攻击者通过各种手段将恶意脚本注入用户的页面中,这些脚本不牵涉到页面Web服务器的交互。
- 触发条件:
-
- 持久型XSS:只要用户正常地使用业务功能,就会被注入JavaScript脚本,无需攻击者诱导用户点击恶意的URL。这使得持久型XSS在传播速度和传播范围上远超其他类型的XSS。
- DOM型XSS:通常需要黑客诱导用户点击恶意的URL,才能够成功地在用户浏览器上执行JavaScript脚本。
- 危害程度:
-
- 持久型XSS:由于攻击代码被永久存储,因此攻击者可以长期地、持续地窃取用户的敏感信息,如登录凭证、个人资料等。这种攻击方式的危害性极大,一旦成功,可能会导致大量用户数据泄露。
- DOM型XSS:虽然也可以窃取用户的敏感信息,但由于需要用户点击恶意链接才能触发,因此其危害程度相对较低。
- 防御措施:
-
- 为了防止持久型XSS攻击,网站开发者需要对用户输入进行严格的过滤和验证,确保不会将恶意代码存储到数据库或文件系统中。同时,也需要对输出的内容进行编码和转义,防止恶意代码在浏览器中执行。
- 对于DOM型XSS攻击,开发者需要确保前端代码的安全性,避免在DOM中直接操作或插入用户输入的内容。同时,也需要对用户输入进行适当的验证和过滤,以防止恶意代码的注入。
14、如何对一个参数爆破
参数爆破通常指的是在网络安全领域,通过尝试不同的值或组合来猜测或破解某个参数(如用户名、密码、令牌等)的真实值。以下是对一个参数进行爆破的步骤和注意事项:
一、确定爆破目标
- 明确需要爆破的参数类型和位置,例如用户名、密码、API密钥等。
- 确定爆破的目标系统或服务的URL、接口等。
二、选择爆破工具
- 根据爆破目标和自身技能水平选择合适的爆破工具,如Burp Suite、ffuf、Hydra等。
- 确保工具已更新至最新版本,并熟悉其使用方法和参数设置。
三、准备字典
- 字典是爆破过程中用于尝试的值集合,可以是预先定义的常用值、自定义值或来自其他来源的值。
- 根据爆破目标的特点和已知信息,准备合适的字典。例如,如果爆破的是用户名,则字典中可能包含常见的用户名;如果爆破的是密码,则字典中可能包含常见的密码组合。
四、设置爆破参数
- 在爆破工具中设置目标URL、接口、参数名称等基本信息。
- 设置字典路径、编码方式、请求方式(如GET、POST)等参数。
- 根据需要设置其他高级参数,如线程数、超时时间等。
五、执行爆破
- 启动爆破工具,开始执行爆破操作。
- 监控爆破进度和结果,记录成功的参数值或错误信息。
六、分析爆破结果
- 分析爆破结果,确定是否成功获取了目标参数的真实值。
- 如果成功,则根据获取的参数值进行后续操作;如果失败,则根据错误信息调整爆破策略或尝试其他方法。
七、注意事项
- 爆破操作可能涉及法律风险和道德问题,请确保在合法、合规的前提下进行。
- 爆破过程中可能会对目标系统造成一定压力或影响,请确保在获得授权或允许的情况下进行。
- 爆破操作需要耗费一定的时间和计算资源,请根据实际情况合理安排。
- 在进行爆破操作时,请确保自身安全,避免泄露个人信息或敏感数据。
15、cookie与session的区别
Cookie与Session在Web开发中扮演着不同的角色,它们之间的主要区别可以从以下几个方面来阐述:
- 保存位置:
-
- Cookie:保存在客户端的浏览器中,可以是临时存储在内存中,也可以是持久化地保存在客户端的硬盘上。
- Session:保存在服务器端,每个Session都有一个唯一的SessionID,用于标识和跟踪用户的会话状态。
- 存储大小:
-
- Cookie:由于存储在客户端,其大小受到浏览器和HTTP协议的限制,通常单个Cookie的大小限制在4KB左右。
- Session:存储在服务器端,没有严格的存储大小限制,但会受到服务器内存和存储资源的限制。
- 安全性:
-
- Cookie:由于保存在客户端,容易被用户或恶意软件查看和修改,因此安全性相对较低。为了增加安全性,可以使用HTTPS协议和Secure属性对Cookie进行加密传输和存储。
- Session:存储在服务器端,相对更安全。但如果Session ID被泄露,攻击者仍然可以伪造会话,因此也需要采取适当的安全措施来保护Session ID。
- 有效期:
-
- Cookie:可以设置有效期,在有效期内即使关闭浏览器再打开,Cookie仍然有效。如果未设置有效期,则默认为会话Cookie,在浏览器关闭时失效。
- Session:通常与用户的会话周期相关,用户关闭浏览器或长时间未操作,Session可能会过期失效。Session的有效期可以通过服务器端的设置来控制。
- 对服务器的影响:
-
- Cookie:由于保存在客户端,不会给服务器带来额外的存储压力。
- Session:存储在服务器端,随着用户数量的增加,服务器需要存储的Session数据也会增加,可能会对服务器性能产生影响。
- 应用场景:
-
- Cookie:常用于用户身份验证、个性化设置、跟踪用户行为等场景。由于存储在客户端,可以方便地进行跨域访问和数据共享。
- Session:也用于用户身份验证和会话管理,但由于存储在服务器端,可以提供更高的安全性和稳定性。同时,由于Session ID是唯一的,也可以用于防止跨站请求伪造(CSRF)等安全攻击。