长期更新补充建议关注收藏点赞目录学习路线tips总结报文加密专栏一、基于加密算法的报文加密二、混合加密对称加密 非对称加密三、报文完整性与认证非加密但相关四、传输层安全协议如 TLS/SSLTLS/SSLDOS v.s. DDOSXSS跨站脚本攻击CSRF跨站请求伪造CSP内容安全策略学习路线以下是开发人员应掌握的一些关键网络安全知识和实践常见的网络攻击类型SQL 注入 (SQL Injection): 通过用户输入操控数据库查询。跨站脚本攻击 (XSS): 注入恶意脚本到网页中攻击其他用户。跨站请求伪造 (CSRF): 利用用户的身份发送未授权请求。中间人攻击 (MITM): 在传输过程中窃取或篡改数据。DDoS 攻击: 用大量请求淹没服务器导致服务中断。目录遍历攻击: 访问服务器的文件系统以窃取敏感信息。拒绝服务攻击DoS使用速率限制Rate Limiting工具限制请求频率。对大型文件或复杂查询设置超时限制。安全编码原则输入验证和过滤:验证所有用户输入后端永远不能信任客户端提供的数据必须验证输入。正则表达式过滤对输入内容进行格式检查防止恶意数据进入系统。拒绝列表和允许列表优先使用允许列表白名单限制输入范围避免仅依赖拒绝列表黑名单。使用预编译语句: 预防 SQL 注入如使用参数化查询。避免硬编码敏感信息: 不将密码、API 密钥等硬编码到代码中使用环境变量或加密存储。避免暴露错误信息: 自定义错误页面防止泄露系统信息。3. 加强身份验证和授权强密码和多因素认证 (MFA): 提高账户的安全性。Session 管理使用安全的 session ID并定期更新。密码管理使用强加密算法存储密码如 bcrypt、Argon2。禁止密码明文存储或硬编码到代码中。强制密码策略如最小长度、复杂性等。JWT 安全对 JWT 使用安全的签名算法如 HMAC-SHA256。设置 JWT 的 有效期 和 刷新机制。验证 JWT 的来源与完整性。权限管理实现 最小权限原则根据用户角色Role-Based Access Control, RBAC限制权限。使用分级权限系统防止越权访问。安全通信HTTPS: 确保所有数据在传输时加密避免数据被窃取。加密存储敏感数据: 对存储的数据如用户密码进行加密推荐使用强哈希算法如 bcrypt。不在 URL 中传递敏感数据如密码或 Token。确保安全套接字层SSL/TLS证书配置正确避免中间人攻击。安全框架和库使用安全的 Web 开发框架如 Django、Spring Security这些框架通常内置了常见安全机制。定期更新第三方库和依赖项避免使用存在漏洞的版本。使用自动化工具如 Snyk、Dependabot检查依赖漏洞。Web 应用防火墙 (WAF)部署 WAF 来监控和过滤恶意流量从而保护 Web 应用免受常见攻击。安全测试静态代码分析 (SAST): 在开发阶段检测代码中的漏洞。动态应用程序安全测试 (DAST): 模拟攻击测试运行中的应用。定期进行渗透测试识别可能的安全漏洞。日志与监控记录所有敏感操作日志如登录、数据修改。避免在日志中输出敏感信息如密码、Token。配置实时监控工具如 SIEM监测异常行为。API 安全使用 API 网关限制请求频率。验证 API 调用者身份。验证 API 输入避免数据泄露。避免过度暴露接口遵循最小化数据返回原则。数据加密与存储安全对敏感数据如身份证号、支付信息等进行加密存储。密钥管理使用专门的 密钥管理服务KMS。密钥定期轮换避免硬编码到代码中。tips总结调用收费 API 时一定要严格控制用户调用的频率和次数做好监控告警措施否则破产就在一瞬间昵称等信息通常要限制用户输入的字符防止出现一些安全漏洞或显示异常不要以任何形式在网上散播你的敏感信息注意自我保护 如源码里写有密码无限点击网页前端和后端都要对状态进行控制防止数目异常防止被恶意快速多次点击如点赞、收藏按钮提交数过多对于内容平台前端和后端都要对用户的提交频率和次数做限制防止恶意重复提交SQL注入常见安全漏洞要在前后端严格校验和过滤用户的非法输入分布式拒绝服务攻击DDoS低成本 / 致命的攻击手段尽量不要暴露源站 IP并且给系统添加防火墙等方法策略恶意提交虚假信息、灌水内容、营销广告、不健康信息、粗鄙内容:可以通过人工审核、AI 审核等方式严格控制用户提交内容的合法性并对违规用户进行封禁绕过权限直接访问管理员后台:前端要对管理后台进行隐藏和鉴权后端也要对敏感数据进行保护和访问控制边界值网页前端和后端都要校验用户是否允许操作如数量为0但是可以操作成功疯狂访问/上传过大资源要严格限制用户上传文件的大小和格式并且给存储文件添加防盗链、缓存等防护 / 减压措施防止资源浪费 ;如疯狂访问超大图片频繁提交重复的搜索内容影响热搜推荐:对于内容平台要对用户刷量 / 可能影响推荐的行为进行控制邮箱、手机号之类的重要信息通常需要严格的正则表达式校验前后端都要校验通过校验码、限制用户浏览条数等方式一定程度上预防爬虫,防止请求参数pageNum1pageSize70000非法爬虫窃取网站内容根据用户 id 或 IP 等维度来保证单用户的浏览量不重复统计如请求某个页面10000次刷浏览量点击按钮过于频繁导致状态显示错误前端开发时要充分测试用户单次操作和多次操作的合理性XSS攻击最普遍的 Web 应用安全漏洞要在前后端严格校验和过滤用户的非法输入 如 scriptalert(1)放入可输入的地方 了解更多输入过长网页的前端和后端都要校验用户的输入零日攻击:是指被发现后立即被恶意利用的安全漏洞这就需要网站维护人员持续关注最新的安全消息上传非法脚本文件要在后端严格限制用户上传文件的格式 / 类型 / 文件头等如上传头像上传非图片格式文件暴力破解密码:找到对应登陆api接口暴力字典破解应对方法通过验证码、限流、限制单账号密码错误次数等方式防止密码暴力破解冒充特殊用户给站点特殊用户增加认证和标识来帮助用户区分如站长对于常用的api设置接口都要进行访问防范防止网站目录扫描如/User/login/questions/ranking/account/op后台操作/op/question绕过前端权限控制直接访问后台接口后端也要对敏感数据进行保护和访问控制DOS拒绝服务攻击是攻击者想办法让目标机器停止提供服务:低成本 / 致命的攻击手段尽量不要暴露源站 IP并且给系统添加防火墙等方法策略第一个是DOS使服务器停止服务第二个是DDOS第三个是CC网页攻击DDOS一种模拟正常用户合法请求耗尽服务器资源疯狂访问耗时接口要严格控制单用户调用接口的频率防止占用过多资源影响正常用户的使用疯狂上传文件建议限制用户上传文件的频率防止资源浪费报文加密专栏报文加密主要涉及确保数据在传输过程中不被窃听和篡改的技术。主要有四个分类。总结报文加密是一个多层次、多技术的综合应用核心是对称加密和非对称加密的结合辅以散列函数提供完整性校验并通过数字签名实现认证和不可否认在特定层得以实际应用。加密在哪个层总结除物理层外每个层都需要加密因为他们是互补而非替代的关系使得每一层级的新报文头都会得到保护。应用层加密对称AES、非对称RSA/ECC等特点 端到端加密End-to-End Encryption。数据在发送方应用产生时就被加密直到接收方应用才解密。中间的任何网络设备包括服务器、路由器等都无法看到明文数据。优点 提供了最高的机密性即使服务器被攻破数据也仍然加密。通常由应用程序开发者实现和控制。缺点 需要应用程序层面的支持实现成本相对较高可能需要用户手动管理密钥。例子PGP/GPG 用于电子邮件加密邮件内容在发送前被加密只有收件人能解密。Signal/WhatsApp 等聊天应用 它们的聊天消息就是端到端加密的典型。文件加密 用户在本地对文件进行加密存储或传输。数据库字段加密 在应用层对数据库中的敏感字段进行加密即使数据库被窃取这些字段也无法直接读取。传输层加密 (TLS/SSL等)特点 提供了点对点通常是客户端到服务器的加密通道。数据在传输层封装时被加密在传输层解封装时被解密。中间网络设备可以看到IP地址和端口号等传输层及以下的信息但应用层数据是加密的。优点 广泛应用对上层应用透明易于部署通过证书。解决了大部分网络通信的机密性、完整性和认证问题。缺点 无法实现真正的“端到端”加密因为服务器在收到数据后会解密数据然后才能处理尽管服务器通常是受信的。例子HTTPS 基于 HTTP TLS是 Web 浏览器和服务器之间最常见的安全通信方式。FTPS、SMTPS、IMAPS 等 其他应用层协议通过 TLS/SSL 获得安全。VPN (SSL VPN) 某些 VPN 类型在传输层提供加密。TLS/SSL 也可以用于构建 VPNSSL VPN但通常更侧重于提供对特定应用程序如 Web 应用的远程安全访问而不是整个网络流量的隧道化。IPsec 在提供整个 IP 流量的隧道化方面更为强大和灵活。网络层加密 (IPsec 网际协议安全Internet Protocol Security)尽管有应用层和传输层TLS/SSL的加密网络层仍然需要加密并且在某些场景下是必不可少的。 这体现了“深度防御”Defense in Depth的安全策略即在不同层次提供多重安全保障。但IP 头源/目的 IP 地址、端口号等网络层和传输层的元数据是可见的。IPsec网络层 可以加密整个 IP 数据包包括其有效载荷和部分头部信息。这意味着它可以保护所有通过该安全通道的流量。特点 在 IP 层网络层对整个 IP 数据包或其有效载荷进行加密和认证。通常用于构建 VPN虚拟专用网络保护整个网络流量。当你需要将两个远程网络例如公司总部和分支机构安全地连接起来或者让远程用户像在公司内网一样安全地访问内部资源时IPsec VPN 是理想的选择。IPsec 可以在网络层对所有流经其安全隧道的 IP 流量强制加密无论其上层是何种协议。这提供了一种更全面的网络范围内的加密保护。优点 对上层协议和应用程序完全透明一旦建立安全通道所有流经该通道的数据都会被保护。可以提供更广范围的网络安全。缺点 配置和管理相对复杂性能开销可能较大。例子IPsec VPN 建立安全的隧道将两个网络或主机之间的所有 IP 流量加密。Psec 的隧道模式可以通过将整个原始 IP 包封装在新的 IP 包中来隐藏原始的源/目的 IP 地址和端口从而在一定程度上抵御流量分析。IPsec 可以在不同路由器或网关之间建立安全隧道即使这些路由器或网关本身并不被信任它们之间的通信也能得到保护。数据链路层加密Wi-Fi安全协议 WPA2/WPA3、有线以太网 MACsec (Media Access Control Security - IEEE 802.1AE特点 在数据链路层OSI 第二层进行加密。它通常发生在物理链路的两端保护的是单个网络跳hop-by-hop的数据传输。优点 对所有上层协议完全透明即使物理链路被窃听数据也难以获取。缺点 只保护点对点链路不提供端到端的安全。每个中间节点都需要解密和再加密数据。例子WPA2/WPA3 (Wi-Fi Protected Access) 在无线局域网中对数据链路层帧进行加密保护无线传输的安全性。专线加密设备 部署在专用通信链路两端的硬件加密设备。PPPoE点对点用户宽带服务PPP over Ethernet 本身不提供数据加密。它的主要安全功能在于基于 PPP 协议的身份认证通过 PAP 或 CHAP和会话管理。物理层 无一、基于加密算法的报文加密这是最核心的加密方式根据密钥的使用方式可以分为两大类对称加密 (Symmetric Encryption)原理加密和解密使用同一把密钥。发送方用这把密钥加密报文接收方也用这把相同的密钥解密报文。优点加密和解密速度快效率高适合对大量数据进行加密。缺点密钥分发和管理是一个挑战。如何安全地将共享密钥分发给通信双方是一个难题如果密钥泄露被抓包则通信安全将无法保证。常见算法AES (Advanced Encryption Standard):目前最广泛使用且被认为是安全的对称加密标准。支持128、192、256位密钥。DES (Data Encryption Standard) / 3DES (Triple DES):DES 已被认为不安全3DES 是其增强版但性能较低现在也逐渐被 AES 取代。Blowfish / Twofish:其他一些高性能的对称加密算法。SM4 (国密算法):中国国家密码管理局发布的对称加密算法。非对称加密 (Asymmetric Encryption / Public-Key Cryptography)原理使用一对不同的密钥即公钥 (Public Key)和私钥 (Private Key)。公钥可以公开用于加密数据或验证数字签名。私钥必须严格保密用于解密数据或生成数字签名。用公钥加密的数据只能用对应的私钥解密。用私钥加密的数据通常用于数字签名可以用对应的公钥解密/验证。过程服务器先告诉客户端按照自己给定的公钥进行加密客户端按照公钥加密后发给服务器服务器接收到信息后再用自己的私钥进行解密优点解决了密钥分发问题通信双方无需事先交换密钥私钥不在网络中传输安全性更高。公钥可以公开而私钥留在各自手中。缺点加密和解密速度比对称加密慢得多不适合直接加密大量数据中间人攻击如何保证客户端接收到的就是发送端自己的公钥而不是篡改方给的公钥。常见算法RSA (Rivest-Shamir-Adleman):最广泛使用的非对称加密算法基于大数因子分解的数学难题。ECC (Elliptic Curve Cryptography):椭圆曲线密码学在提供相同安全强度的情况下所需密钥长度比 RSA 短计算量更小更适合资源受限的设备。DSA (Digital Signature Algorithm):主要用于数字签名。二、混合加密对称加密 非对称加密由于非对称加密速度慢对称加密密钥分发困难实际应用中通常采用混合加密的方式。流程通信双方或其中一方使用非对称加密来安全地交换一个临时的对称密钥。例如发送方用接收方的公钥加密一个随机生成的对称密钥然后发送给接收方。接收方用自己的私钥解密得到对称密钥。一旦双方都拥有了这个共享的对称密钥后续的大量报文数据就使用对称加密进行加密传输。优点结合了非对称加密的密钥分发优势和对称加密的高效率。这是当前网络通信如 HTTPS/TLS中普遍采用的加密模式。TLS淘汰了SSL三、报文完整性与认证非加密但相关除了加密防止窃听报文安全还包括确保报文在传输过程中未被篡改以及验证发送方身份。这通常通过散列函数 (Hash Function)和数字签名 (Digital Signature)实现。散列函数 (Hash Function / 消息摘要算法)原理将任意长度的输入数据报文通过一个数学函数计算出一个固定长度的散列值或称消息摘要/哈希值。特性单向性无法从散列值反推出原始数据。输入敏感原始数据即使有微小改动也会导致散列值发生巨大变化雪崩效应。抗碰撞性很难找到两个不同的输入数据产生相同的散列值。用途主要用于验证数据完整性。发送方计算报文的散列值并附在报文后接收方收到报文后也计算一次散列值如果两个散列值一致则说明报文未被篡改。常见算法MD5 (Message Digest Algorithm 5):已被证明不安全存在碰撞不建议用于安全性要求高的场景。SHA (Secure Hash Algorithm) 系列:SHA-1 已不再安全SHA-2 (如 SHA-256, SHA-512)和SHA-3系列是目前推荐使用的安全散列算法。SM3 (国密算法):中国国家密码管理局发布的散列算法。数字签名 (Digital Signature)原理结合了非对称加密和散列函数用于提供认证、完整性和不可否认性。过程数字证书中的CA签名使用时机TLS 握手阶段的第一步客户端验证这个签名来信任服务器的公钥。服务器携带公钥向数字证书认证机构提出公钥申请证书认证机构对其进行审核和数字签名再分配这个已签名的公钥把其放在证书里面绑定在一起。服务器将证书链自己的数字证书中间CA证书发送给客户端客户端收到证书链逐级验证获取CA证书中的公钥来验证服务器证书上的数字签名计算除签名外的内容的哈希值并比较解密签名得到的哈希值一致则认可报文内容中的服务器签名使用时机TLS握手阶段的第二步客户端继续对服务器身份认证且与服务器协商对称密钥。服务端对本次握手过程关键信息计算散列值用自己的私钥对这个散列值进行加密这就是进行数字签名将原始报文和加密后的散列值数字签名一起发送给客户端。客户端收到后使用发送方的公钥解密数字签名得到发送方计算的散列值。同时接收方也对收到的原始报文计算一次散列值。比较两个散列值如果一致则确认报文未被篡改且确实是由拥有该私钥的发送方发出的认证和不可否认。双方安全生成对称密钥用于后续数据加密传输。用途确认报文来源和完整性防止抵赖。四、传输层安全协议如 TLS/SSL在实际网络通信中报文加密通常通过协议栈中的特定层来实现最常见的就是传输层安全协议 (Transport Layer Security, TLS)它是 SSL (Secure Sockets Layer) 的继任者。TLS/SSL三大核心安全目标机密性 (Confidentiality) 防止数据被窃听。完整性 (Integrity) 确保数据在传输过程中不被篡改。身份认证 (Authentication) 验证通信双方尤其是服务器的身份。为了实现这些目标TLS 协议巧妙地融合了多种密码学技术主要包括非对称加密、对称加密、散列函数和数字签名。原理TLS/SSL 协议在应用层和传输层之间提供一个安全通道。它在数据传输前通过复杂的握手过程通常利用非对称加密和证书建立加密会话然后使用协商好的对称密钥对所有应用层数据进行加密和解密。应用你日常访问的 HTTPS 网站、安全邮件SMTPS、VPN 等都广泛使用了 TLS。它提供了数据的机密性、完整性和身份认证。与HTTPS关系HTTPSHTTPTSL/SSL从分层角度来说HTTP 属于应用层 (OSI Layer 7)。TLS/SSL 属于传输层 (OSI Layer 4) 和/或 会话层/表示层 (OSI Layer 5/6) 之间的一个“中间层”。HTTPS 是 HTTP 在 TLS/SSL 之上运行。DOS v.s. DDOSDOSDenial of Service和DDoSDistributed Denial of Service是两种网络攻击类型它们的目标都是让目标服务器无法正常响应请求从而影响其可用性。它们之间的主要区别在于攻击的发起方式和规模。DOSDenial of Service定义DOS攻击是指通过单个计算机或网络连接向目标系统发起大量请求消耗系统资源如带宽、计算能力或内存使目标无法处理正常用户的请求。特点攻击来源单一来源通常是攻击者的个人计算机或一台服务器。规模攻击规模相对较小通常依赖于单一系统的处理能力。防御通过防火墙或流量监控可以相对容易地识别和缓解。DDoSDistributed Denial of Service定义DDoS攻击是通过多个分布在全球各地的计算机或设备通常是受感染的僵尸网络同时向目标系统发起攻击从而消耗目标的资源使其无法为合法用户提供服务。特点攻击来源多个分布在不同地点的来源通常是大量被控制的计算机、IoT设备等。规模攻击规模通常远大于DOS能够通过大量的流量迅速压垮目标系统。防御由于攻击来源分布广泛防御更加困难通常需要更复杂的流量分析和过滤技术。主要区别攻击来源DOS来自单一来源而DDoS来自多个分布式来源。攻击规模DDoS的攻击规模通常大于DOS。防御难度DDoS的防御难度高于DOS因为攻击来源多且分布广。总结来说DDoS是DOS攻击的一种扩展利用了分布式的资源来发起更为强大的攻击。XSS跨站脚本攻击定义cross-site scripting跨站脚本恶意代码注入分3类存储型、反射型、DOM型存储型恶意代码存储在服务器中服务器从数据库中取出恶意代码拼接到HTML返回给客户端客户端浏览器解析执行反射型恶意代码存储在URL中服务端将恶意代码取出拼接在HTML返回给客户端客户端浏览器解析执行DOM型恶意代码存储在URL中客户端浏览器前端JS将恶意代码取出并执行区别恶意代码存储在服务器里 还是 URL中取出由浏览器端 还是 服务端 完成作用窃取数据cookie, Storage冒充用户行为修改页面结构流量劫持DOS攻击占用服务器资源原理网页没有对恶意代码过滤防范输入完全转义纯前端页面无SSR (server-side rendering)cookie: http-only禁止客户端的 JavaScript 脚本读取或操作该 Cookie验证码CSP 内容安全策略 开启方式有两种。HTTP首部Content-Security-Policy meta标签CSRF跨站请求伪造定义Cross-Site Request Forgery跨站请求伪造攻击者诱导用户进入网站这个网站向已登陆攻击网站发送请求绕过后台验证冒充用户行为分3类GETPOST链接请求在 a 的href属性中。例子GET进入网站后img里的请求自动提交POST隐藏表单进入网站后自动提交原理在同源请求发给服务器时时自动带上cookie防范同源检测 检查HTTP头的origin/referer缺点可伪造屏蔽了搜索引擎token 客户端存储服务端发来的token客户端发起请求都在请求参数中加入token服务端验证缺点麻烦负载均衡时对应服务器可能没存这个tokencookie双重验证 客户端发请求时将cookie取出放在URL参数中供服务器验证利用了攻击者只能利用cookie不能获取cookie。缺点xss攻击后无效cookie属性中设置samesite不允许第三方使用cookie限制 Cookie 只能被同源网站使用防止跨站请求携带SameSiteStrict 严格模式只允许同源请求携带 CookieSameSiteLax 宽松模式只允许GET请求且跳转时才能用。Set-Cookie:sessionxyz123;Secure;HttpOnly;SameSiteStrict举个例子如果银行网站允许使用 GET 请求转账用户访问该网页浏览器会自动向银行网站发起请求如果用户已登录银行网站会认为用户主动发起了转账。如果网站使用 POST 请求攻击者可以用 隐藏的表单 触发用户访问该网页表单会自动提交造成 CSRF 攻击。formactionhttps://bank.com/transfermethodPOSTinputtypehiddennametovalueattackerinputtypehiddennameamountvalue10000inputtypesubmit/formscriptdocument.forms[0].submit();/scriptCSP内容安全策略内容安全策略Content Security Policy简称 CSP是由 W3C 定义的安全标准允许网站管理员通过定义一系列受信任的内容来源来减少和缓解某些类型的注入攻击尤其是跨站脚本XSS攻击。核心思想是“只允许来自特定来源的内容加载和执行。”为什么需要 CSP传统的 Web 安全依赖于同源策略但同源策略主要限制了不同源之间的数据访问。对于同源内部的攻击如 XSS同源策略无能为力。XSS 攻击通常发生在攻击者向网页注入恶意脚本时。这些脚本可以窃取用户的 Cookie、会话令牌篡改网页内容甚至重定向用户到恶意网站。CSP 通过白名单机制告诉浏览器哪些外部资源JavaScript、CSS、图片、字体、媒体等可以被加载和执行从而极大地限制了攻击者注入恶意代码的能力。CSP 的工作原理CSP 通过在 HTTP 响应头中添加 Content-Security-Policy 字段或在 HTML 页面中添加meta标签来启用和配置。浏览器接收到 CSP 策略后会根据策略来判断页面中加载的各种资源是否合法。如果一个资源不符合策略中定义的白名单浏览器就会阻止该资源的加载和执行报告违规行为如果配置了报告 URI。CSP 指令 (Directives)CSP 策略由一个或多个指令组成每个指令定义了特定类型内容的加载规则。常见指令default-src所有未被特定指令覆盖的资源类型的默认策略。这是最重要的指令强烈建议设置。default-src ‘self’只允许加载和执行来自当前源的资源。script-src定义允许加载和执行 JavaScript 的来源。script-src ‘self’ https://trusted.cdn.com允许加载当前源和 https://trusted.cdn.com 的脚本。script-src ‘self’ ‘unsafe-inline’允许内联脚本强烈不推荐会降低 XSS 防御能力。script-src ‘self’ ‘unsafe-eval’允许使用 eval() 等通过字符串创建代码的方法不推荐会降低 XSS 防御能力。script-src ‘nonce-YOUR_RANDOM_VALUE’通过一次性随机数nonce机制只允许带有特定 nonce 属性的内联脚本执行提高安全性。script-src ‘sha256-HASH_OF_SCRIPT_BLOCK’通过哈希值只允许哈希值匹配的内联脚本执行。style-src定义允许加载 CSS 样式表的来源。img-src定义允许加载图片的来源。font-src定义允许加载字体的来源。connect-src定义允许通过 XMLHttpRequest, fetch, WebSocket 等连接的来源。frame-src定义允许嵌入 , , 等的来源。manifest-src定义允许加载 Web Manifest 文件的来源。media-src定义允许加载 , 等媒体资源的来源。worker-src定义允许加载 Web Worker, Shared Worker, Service Worker 脚本的来源。object-src定义允许加载 , , 等插件内容的来源通常设置为 ‘none’ 以增强安全性。base-uri限制 标签中可使用的 URL。form-action限制 标签 action 属性可提交到的 URL。frame-ancestors限制哪些源可以将当前页面嵌入到 , , , 等中防御点击劫持攻击。report-uri / report-to当 CSP 策略被违规时浏览器将违规报告发送到指定的 URI。CSP 策略示例基本且安全的策略Content-Security-Policy: default-src self; img-src self data:; connect-src self;default-src ‘self’默认只允许加载当前源的资源。img-src ‘self’ data:图片除了当前源还允许加载 data: URI通常用于内联小图片。connect-src ‘self’AJAX/Fetch 请求只允许发送到当前源。包含外部 CDN 的策略Content-Security-Policy: default-src self; script-src self https://cdnjs.cloudflare.com; style-src self https://fonts.googleapis.com; font-src self https://fonts.gstatic.com; img-src * data:; report-uri /csp-report-endpoint;允许从 Cloudflare CDN 加载脚本。允许从 Google Fonts 加载样式和字体。图片允许从任何地方加载 (*)。当策略被违反时向 /csp-report-endpoint 发送报告。启用 CSP 的方式HTTP 响应头 (推荐)Content-Security-Policy: policy-directives例如Content-Security-Policy: default-src self; script-src self https://cdn.example.com;HTMLmeta标签meta http-equivContent-Security-Policy contentpolicy-directives例如meta http-equivContent-Security-Policy contentdefault-src self;注意 使用meta标签有局限性例如它不能配置 frame-ancestors 和 report-uri 指令。CSP 的模式强制模式 (Enforcing Mode)直接阻止不符合策略的资源加载和执行。这是生产环境中使用的模式。报告模式 (Report-Only Mode)通过 Content-Security-Policy-Report-Only HTTP 头启用。在这种模式下浏览器不会阻止违规行为但会向配置的报告 URI 发送违规报告。这对于在部署强制策略之前测试策略非常有用可以避免意外破坏现有功能。Content-Security-Policy-Report-Only: default-src self; report-uri /csp-report-endpoint;CSP 的局限性与挑战复杂性 编写一个全面且正确的 CSP 策略可能很复杂尤其对于有大量第三方集成和内联脚本的旧应用。维护成本 随着应用功能和第三方库的增加CSP 策略可能需要频繁更新。内联脚本和样式 如果应用大量使用内联script 或 style标签需要使用 nonce 或哈希值来允许它们否则就得使用不安全的 ‘unsafe-inline’从而削弱了 CSP 的防御效果。性能 CSP 会增加浏览器解析和验证资源的开销但通常影响很小。不能完全阻止 XSS CSP 可以大大缓解 XSS但不能完全阻止所有类型的 XSS 攻击例如 DOM-based XSS 攻击如果攻击者能够利用页面中的 JavaScript 漏洞来动态创建符合 CSP 策略的合法元素。尽管有这些挑战CSP 仍然是现代 Web 安全中不可或缺的防御层强烈推荐在所有 Web 应用中部署。
企业数字化 ERP 产品动态
相关推荐
洛克王国竞技场最佳实践:3个核心考点帮你避开面试雷区 洛克王国竞技场最佳实践:3个核心考点帮你避开面试雷区 官方文档那几万字读下来,脑子还是浆糊,根本抓不住重点。别慌,今天这篇【洛克王国竞技场】最佳实践,直接带你拆解高频面试题。我们把那些晦涩的规则,翻译成你能听懂的大白话,配合代码实战,让你3… · 2026/9/23 15:33:17
SAP销售寄售配置全攻略:客户寄售库存与631/633移动类型解析 简介:SAP销售寄售业务配置与操作讲解PDF,面向SAP SD模块顾问、后勤实施人员及ERP从业者,尤其适合正在学习寄售流程或需要落地相关配置的读者。内容系统梳理寄售全流程,涵盖寄售补货(KB)、寄售结算ÿ… · 2026/9/23 15:33:10
糖尿病肾病眼底图像数据集:VOC/YOLO双格式详解与YOLOv8训练踩坑指南 简介:糖尿病肾病检测数据集面向医学影像中的糖尿病视网膜病变分级识别任务,提供完整的Pascal VOC与YOLO双格式标注数据。资源围绕5个临床分级类别展开,包含mild-DR、moderate-DR、normal、proliferation-DR、severe-DR,适用于医疗… · 2026/9/23 15:33:10
AIoT边缘计算网关怎么选?从场景出发,找到最匹配的那一款 选型之前,先别急着看参数很多人选边缘计算网关,第一反应是打开规格书,比CPU核心数、比NPU算力、比接口数量。比着比着就乱了——这个型号算力高但串口少,那个型号串口多但没NPU,还有一个什么都好但价格超预算。正确的顺… · 2026/9/23 16:19:32
Python图像识别主板质检:模板匹配与特征工程实战 简介:这是一套面向计算机视觉初学者与工业质检方向开发者的主板质量检测系统源码,基于Python与图像识别技术实现,可用于学习缺陷检测、目标检测与关键点识别等典型任务的工程落地。资源包共41个文件,以34个Python脚本为核心&#… · 2026/9/23 16:19:32
iptables 防火墙速查表:Linux 内核防火墙命令实战指南 文档知识库教程开发工具 【免费下载链接】reference 为开发人员分享快速参考备忘清单(速查表) 项目地址: https://gitcode.com/jaywcjlove/reference 点击查看 免费下载 iptables 是配置 Linux 内核防火墙的命令行工具,属于 netfilter 项目的一部分&… · 2026/9/23 16:19:32
AutoJs 4.1.0 Android自动化脚本入门:无障碍服务与控件选择器实战 我第一次听说“clsq客户端”这个名字时,第一反应是某个内部工具,后来被朋友拉到一起折腾才发现,它背后真正有价值的东西其实是基于AutoJs 4.1.0的一套Android自动化脚本方案。AutoJs这个工具在国内Android圈子里名声很大,它是一个… · 2026/9/23 16:19:26
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29