Windows 系统加固教程

前言:有些比赛就考到了系统加固,抽时间列了个大概,有时间真得好好研究并实操一下,书到用时方恨少。后续有时间的话写一篇实操。(本人实力有限,如有错误,恳请大佬指点改正)

一、引言

Windows 作为广泛使用的操作系统,面临着来自网络的各种安全威胁。系统加固是一系列旨在增强系统安全性、减少潜在攻击面和降低安全风险的操作。通过实施这些加固措施,可以显著提高 Windows 系统的安全性,保护数据和隐私,确保系统稳定可靠地运行。

二、用户账户管理

(一)强密码策略

密码复杂性要求

启用密码复杂性策略,要求密码包含大写字母、小写字母、数字和特殊字符,例如:P@ssw0rd123。这样可以大大增加密码的破解难度。

在本地安全策略(secpol.msc)中,导航至 “账户策略”->“密码策略”,将 “密码必须符合复杂性要求” 设置为 “已启用”。

密码长度最小值

建议设置密码长度最小值为 8 位或更长。更长的密码能够提供更高的安全性。同样在 “密码策略” 中,将 “密码长度最小值” 设置为合适的值,例如 8。

密码最长使用期限

定期更改密码是一种良好的安全实践。设置密码最长使用期限,例如 90 天,强制用户定期更新密码,以减少因密码泄露导致的安全风险。在 “密码策略” 中,将 “密码最长使用期限” 设置为相应天数。

(二)账户锁定策略

账户锁定阈值

设置账户在多次登录失败后锁定,以防止暴力破解密码攻击。例如,将账户锁定阈值设置为 5 次,即在 5 次连续登录失败后,账户将被锁定一段时间。在本地安全策略中,导航至 “账户策略”->“账户锁定策略”,将 “账户锁定阈值” 设置为 5。

账户锁定时间

确定账户被锁定后的锁定时间,例如 30 分钟。这可以在一定程度上阻止攻击者持续尝试破解密码,同时也给管理员足够的时间来调查异常登录行为。在 “账户锁定策略” 中,将 “账户锁定时间” 设置为 30 分钟。

复位账户锁定计数器

设置复位账户锁定计数器的时间间隔,例如 30 分钟。这意味着在经过 30 分钟后,如果没有再次发生登录失败事件,账户锁定计数器将被复位,用户可以再次尝试登录。在 “账户锁定策略” 中,将 “复位账户锁定计数器” 设置为 30 分钟。

(三)禁用不必要的账户

默认账户处理

禁用或删除默认的 Windows 账户,如 “Guest” 账户。Guest 账户通常具有有限的权限,但如果被攻击者利用,仍然可能造成安全威胁。在计算机管理(compmgmt.msc)中,展开 “本地用户和组”->“用户”,右键单击 “Guest” 账户,选择 “属性”,勾选 “账户已禁用”。

非活动账户管理

定期检查并禁用或删除长时间未使用的账户。这些账户可能成为攻击者的潜在入口点,因为它们的存在可能被忽视,且其密码可能已经泄露或容易被猜测。可以通过脚本或第三方工具来定期检查账户的最后登录时间,并采取相应的措施。

三、系统更新与补丁管理

(一)启用自动更新

Windows 更新设置

打开 “设置” 应用,选择 “更新和安全”,在 “Windows 更新” 选项卡中,将 “自动下载更新” 和 “自动安装更新” 设置为 “开”。这样可以确保系统及时获取微软发布的安全补丁和更新,修复已知的漏洞,提高系统的安全性。

更新源选择

确保更新源设置为可靠的微软官方更新服务器。在某些情况下,可能需要配置代理服务器才能正常连接到更新服务器。在 “更新和安全”->“Windows 更新”->“高级选项” 中,可以检查和配置更新源相关的设置。

(二)定期检查更新

手动检查更新

即使启用了自动更新,也建议定期手动检查更新,以确保没有遗漏任何重要的更新。可以在 “Windows 更新” 界面中,点击 “检查更新” 按钮,手动触发更新检查过程。

更新历史记录查看

定期查看更新历史记录,了解系统已经安装的更新情况,以及是否有更新安装失败的情况。如果发现更新安装失败,可以尝试重新安装或查找相关的解决方案,以确保系统的安全性和稳定性。在 “Windows 更新”->“查看更新历史记录” 中,可以查看详细的更新信息。

四、防病毒与反恶意软件

(一)安装可靠的防病毒软件

选择合适的产品

选择一款知名、可靠的防病毒软件,如 Windows Defender(Windows 系统自带)、卡巴斯基、诺顿等。这些软件通常具有实时监控、病毒扫描、恶意软件防护等功能,可以有效地检测和清除各种类型的病毒和恶意软件。

定期更新病毒库

确保防病毒软件的病毒库定期更新,以识别和防御最新出现的病毒和恶意软件威胁。大多数防病毒软件会自动更新病毒库,但也需要定期检查更新状态,确保其正常工作。在防病毒软件的设置界面中,可以找到关于病毒库更新的选项,并设置更新频率,例如每天自动更新。

(二)实时监控与扫描设置

实时监控启用

开启防病毒软件的实时监控功能,它可以在文件被访问、下载或执行时实时检测是否存在病毒或恶意软件。这可以及时阻止潜在的威胁,防止其在系统中传播和造成损害。在防病毒软件的设置中,确保 “实时监控” 选项被启用。

定期全盘扫描

除了实时监控外,定期进行全盘扫描也是必要的。全盘扫描可以检查系统中的所有文件和文件夹,查找可能隐藏的病毒和恶意软件。建议设置每周或每月进行一次全盘扫描,具体频率可以根据系统的使用情况和安全需求来确定。在防病毒软件的界面中,可以设置全盘扫描的计划任务,包括扫描时间、扫描范围等。

五、防火墙配置

(一)启用 Windows 防火墙

基本防火墙设置

在控制面板中,找到 “Windows 防火墙”,确保其处于启用状态。Windows 防火墙可以阻止未经授权的网络连接,保护系统免受外部网络攻击。在 “Windows 防火墙” 界面中,可以选择启用或关闭防火墙,并查看防火墙的状态和配置信息。

网络位置设置

根据系统所处的网络环境,选择合适的网络位置,如 “家庭网络”、“工作网络” 或 “公用网络”。不同的网络位置具有不同的防火墙策略,例如,在公用网络中,防火墙会更加严格地限制传入连接,以保护系统的隐私和安全。在 “Windows 防火墙”->“更改通知设置” 中,可以设置网络位置和相应的防火墙规则。

(二)入站和出站规则配置

入站规则定制

根据系统的服务需求,定制入站规则。例如,如果系统运行着一个 Web 服务器,需要允许特定端口(如 80 和 443)的入站连接;如果不需要远程桌面访问,应禁用相应的入站规则(默认端口 3389)。在 “Windows 防火墙”->“高级设置” 中,可以创建、编辑和删除入站规则。通过 “新建规则” 向导,可以指定规则的名称、程序或端口、操作(允许或阻止)以及适用的网络配置文件等。

出站规则管理

同样,对于出站连接,也可以根据需要进行规则配置。例如,限制某些应用程序的出站网络访问,以防止它们向外部发送敏感信息或连接到恶意服务器。在 “高级设置” 中,选择 “出站规则”,可以进行类似的规则创建和管理操作,确保系统只允许必要的出站连接,减少潜在的安全风险。

六、系统服务管理

(一)服务列表审查

识别不必要的服务

打开服务管理控制台(services.msc),查看系统中运行的所有服务。对于那些非系统关键且不需要的服务,如打印服务(如果系统不连接打印机)、蓝牙支持服务(如果系统没有蓝牙设备)等,可以考虑禁用它们。禁用不必要的服务可以减少系统的攻击面,提高系统的安全性和性能。

服务依赖关系分析

在禁用服务之前,需要仔细分析服务之间的依赖关系,以确保不会影响其他关键服务的正常运行。有些服务可能是其他重要服务的依赖项,如果盲目禁用可能会导致系统不稳定或某些功能无法正常使用。可以通过查看服务的属性,了解其依赖的其他服务,并在必要时进行进一步的研究和测试,以确定是否可以安全地禁用该服务。

(二)服务启动类型设置

自动启动服务优化

对于那些必须运行的关键服务,如 Windows 操作系统核心服务、防病毒软件服务等,确保其启动类型设置为 “自动(延迟启动)”。这样可以在系统启动后稍作延迟再启动这些服务,避免因多个服务同时启动而导致系统启动缓慢或资源竞争问题,同时确保关键服务能够正常运行,保障系统的安全性和稳定性。

手动启动服务配置

对于一些非关键但偶尔需要使用的服务,如某些特定的应用程序服务,可以将其启动类型设置为 “手动”。这样,这些服务只有在需要时才会被手动启动,而在平时不会占用系统资源,也减少了潜在的安全风险。在服务管理控制台中,右键单击服务,选择 “属性”,在 “启动类型” 下拉列表中选择合适的启动类型。

七、文件系统与权限管理

(一)NTFS 文件系统使用

分区格式转换(如果需要)

确保系统使用 NTFS 文件系统而不是 FAT32 或其他较旧的文件系统。NTFS 提供了更好的安全性和权限管理功能,如文件和文件夹的访问控制列表(ACL)、加密文件系统(EFS)等。如果系统中存在 FAT32 分区,可以使用磁盘管理工具(diskmgmt.msc)将其转换为 NTFS 格式。在转换之前,请备份分区上的重要数据,以防止数据丢失。

NTFS 权限设置

对于系统中的重要文件和文件夹,设置适当的 NTFS 权限。例如,对于系统文件和文件夹,只授予管理员和系统账户完全控制权限,而限制普通用户的访问权限;对于用户数据文件夹,根据用户的需求设置相应的读取、写入和执行权限。可以通过右键单击文件或文件夹,选择 “属性”->“安全” 选项卡,来配置 NTFS 权限。在设置权限时,遵循最小特权原则,即只授予用户完成其工作所需的最低限度的权限,以减少因权限滥用导致的安全风险。

(二)加密敏感数据

EFS(加密文件系统)使用

对于包含敏感数据的文件和文件夹,如财务数据、商业机密、个人隐私信息等,可以使用 EFS 进行加密。EFS 利用用户的公钥和私钥对文件进行加密和解密,只有拥有相应私钥的用户才能访问加密后的文件。要使用 EFS,右键单击要加密的文件或文件夹,选择 “属性”->“高级”,勾选 “加密内容以便保护数据”,然后按照提示完成加密过程。

BitLocker 全盘加密(适用于企业版和专业版)

如果系统支持,考虑使用 BitLocker 对整个磁盘进行加密。BitLocker 提供了全盘加密功能,可以保护数据在磁盘丢失或被盗的情况下不被未经授权的访问。在控制面板中,找到 “BitLocker 驱动器加密”,按照向导的指示选择要加密的驱动器,并设置加密密码或使用智能卡等加密方式。加密过程可能需要一些时间,具体取决于磁盘的大小和数据量。

八、网络配置与安全

(一)网络协议与服务安全

禁用不必要的协议

在网络连接属性中,查看已安装的网络协议,如 NetBIOS、IPX/SPX 等。如果系统不需要这些协议,可以将其卸载或禁用,以减少潜在的安全风险。例如,对于大多数现代网络环境,NetBIOS 协议可能不再需要,可以在网络连接的属性中,取消勾选 “Microsoft 网络的文件和打印机共享” 选项,以禁用 NetBIOS 协议。

网络服务安全配置

对于系统中运行的网络服务,如 Web 服务器(IIS)、FTP 服务器等,进行安全配置。这包括更新服务软件到最新版本、禁用不必要的功能模块、设置强密码和访问控制规则等。例如,对于 IIS 服务器,确保安装了最新的安全补丁,禁用不必要的 IIS 功能(如目录浏览、父路径等),设置严格的用户身份验证和授权规则,以防止未经授权的访问和攻击。

(二)网络共享安全

共享文件夹权限设置

如果系统设置了共享文件夹,务必设置适当的共享权限和 NTFS 权限。共享权限控制着网络用户对共享文件夹的访问级别,而 NTFS 权限则进一步细化了本地用户和网络用户对文件和文件夹的访问权限。对于共享文件夹,只授予特定用户或用户组必要的读取、写入或修改权限,避免过度共享导致敏感信息泄露。在共享文件夹的属性中,选择 “共享” 选项卡和 “安全” 选项卡,分别设置共享权限和 NTFS 权限。

隐藏共享文件夹(可选)

对于一些不希望被普通网络用户轻易发现的共享文件夹,可以通过在共享名称后面添加 “符号将其隐藏。例如,将共享文件夹命名为”,这样在网络邻居中普通用户将无法直接看到该共享文件夹,但具有相应权限的用户仍然可以通过指定完整的共享路径(如 “\ 计算机名 \Data$”)来访问该共享文件夹。这种方法可以在一定程度上增加共享文件夹的安全性,防止未经授权的访问。

九、日志与审计管理

(一)事件日志配置

启用关键事件日志记录

在事件查看器(eventvwr.msc)中,确保启用了关键系统事件的日志记录,如登录事件、系统错误、应用程序崩溃等。这些日志记录可以帮助管理员及时发现潜在的安全问题,并进行故障排查和安全分析。在事件查看器的各个日志类别(如 “Windows 日志”->“系统”、“Windows 日志”->“应用程序”、“Windows 日志”->“安全” 等)中,右键单击相应的日志,选择 “属性”,在 “常规” 选项卡中,确保 “启用日志记录” 选项被勾选,并设置合适的日志大小和覆盖策略,以防止日志文件过大导致系统性能问题。

日志级别调整

根据需要,调整事件日志的级别,以便记录更详细或更关键的事件信息。例如,在安全日志中,可以将日志级别设置为 “详细”,以记录更多关于用户登录、权限访问等安全相关的事件细节,便于后续的安全审计和分析。但需要注意的是,记录更详细的日志可能会占用更多的系统资源,因此需要在安全性和系统性能之间进行平衡。

(二)审计策略设置

账户登录审计

在本地安全策略(secpol.msc)中,导航至 “本地策略”->“审核策略”,启用 “审核账户登录事件” 和 “审核登录事件”。这将记录用户登录系统的相关信息,包括登录成功和失败的情况,有助于检测潜在的暴力破解攻击和异常登录行为。可以选择 “成功”、“失败” 或 “成功和失败” 来确定要记录的登录事件类型,建议同时记录成功和失败的登录事件,以便全面了解系统的登录情况。

对象访问审计

如果需要对特定的文件、文件夹或注册表键进行访问审计,可以启用 “审核对象访问” 策略,并在相应的资源上配置审核设置。例如,对于包含敏感数据的文件夹,右键单击该文件夹,选择 “属性”->“安全”->“高级”->“审核”,添加要审核的用户或用户组,并指定审核的访问类型(如读取、写入、执行等)。这样,当这些用户或用户组对该文件夹进行访问时,相关的访问事件将被记录在安全日志中,便于管理员进行监控和审计。

十、软件安装与管理

(一)软件来源控制

只从官方和可信来源安装软件

避免从不可信的网站或来源下载和安装软件,以防止下载到包含恶意软件或病毒的软件包。建议只从软件的官方网站、微软应用商店或其他知名的软件下载平台获取软件。在下载软件之前,仔细核实软件的发布者和下载链接的真实性,避免点击来自不明来源的软件下载链接,以降低系统感染恶意软件的风险。

软件签名验证

对于一些重要的软件安装包,验证其数字签名。数字签名可以确保软件的完整性和真实性,防止软件在下载过程中被篡改。在 Windows 系统中,当尝试安装一个具有数字签名的软件时,系统会自动验证签名的有效性。如果签名无效或无法验证,系统会提示用户存在潜在的安全风险,此时应谨慎考虑是否继续安装该软件。

(二)软件更新管理

及时更新第三方软件

除了操作系统和防病毒软件外,系统中安装的其他第三方软件也可能存在安全漏洞。因此,定期检查并更新这些软件到最新版本,以修复已知的安全问题,防止攻击者利用这些漏洞进行攻击。可以利用软件自带的更新功能(如许多软件在菜单中提供 “检查更新” 选项),或者使用专门的软件更新管理工具来批量管理和更新系统中的第三方软件。例如,有些软件更新工具可以扫描系统中已安装的软件,并提供一键更新功能,方便用户及时将所有软件更新到最新版本,从而降低因软件漏洞带来的安全风险。

更新提醒与自动更新配置(如果可用)

对于支持更新提醒的软件,确保开启此功能,以便在有新版本发布时能及时收到通知。一些常用的办公软件、浏览器、媒体播放器等都提供了这样的功能,用户可以在软件的设置选项中找到 “更新” 或 “通知” 相关的设置,将更新提醒设置为开启状态。此外,部分软件还支持自动更新,在确保更新源可靠的前提下,用户可以考虑启用自动更新功能,使软件能够在后台自动下载并安装最新版本,减少人工干预,确保软件始终处于最新的安全状态。但需要注意的是,在启用自动更新功能时,要留意软件的更新行为是否会对系统的稳定性或正在进行的工作产生影响,特别是对于一些关键业务系统中的软件更新,可能需要在合适的维护窗口进行,并提前做好备份和测试工作。

软件版本兼容性与稳定性关注

在更新第三方软件时,要关注新版本与操作系统及其他已安装软件的兼容性问题。有时候,新版本的软件可能会引入新的功能或对系统环境有不同的要求,这可能导致与现有系统或其他软件发生冲突,从而影响系统的稳定性和正常使用。在更新软件之前,建议查看软件的发行说明、用户论坛或官方支持文档,了解是否存在已知的兼容性问题,并评估更新可能带来的影响。如果可能的话,可以在测试环境中先进行更新测试,确保没有问题后再在生产环境或实际使用的系统中进行更新。同时,也要注意软件更新后是否出现异常行为,如频繁崩溃、性能下降等,如果发现问题,及时回滚到之前稳定的版本,并向软件供应商报告问题,等待修复后再尝试更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/938598.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana,并且dashboard接入数据 大屏编号地址:Node Exporter Full | Grafana Labs 创建企微机器人 备注:群里若有第三方外部人员不能创建 机器人创建完成,记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…

RabbitMQ如何构建集群?

大家好,我是锋哥。今天分享关于【RabbitMQ如何构建集群?】面试题。希望对大家有帮助; RabbitMQ如何构建集群? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中,集群(Cluster&#x…

JDK以及JRE

目录 1.常用的快捷键操作2.重要的dos命令3.Jre(java Runtime environment)4.Jdk(java development kit)5.安装JDK6.JDK的目录7.Jdk的环境变量配置8.写第一个java程序8.1 安装UE软件8.2 写第一个HelloWorld 9.java运行机制 1.常用的…

Groovy 语法快速入门

文章目录 1. Groovy 的特点2. 基本语法2.1. 变量2.2. 字符串2.3. 条件语句 3. 集合操作3.1. 列表(List)3.2. 映射(Map) 4. 循环语句4.1. 普通循环4.2. 闭包遍历 5. 方法定义6. 闭包(Closure)6.1. 定义与调用…

MySQL 事务管理

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 MySQL 事务管理 收录于专栏[MySQL] 本专栏旨在分享学习MySQL的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 CURD 不加控制&#xff0…

【大模型微调学习5】-大模型微调技术LoRA

【大模型微调学习5】-大模型微调技术LoRA LoRa微调1.现有 PEFT 方法的局限与挑战2.LoRA: 小模型有大智慧 (2021)3.AdaLoRA: 自适应权重矩阵的高效微调 (2023)4.QLoRA: 高效微调量化大模型 (2023) LoRa微调 1.现有 PEFT 方法的局限与挑战 Adapter方法,通过增加模型深…

Windows server服务器之网络安全管理(防火墙入站规则创建)

任务14.1 Windows server 防火墙的管理 系统防火墙概述:无论哪一种操作系统都有自己的防火墙,无论是客户端OS还是服务器端的NOS都有防火墙。 winr-control----打开控制面板 上图是Windows客户端的防火墙,三个重点要关注的内容;网…

【Python】PyWebIO 初体验:用 Python 写网页

目录 前言1 使用方法1.1 安装 Pywebio1.2 输出内容1.3 输入内容 2 示例程序2.1 BMI 计算器2.2 Markdown 编辑器2.3 聊天室2.4 五子棋 前言 前两天正在逛 Github,偶然看到一个很有意思的项目:PyWebIo。 这是一个 Python 第三方库,可以只用 P…

四、CSS3

一、CSS3简介 1、CSS3概述 CSS3 是 CSS2 的升级版本,他在CSS2的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题。 CSS在未来会按照模块化的方式去发展:https://www.w3.org/Style/CSS/current-work.html …

Loki 微服务模式组件介绍

目录 一、简介 二、架构图 三、组件介绍 Distributor(分发器) Ingester(存储器) Querier(查询器) Query Frontend(查询前端) Index Gateway(索引网关&#xff09…

上海亚商投顾:创业板指缩量下跌 多只高位股午后跌停

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整,创业板指领跌,高位股开始出现退潮,建设工业、星光股份、…

libnanomsg详解

libnanomsg,或简称为nanomsg,是一个高性能的消息传递库,它为开发者提供了简单且高效的“可扩展协议”实现。以下是对libnanomsg的详细解析: 一、基本概述 项目地址:GitCode - 全球开发者的开源社区,开源代码托管平台 …

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…

geoserver 瓦片地图,tomcat和nginx实现负载均衡

在地理信息系统(GIS)领域,GeoServer作为一个强大的开源服务器,能够发布各种地图服务,包括瓦片地图服务。为了提高服务的可用性和扩展性,结合Tomcat和Nginx实现负载均衡成为了一个有效的解决方案。本文将详细…

Spark执行计划解析后是如何触发执行的?

在前一篇Spark SQL 执行计划解析源码分析中,笔者分析了Spark SQL 执行计划的解析,很多文章甚至Spark相关的书籍在讲完执行计划解析之后就开始进入讲解Stage切分和调度Task执行,每个概念之间没有强烈的关联,因此这中间总感觉少了点…

前端的知识(部分)

11 前端的编写步骤 第一步:在HTML的页面中声明方法 第二步:在<script>中定义一个函数,其中声明一个data来为需要的数据 赋值一个初始值 第三步:编写这个方法实现对应的功能

网络编程中的黏包和半包问题

引言 - 什么是黏包和半包&#xff1f; 在网络编程中&#xff0c;黏包和半包问题是常见的数据传输问题&#xff0c;尤其是在使用TCP协议时。Netty作为一个高性能的网络框架&#xff0c;提供了多种解决方案来处理这些问题。下面我将详细解释黏包和半包问题&#xff0c;以及Netty…

F5中获取客户端ip地址(client ip)

当F5设备对其原始设置上的所有IP地址使用NAT时&#xff0c;连接到poo成员&#xff08;nodes、backend servers&#xff09;的出站连接将是NAT IP地址。 pool 成员&#xff08;nodes、backend servers&#xff09;将无法看到真实的客户端 ip地址&#xff0c;因为看到的是F5上的…

【容器】k8s学习笔记原理详解(十万字超详细)

Pod详解 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器&#xff0c;这些容器可以分为两类&#xff1a; 用户程序所在的容器&#xff0c;数量可多可少Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个&#xff1a; 可以以它为依据&am…

【他山之石】Leading-Trim: The Future of Digital Typesetting:数字排版的未来 —— Leading-Trim

文章目录 【他山之石】Leading-Trim: The Future of Digital Typesetting&#xff1a;数字排版的未来 —— Leading-TrimHow an emerging CSS standard can fix old problems and raise the bar for web apps1. The problem with text boxes today2. How we got here: a histor…