常见网络攻击方法原理、应用场景和防御方法(一)
目录
- 1、SQL注入(SQL Injection)
- 原理
- 应用场景
- 防御方法
- 2、跨站脚本攻击(XSS,Cross-Site Scripting)
- 原理
- 应用场景
- 防御方法
- 3、跨站请求伪造(CSRF,Cross-Site Request Forgery)
- 原理
- 应用场景
- 防御方法
- 4、文件上传漏洞
- 原理
- 应用场景
- 防御方法
- 5、远程代码执行(RCE,Remote Code Execution)
- 原理
- 应用场景
- 防御方法
- 6、目录遍历(Directory Traversal)
- 原理
- 应用场景
- 防御方法
- 7、Dos攻击(Denial of Service attack)
- 原理
- 应用场景
- 防御方法
- 8、中间人攻击(MITM, Man-in-the-Middle Attack)
- 原理
- 应用场景
- 防御方法
- 9、服务器端请求伪造(SSRF)
- 原理
- 应用场景
- 防御方法
- 10、DNS劫持
- 原理
- 应用场景
- 防御方法
- 11、DNS欺骗(DNS Spoofing)
- 原理
- 应用场景
- 防御方法
1、SQL注入(SQL Injection)
原理
通过在Web应用程序的用户输入点注入恶意SQL代码,利用应用程序对输入的不充分处理,攻击者能够操纵数据库执行未授权的查询或操作。
可能导致敏感数据的泄露、数据的修改或删除,甚至可能获得数据库的管理员权限。
应用场景
- 登录表单:攻击者在用户名或密码字段中插入SQL代码,尝试绕过身份验证。
- 搜索功能:在搜索框中输入恶意SQL语句,可能获取或修改数据库中的数据。
- 数据输入表单:在任何接受用户输入并用于数据库操作的表单中注入SQL代码。
- URL参数:通过URL传递的参数中包含SQL命令,尝试执行未授权操作。
- Cookie和HTTP头:在不安全的Cookie或HTTP头中注入SQL代码,影响数据库操作。
防御方法
- 参数化查询:使用参数化查询或预编译语句,确保用户输入作为参数传递,而不是直接拼接到SQL语句中。
- 输入验证:对所有用户输入进行严格的格式和类型检查,过滤掉潜在的危险字符。
- 最小权限原则:限制数据库账户的权限,确保它们只有完成必要操作的最小权限。
- 错误处理:适当管理错误信息,避免向用户展示可能泄露数据库结构或状态的细节。
- 使用ORM:采用对象关系映射(ORM)工具,这些工具通常提供自动的SQL语句安全处理。
- WAF(Web应用防火墙):部署WAF来识别和阻止SQL注入攻击。
- 定期审计:定期进行代码审查和安全审计,以便发现和修复安全漏洞。
- 安全编码培训:对开发人员进行安全编码实践的培训,提高他们对Web安全威胁的认识。
- 更新和补丁:及时更新应用程序和数据库管理系统,应用安全补丁。
- 使用安全函数:避免使用可能执行不受信任输入的不安全函数。
2、跨站脚本攻击(XSS,Cross-Site Scripting)
原理
XSS攻击利用了Web应用程序对用户输入的不充分处理。攻击者在可以被其他用户浏览的页面中嵌入恶意脚本。当其他用户访问这些页面时,嵌入的脚本会在用户的浏览器中执行,可能用于窃取Cookie、会话信息、或者其他敏感数据。
应用场景
- 社交媒体平台:在用户评论区插入恶意JavaScript代码,当其他用户查看评论时,恶意代码可能窃取用户的登录信息。
- 论坛和留言板:在帖子或留言中嵌入脚本,影响查看这些内容的用户。
- 搜索功能:在搜索查询中注入脚本,影响搜索结果页面的访问者。
- 电子商务网站:在产品评论或用户反馈部分嵌入脚本,攻击其他用户。
- 任何允许用户输入的网站:只要用户输入未经适当过滤和转义,就可能成为XSS攻击的载体。
防御方法
- 输入验证:对所有用户输入进行验证,确保它们不包含潜在的恶意脚本。
- 输出编码:在将用户输入的数据呈现到页面上时,进行HTML编码或转义。
- 使用HTTP-only Cookies:设置Cookie为HttpOnly,这样JavaScript脚本无法访问这些Cookie。
- 内容安全策略(CSP):实施CSP,限制网页可以加载和执行的资源。
- 使用Web应用防火墙(WAF):部署WAF来检测和阻止XSS攻击。
- 定期安全审计:定期对Web应用程序进行安全审计,以发现和修复XSS漏洞。
- 安全编码培训:对开发人员进行安全编码培训,提高他们对XSS攻击的认识。
- 使用现代框架和库:使用现代Web开发框架和库,它们通常提供了自动的XSS防护功能。
- 避免使用不安全的内联JavaScript:避免在HTML中直接内联JavaScript代码,这可能增加XSS风险。
- 使用安全头:例如,使用X-XSS-Protection响应头来启用浏览器的XSS保护机制。
3、跨站请求伪造(CSRF,Cross-Site Request Forgery)
原理
CSRF攻击利用了Web应用程序对用户会话的信赖。攻击者通过诱导用户访问一个恶意网站或者点击一个恶意链接,该网站或链接会自动向用户已登录的目标网站发送请求。由于用户的浏览器携带了有效的会话Cookie,目标网站会认为这些请求是由用户本人发起的,从而执行恶意操作。
应用场景
- 银行网站转账:用户登录银行网站后,访问包含恶意脚本的页面,脚本向银行网站发送转账请求。
- 修改用户设置:攻击者诱使用户点击链接,自动向目标网站发送修改密码或邮箱的请求。
- 发布内容:在社交媒体平台上,攻击者利用CSRF攻击让用户无意中发布不当内容。
- 电子商务网站:攻击者通过恶意请求,让用户无意中购买商品或添加商品到购物车。
防御方法
- 使用CSRF Token:为每个用户会话生成一个唯一的Token,并在每个表单提交时验证这个Token。
- 检查Referer首部字段:验证HTTP请求中的Referer字段,确保请求来自合法的页面。
- 输入验证码:在执行敏感操作时要求用户输入验证码,以确保操作是由用户主动发起的。
- SameSite Cookie属性:设置Cookie的SameSite属性为Strict或Lax,限制Cookie随跨站请求一起发送。
- 双重Cookie验证:在敏感操作中使用额外的Cookie验证,以确保请求的合法性。
- 限制Cookie作用域:设置Cookie的Domain属性,限制Cookie只能发送到特定的域名。
- 使用POST方法:对于敏感操作,避免使用GET方法,因为GET请求可以被缓存或记录在浏览器历史中。
- CSRF令牌与用户会话绑定:确保CSRF令牌与用户的会话紧密绑定,每次用户登录时重新生成。
- 用户教育:教育用户不要点击不明链接,不要在不安全的网站上输入敏感信息。
- 定期安全审计:定期对应用程序进行安全审计,检查潜在的CSRF漏洞。
4、文件上传漏洞
原理
指Web应用程序未能充分验证用户上传的文件,从而允许攻击者上传并执行恶意文件,导致安全风险。攻击者利用文件上传功能,上传带有恶意代码的文件,如可执行文件、脚本文件等。如果服务器没有正确地处理这些文件,恶意文件可能会被服务器执行,攻击者可以通过这种方式控制服务器、窃取敏感信息、破坏数据等。
应用场景
- 头像上传功能:用户上传头像时,如果服务器未限制文件类型,攻击者可能上传恶意PHP文件。
- 附件上传:论坛、邮件系统等允许上传附件的功能,可能被上传恶意脚本。
- 文档管理系统:企业或学校的文档管理系统可能允许上传各种格式的文件,包括可执行文件。
- 图片库:网站图片库允许用户上传图片,但未对文件内容进行检查。
- Web服务器配置不当:服务器配置不当,如错误地设置文件权限,可能导致上传的文件被执行。
防御方法
- 文件类型限制:严格限制可上传的文件类型,只允许上传安全的文件格式,如图片格式(JPEG、PNG)。
- 文件内容检查:对上传的文件进行内容检查,确保没有可执行的脚本或恶意代码。
- 使用文件哈希:为上传的文件生成哈希值,与已知的恶意文件哈希值进行比对。
- 文件大小限制:设置文件大小限制,防止过大的文件被上传。
- 随机重命名文件:上传文件时,重命名文件以避免覆盖服务器上的现有文件。
- 存储位置隔离:将上传的文件存储在服务器的非公共访问目录,避免直接访问。
- 执行权限限制:确保上传的文件没有执行权限,即使它们是脚本文件或可执行文件。
- 使用安全的文件处理库:使用成熟的文件处理库来处理上传的文件,避免安全漏洞。
- 定期扫描:定期扫描服务器上的文件,查找可能的恶意文件。
- 用户教育和培训:教育用户不要上传不明来源的文件,提高安全意识。
5、远程代码执行(RCE,Remote Code Execution)
原理
RCE攻击利用了应用程序或系统的安全漏洞,特别是那些未能对用户输入进行充分验证的情况。攻击者通过构造特制的请求(通常是通过Web应用程序),在目标系统上上传和执行恶意代码。这些漏洞可能存在于Web服务器、数据库、操作系统或其他软件中。
应用场景
- 内容管理系统(CMS):存在未修补的漏洞,攻击者利用这些漏洞上传和执行恶意脚本。
- Web应用程序:应用程序中的安全缺陷,如不安全的文件上传功能或不充分的输入过滤。
- 数据库服务:数据库配置不当或存在漏洞,允许攻击者执行操作系统命令。
- 软件和插件:过时的软件或插件未及时更新,包含已知的漏洞。
- 服务器配置:服务器配置不当,如不当的权限设置或不安全的服务运行。
防御方法
- 及时更新和修补:定期更新软件和系统,修补已知的安全漏洞。
- 输入验证:对所有用户输入进行严格的验证,防止恶意代码注入。
- 最小权限原则:限制应用程序和服务的权限,确保它们只能执行必要的操作。
- 安全配置:确保服务器和应用程序按照安全最佳实践进行配置。
- 使用安全插件和工具:使用安全插件和工具来检测和修复安全问题。
- 监控和日志记录:监控系统活动并记录日志,以便发现和调查异常行为。
- 使用Web应用防火墙(WAF):部署WAF来检测和阻止RCE攻击。
- 代码审计和安全测试:定期进行代码审计和安全测试,包括渗透测试和漏洞扫描。
- 用户教育和培训:教育用户和开发人员了解安全最佳实践,提高安全意识。
- 应急响应计划:制定应急响应计划,以便在发生安全事件时快速响应。
6、目录遍历(Directory Traversal)
原理
目录遍历攻击又称为路径遍历攻击,是一种允许攻击者通过修改Web应用程序中的文件路径参数来访问服务器上的敏感文件或目录的攻击手段。
利用了Web应用程序在处理文件路径时的缺陷。攻击者通过在URL或表单参数中插入特定的字符序列(如"…/"),尝试访问应用程序工作目录之外的文件和目录。如果应用程序未对用户输入的文件路径进行适当的验证和过滤,攻击者就可能访问到配置文件、源代码、备份文件等敏感信息。
应用场景
- 下载功能:Web应用程序提供文件下载功能,但未对用户输入的文件路径进行限制。
- 文件包含:应用程序使用用户输入的参数来包含文件,攻击者可以通过修改参数来包含服务器上的其他文件。
- Web服务器配置:某些Web服务器配置可能允许解析带有相对路径的请求。
- 第三方库和组件:使用存在目录遍历漏洞的第三方库或组件。
防御方法
- 输入验证:对所有用户输入的文件路径进行严格验证,确保它们不包含潜在的遍历序列。
- 白名单过滤:使用白名单方法,只允许特定的文件和目录被访问。
- 绝对路径:总是使用绝对路径访问文件,避免使用相对路径。
- 错误消息处理:自定义错误消息,避免泄露服务器的文件结构信息。
- 限制文件访问:确保应用程序只能访问特定的文件和目录,不允许访问系统文件或配置文件。
- 使用安全函数:使用安全的API函数来处理文件路径,避免使用易受攻击的函数。
- 文件权限管理:为Web应用程序设置合适的文件权限,限制对敏感文件的访问。
- 定期安全审计:定期对应用程序进行安全审计,检查潜在的目录遍历漏洞。
- 使用Web应用防火墙(WAF):部署WAF来识别和阻止目录遍历攻击。
- 用户教育和培训:教育开发人员和系统管理员关于目录遍历攻击的风险和防御措施。
7、Dos攻击(Denial of Service attack)
原理
拒绝服务攻击(Denial of Service,简称DoS)和分布式拒绝服务攻击(Distributed Denial of Service,简称DDoS)是旨在使目标服务器或网络资源耗尽,从而使正常用户无法访问服务的攻击手段。
DoS/DDoS攻击的原理是利用大量的请求或流量淹没目标服务器或网络,使其无法处理合法用户的请求。这些攻击可以通过多种方式实现,包括但不限于:
- 洪水攻击:发送大量流量或请求,如SYN洪水、UDP洪水等。
- 资源耗尽:消耗服务器的CPU、内存、磁盘空间或网络带宽。
- 应用程序层攻击:针对特定应用程序的漏洞或弱点,如SQL注入、XML实体扩展攻击等。
应用场景
-
Web服务器压力测试:
- 攻击者可能针对Web服务器发起DDoS攻击,以测试其承载能力和压力响应。
-
API服务滥用:
- 利用公开API进行大量请求,导致后端服务无法处理正常用户的请求。
-
在线游戏服务:
- 游戏服务器可能因大量虚假玩家或机器人发起的游戏请求而受到攻击。
-
IoT设备网络:
- 利用IoT设备发起的DDoS攻击,因为这些设备通常安全性较差,容易被攻击者利用。
-
云基础设施:
- 云服务可能遭受DDoS攻击,尤其是当多个攻击者协同攻击时,能够对云平台造成巨大压力。
-
DNS服务:
- DNS服务器作为网络解析的关键环节,可能会受到大规模的DNS放大攻击。
-
网络路由器和交换机:
- 攻击者可能通过大量流量淹没网络设备,导致设备无法正常路由或交换数据包。
-
P2P网络:
- 对等网络(P2P)中的节点可能成为DDoS攻击的目标,影响整个网络的通信效率。
-
金融交易平台:
- 金融交易平台可能因大量交易请求而受到攻击,影响正常交易活动。
-
在线教育平台:
- 在线教育平台在高峰时段,如考试或在线授课期间,可能遭受DDoS攻击,影响教学活动。
-
远程工作系统:
- 随着远程工作的普及,相关的VPN和远程桌面服务可能成为DDoS攻击的目标。
-
移动应用服务:
- 移动应用的API和服务端点可能因大量请求而受到攻击,影响用户访问。
防御方法
- 流量监控和过滤:使用入侵检测系统(IDS)和入侵防御系统(IPS)监控和过滤恶意流量。
- 网关和路由器配置:配置网关和路由器以限制流量和阻止可疑数据包。
- 使用CDN:内容分发网络(CDN)可以分散流量,减轻单个服务器的压力。
- CAPTCHA:在敏感操作中使用CAPTCHA验证,区分人类用户和自动化攻击。
- 部署WAF:Web应用防火墙(WAF)可以过滤掉恶意的Web请求。
- 限制资源使用:设置应用程序和服务器的资源使用限制,防止被恶意消耗。
- 建立冗余系统:建立多个服务器和网络路径的冗余,以提高系统的可用性和容错能力。
- 与ISP合作:在遭受大规模DDoS攻击时,与互联网服务提供商(ISP)合作,进行流量清洗。
- 应急响应计划:制定和演练应急响应计划,以便在攻击发生时快速响应。
8、中间人攻击(MITM, Man-in-the-Middle Attack)
原理
MITM攻击通过拦截正常的网络通信数据,并进行数据篡改和嗅探,通信双方通常对此毫无察觉。攻击者可以通过技术手段如Wi-Fi仿冒、ARP欺骗、DNS欺骗等,将自己置于通信链路中,从而实现攻击 。
应用场景
- 公共Wi-Fi:攻击者创建恶意Wi-Fi接入点,用户接入后,所有通信流量被截获 。
- DNS欺骗:攻击者篡改DNS响应,将域名解析为攻击者控制的IP,用户访问伪造的网站,泄露敏感信息如银行账号密码 。
- 邮件劫持:攻击者劫持金融机构邮箱服务器,监控或伪造邮件,诱导用户进行危险操作 。
- SSL劫持:攻击者伪造SSL证书,用户继续访问后,攻击者可解密流量,窃取或篡改数据 。
防御方法
- 不随意连接公共Wi-Fi,连接时使用VPN,保护通信流量 。
- 确保访问HTTPS网站,安装HTTPS Everywhere插件,自动连接到HTTPS网站 。
- 不忽略证书不安全告警,如果产生告警,可能当前网站不安全 。
- 安装并及时更新杀毒软件,防止恶意软件的侵害 。
- 企事业单位部署防火墙和终端安全软件,阻断恶意攻击,并进行安全意识培训 。
- 业务系统采用多因子认证,增加破解难度 。
- 使用SSL证书,加密数据传输,防止数据被窃取或篡改 。
- 警惕钓鱼邮件,不点击邮件中的可疑链接,避免下载恶意软件或被重定向到恶意网站 。
9、服务器端请求伪造(SSRF)
原理
SSRF漏洞通常是由于服务器端提供了从其他服务器应用获取数据的功能,并且没有对目标地址和协议做过滤与限制。攻击者可以通过构造请求,让服务器端发起请求到攻击者指定的地址,这可能包括内网地址或本地文件系统。
应用场景
- 访问内网资源:攻击者可能尝试访问服务器所在内网中无法从外网访问的资源。
- 端口扫描:使用SSRF对内网或本地进行端口扫描,获取服务的banner信息。
- 攻击内网应用:攻击运行在内网或本地的应用程序,如Web应用、数据库等。
- 读取本地文件:利用
file://协议读取服务器上的敏感文件。 - 指纹识别:对内网Web应用进行指纹识别,识别企业内部的资产信息。
防御方法
- 限制协议:仅允许HTTP和HTTPS协议的请求,避免使用其他可能引发SSRF的协议,如
file、dict、gopher等 。 - 限制IP:确保服务器不会对内网IP地址发起请求,避免对内网进行攻击 。
- 限制端口:只允许请求到达Web常用的端口,如80、443、8080、8090 。
- 过滤返回信息:验证远程服务器对请求的响应,避免敏感信息泄露 。
- 统一错误信息:避免用户可以根据错误信息来判断远端服务器的端口状态 。
- 代码审计:定期进行代码审计,确保没有不当的请求发起逻辑。
- 使用安全的库:使用成熟的网络库来处理外部请求,避免使用可能导致SSRF的函数,如PHP中的
curl_exec()和file_get_contents()。
10、DNS劫持
原理
攻击者通过篡改DNS服务器的解析结果,将用户引导到恶意网站或非目标网站。这种攻击可能发生在用户设备、本地网络、ISP网络或DNS服务器等多个环节 。
DNS劫持的实现通常涉及对DNS解析记录的篡改。攻击者可以通过各种手段,如在用户设备上安装恶意软件、通过ARP欺骗等手段篡改本地DNS缓存或配置,或在ISP网络中通过BGP劫持等手段将DNS流量引向恶意DNS服务器 。
应用场景
- 用户设备上的恶意软件篡改本地DNS缓存或配置。
- 本地网络中的攻击者通过ARP欺骗等手段拦截并篡改DNS请求。
- ISP网络中的攻击者通过BGP劫持等手段将DNS流量引向恶意DNS服务器。
- DNS服务器遭受缓存投毒攻击,返回错误的解析结果 。
防御方法
- 使用可靠的DNS解析服务,选择受信任的DNS服务提供商 。
- 设置独立的DNS服务器,以防止DNS劫持攻击 。
- 使用VPN加密互联网流量,通过虚拟通道传输,提高安全性 。
- 增加DNS服务器的数量,提高系统的抗攻击能力 。
- 使用源端口随机性较好的Bind软件,降低DNS缓存投毒攻击的成功概率 。
- 定期更新DNS缓存,清理其中的恶意解析结果 。
- 监控DNS查询和响应,及时发现异常请求和响应 。
11、DNS欺骗(DNS Spoofing)
原理
攻击者通过伪造DNS响应来引导用户访问假冒的网站。这种攻击利用了DNS协议在设计时的安全缺陷。
DNS欺骗的关键在于攻击者能够预测和伪造DNS请求的ID号,通过发送构造好的ARP应答数据包,使得DNS请求数据包被攻击者截获并分析,然后攻击者向目标发送伪造的DNS返回包,该返回包中的域名与IP地址被攻击者控制,导致用户被重定向到恶意网站 。
应用场景
DNS欺骗可以应用于多种场景,例如:
- 攻击者通过控制本地DNS缓存或配置,篡改DNS记录。
- 在公共Wi-Fi环境下,攻击者可能通过ARP欺骗等手段,将自己伪装成网关或DNS服务器,拦截并篡改DNS请求。
- 攻击者通过BGP劫持等手段,在ISP网络中将DNS流量引向恶意DNS服务器。
- DNS服务器遭受缓存投毒攻击,使得服务器返回错误的解析结果 。
防御方法
为防止DNS欺骗,可以采取以下措施:
- 使用DNSSEC协议,通过签名DNS响应来阻止DNS欺骗攻击。
- 为每条请求使用随机查询ID和随机源端口,丢弃重复的转发请求。
- 确保响应中所有区域与请求相符合,例如query ID、name、class和type。
- 监控DNS查询和响应,及时发现异常请求和响应。
- 教育用户提高对DNS欺骗的认识,警惕可疑的电子邮件、链接和网站 。
相关文章:
常见网络攻击方法原理、应用场景和防御方法(一)
目录 1、SQL注入(SQL Injection)原理应用场景防御方法 2、跨站脚本攻击(XSS,Cross-Site Scripting)原理应用场景防御方法 3、跨站请求伪造(CSRF,Cross-Site Request Forgery)原理应用场景防御方法 4、文件上传漏洞原理应用场景防御方法 5、远程代码执行(…...
【leetcode十分钟】覆盖所有点的最少矩形数目(C++思路详解)
思路详解: 0. 题目情境并未限制矩形高度,故矩形数目的判断只和点的横坐标有关 1. 为了不重不漏地考虑到所有点,故笔者选择首先将二维数组中的点按横坐标的大小排序 //说明:本来笔者以为需要自定义sort排序,后来发现…...
【Vue3】默认插槽
【Vue3】默认插槽 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内…...
华清day4 24-7-31
1> 使用父子进程完成两个文件的拷贝 父进程拷贝前一半内容,子进程拷贝后一半内容 子进程结束后退出,父进程回收子进程的资源 /* 使用父子进程完成两个文件的拷贝父进程拷贝前一半内容,子进程拷贝后一半内容 子进程结束后退出ÿ…...
搜维尔科技:Manus VR数据手套-适用于机器人、人工智能和机器学习解决方案
在劳动力短缺和工作环境日益严峻的今天,机器人技术正成为解决这些复杂问题的关键。MANUS™ 手指捕捉技术,结合先进的量子追踪技术,为机器人的精确操作和远程控制提供了准确且先进的解决方案。 技术亮点 实时数据捕捉:通过Quantum…...
知识文库杂志知识文库杂志社知识文库编辑部2024年第12期目录
文艺理论 现代高校书院对中国传统书院学术精神的汲取与转化 李奥楠;时新洁; 1-4 个案工作介入高中美术艺考生及家长心理调适的应用研究 魏星; 5-8《知识文库》投稿:cn7kantougao163.com 中华优秀传统文化视角下高校美育课程实践教学 李丛丛; 9-12 基…...
【Linux网络编程】套接字Socket
网络编程基础概念: ip地址和端口号 ip地址是网络协议地址(4字节32位,形式:xxx.xxx.xxx.xxx xxx在范围[0, 255]内),是IP协议提供的一种统一的地址格式,每台主机的ip地址不同,一个…...
es之must、filter、must_not、should
文章目录 概述mustfiltermust_notshouldmust和filter的区别 概述 在Elasticsearch中,布尔查询(bool query)是构建复杂查询的基本工具。它允许你组合多个查询子句,每个子句可以使用不同的逻辑操作符。常见的逻辑操作符包括 must、…...
RocketMQ消息发送基本示例(推送消费者)
消息生产者通过三种方式发送消息 1.同步发送:等待消息返回后再继续进行下面的操作 同步发送保证了消息的可靠性,适用于关键业务场景。 2.异步发送:不等待消息返回直接进入后续流程.broker将结果返回后调用callback函数,并使用 CountDownLatch计数 3.单向发送:只…...
23 MySQL基本函数、分组查询、多列排序(3)
上一篇「22 B端产品经理与MySQL基本查询、排序(2)」了解了基本的常识和基本查询以及单列排序。下面介绍常见的基本函数、分组查询以及多列排序: 基本函数 user表 (注:以下SQL语句示例全部基于下面「user表」) uidunamedepiduag…...
PHP与SEO,应用curl库获取百度下拉关键词案例!
编程语言从来都是工具,编程逻辑思维才是最重要的,在限定的规则内,实现自己的想法,正如人生一样! 不管是python还是php只要掌握了基础语法规则,明确了实现过程,都能达到想要实现的结果࿰…...
MySQL:子查询
MySQL 子查询 MySQL中的子查询是一个强大的功能,子查询是指在一个查询语句中嵌套另一个查询语句的情况。嵌套查询中的内部查询语句可以使用外部查询语句的结果来进行过滤、联接或作为子查询的值,它允许我们在一个查询内部嵌套另一个查询。通过子查询可以…...
C++—— IO流
一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()和printf()。 scanf():从标准输入设备(键盘)中读取数据,并将值存放在变量中。 printf():将指定的文字/字符串输出到标准输出设备(…...
vue+node后台处理大文件切片上传--前端部分
本文主要介绍,在vue3vite项目下,如何进行有效的大文件上传,本文章主要讲大文件切片上传方式,并提供简单的demo代码供参考 首先,请确保已经创建好项目,这一步跳过。 1、为了选择合适的文件,我们…...
【通俗理解】艺术与数学交融
【通俗理解】艺术与数学交融 艺术与数学的奇妙交融 你可以把艺术比作一个“梦幻花园”,它充满了无限的可能性和美感。而数学则是一把“精密钥匙”,它能够解开花园中的秘密,揭示美的内在结构。 艺术与数学交融的核心作用 组件/步骤描述艺术表…...
深入探讨 Docker 容器文件系统
引言 随着云计算和微服务架构的兴起,Docker 容器技术迅速成为开发和运维人员的首选工具。Docker 容器不仅提供了一种轻量级的虚拟化方式,还简化了应用程序的部署和管理。在众多的技术细节中,Docker 容器文件系统是一个至关重要的组成部分。本…...
《LeetCode热题100》---<4.子串篇三道>
本篇博客讲解LeetCode热题100道子串篇中的三道题 第一道:和为 K 的子数组 第二道:滑动窗口最大值 第三道:最小覆盖子串 第一道:和为 K 的子数组(中等) 法一:暴力枚举 class Solution {public in…...
全国区块链职业技能大赛样题第9套前端源码
后端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746050 前端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746216 智能合约+数据库表设计:https://blog.csdn.net/Qhx20040819/article/details/140746646 登录 用户管理...
如何提高编程面试成功率:LeetCode Top 100 问题及解答解析(详细面试宝典)
以下是 LeetCode Top 100 面试必备题目及其解决方案示例。这些题目涵盖了数据结构、算法、动态规划、回溯等多种重要的面试话题。希望各位同学有所收货,早日脱离底层到达彼岸! 1. Two Sum 题目: 给定一个整数数组 nums 和一个目标值 target,…...
K-近邻和神经网络
K-近邻(K-NN, K-Nearest Neighbors) 原理 K-近邻(K-NN)是一种非参数分类和回归算法。K-NN 的主要思想是根据距离度量(如欧氏距离)找到训练数据集中与待预测样本最近的 K 个样本,并根据这 K 个…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
