XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

实战要求下,如何做好资产安全信息管理

发表于 2024-04-09 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 2.5k | 阅读时长 ≈ 8

“摸清家底,认清风险”做好资产管理是安全运营的第一步。本文一起来看一下资产管理的重要性、难点痛点是什么,如何做好资产管理,认清风险。

一、资产安全信息管理的重要性

安全风险管理的三要素分别是资产、威胁和脆弱性,脆弱性的存在将会导致风险,而威胁主体利用脆弱性产生风险。网络攻击主要利用了系统的脆弱性。由于网络管理对象(资产)自身的脆弱性,使得威胁的发生成为可能,从而造成了不同的影响,形成了风险。什么是网络安全资产参见《网络安全之资产及攻击面管理》

首先,网络安全资产管理有助于降低网络风险。通过对公司网络资产进行识别和分类,包括硬件设备、软件系统、数据等,可以更好地进行后续的安全措施和决策,从而最大程度地减少网络风险和避免潜在的安全漏洞。这对于保护企业的核心业务和数据安全至关重要,有助于防止数据泄露、非法访问和业务中断等风险事件的发生。

其次,网络安全资产管理是高质量安全管理与运营的基础。良好的资产管理能够有效支撑互联网暴露面收敛、安全漏洞修复与验证、威胁检测与分析、安全事件响应与处置等日常安全运营与攻防对抗中的关键活动。这不仅可以提高网络安全的防御能力,还可以为企业的日常安全管理和运营工作带来极大的便利。

此外,网络安全资产管理也有助于满足法规和合规要求。随着网络安全法规的不断完善和监管力度的加强,企业需要确保其网络资产符合相关法规和政策要求,避免违法违规行为的发生。通过网络安全资产管理,企业可以系统地管理网络资产,确保合规性,降低因违反法规而带来的潜在风险。

二、资产安全信息管理的痛点

随着企业数字化转型进程的不断加速,IT系统安全资产数量增长迅猛。与此同时,云计算、大数据等各种新技术应用也使得安全资产类型日益复杂多样。传统的安全资产管理方式难以适应新环境要求,主要面临如下问题:

  1. 安全资产覆盖面广,梳理工作量巨大
    安全资产管理的对象包括与IT系统运行相关的主机/虚机、容器、中间件、数据库、大数据组件、WEB应用、WEB框架、网络设备、安全设备等其它应用软件。安全资产分布范围广、种类繁多、属性各异、关系复杂,面对这么多的安全资产对象,传统的填表梳理方式需要投入大量的人力,而且效果极差。
  2. 台账不清晰,无法为安全资产风险治理提供有效输入
    人工的梳理方式同时也带来大量的安全资产遗漏、属性缺失、资产归属关系不清、安全资产数据碎片化严重等问题,很难形成完整的安全资产台账与暴露面台账,无法为安全资产风险治理与防护提供支撑。
  3. 安全资产更新不及时,无法对变更进行及时监控与预警
    缺乏动态的资产更新机制,不能及时发现安全资产的变更情况,例如互联网暴露面端口的开通、恶意应用软件的安装、高危WEB插件的应用等,无法及时对安全资产进行风险预警与防范。
  4. 缺乏安全资产运营的机制和流程保障,安全资产管理成效差
    没有建立规范的安全资产运营机制与流程,安全资产管理工作存在着职责不清、管理制度缺乏、安全资产管理工作无法有条不紊地进行等问题,最终导致安全资产纳管随意、安全资产管理成效差,安全资产风险处置无法有的放矢。

三、如何做好资产安全信息管理

以下梳理了资产安全信息管理的运营管理事项
资产安全信息管理事项

1、提升资产安全信息自动化、集约化管理能力,做到资产全过程管理

管理措施:
1)集约化统一纳管
随着数字化应用的深入,资产分布在多个数据中心、私有云、公有云、混合云、边缘计算和物联网等各种基础设施环境中,照成了资产信息割裂碎片化,给资产的统一管理带来了困难。为了看到全局的资产信息,有必要实现资产安全信息的自动化、集约化管理,将资产安全管理纳入云主虚机分配、IP 地址申请等流程,打通资产安全管理平台与云管平台、各专业网管系统等 平台接口,将资产安全信息通过接口采集至资产安全管理平台, 确保云网资产安全信息自动化、集约化的统一纳管。
2)资产信息全过程管理
资产的全生命周期覆盖资产上线、资产运行、资产下线,在这过程中要对资产进行定级备案、对资产的台账进行维护、对资产进行风险评估、对资产进行定期的清查。参考《安全运营之资产安全信息管理》。
在资产上线阶段,组织开展Agent安装、资产信息同步、资产安全管理平台信息确认,提升新增资产入网的规范性;在资产入网运营阶段,结合网络部门IP地址分配清单,通过网络空间测绘、IP扫描、流量监测等技术定期开展资产清查,对发现的未知IP地址开展溯源、认领等资产核查工作;在资产下线退网阶段,及时清理资产安全管理平台基本信息、IP地址备案、云管平台等资产分配管理系统数据。
运营指标:
关键的运营指标包括:纳管的资产类型、各类型资产数、Agent的安装率、资产信息准确率、安全资产脱管率(Agent被卸载或失效)、“三无”资产数等。

2、做好资产的安全风险识别

管理措施:
对本单位管理的资产和安全事件进行关联、分析、展示和管理;
对本单位管理的资产和脆弱性进行关联、分析、展示和管理;
按期开展风险评估和符合性评测,使用定量或定性的风险评估模型,结合资产价值、威胁可能性和脆弱性暴露程度进行计算风险等级,对本单位资产风险情况进行动态管理。
运营指标:
关键的运营指标包括:资产漏洞数、漏洞影响资产数、资产被攻击数、资产被攻击趋势、资产风险值等。

3、做好互联网暴露面的测绘与管空

管理措施:
1)开通审批,应按“非必须不开通”、“先审批后开通”原则管控互联网暴露资产。开通前应由需求单位开展必要性评估,安全运营维护单位完成系统安全加固和问题整改,安全运营支撑单位开展风险评估,安全运营归口管理单位审核。
2)统一管理,对互联网暴露面资产数据进行统一管理,应对互联网暴露资产进行清单制管理,安全运营支撑单位应至少每月开展一次暴露资产探测和自有网站备案情况自查,安全运营维护单位及时整改相关问题。对未经审批上线的互联网暴露资产责任到人。
3)定期测绘,基于本单位企业指纹和暴露面地址段定期进行互联网暴露面测绘。安全运营支撑单位至少每月开展一次互联网暴露资产安全风险评估,包含安全防护策略有效性核实、全 IP 和端口漏洞扫描、渗透测试和基线配置合规率核查等。系统发生代码更新或版本升级时,安全运营维护单位应重新开展安全风险评估。
4)下线更新,互联网暴露资产下线阶段,系统维护单位应及时发起相关资源的下线申请,在互联网暴露资产关停后 15 日内完成资产安全管理平台的信息更新。
运营指标:
关键的运营指标包括:互联网暴露的系统数、互联网暴露面审批数、互联网暴露的URL数、互联网暴露的端口数、互联网暴露的APP、互联网暴露面趋势等。

4、做好资产安全信息的动态稽核管理

管理措施:
1)对内网资产资源自动化测绘,对未纳管资产的扫描和识别,应至少每季度开展一次资产探测,识别并推进“三无”资产下线。
2)定期对资产数据进行稽核,确保定级备案资产信息和资产安全管理平台、4A 系统资产信息一致。
运营指标:
关键的运营指标包括:“三无”资产数、未纳管资产数、资产信息准确率等。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

什么是HW,企业如何进行HW保障?

发表于 2024-04-07 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 2.8k | 阅读时长 ≈ 9

一、什么是HW

网络安全形势近年出现新变化,网络安全态势变得越来越复杂,黑客攻击入侵、勒索病毒等网络安全事件愈演愈烈,严重威胁到我国的网络空间安全。同时,国内不少关键信息基础设施的建设管理单位安全意识不够、安全投入不足,面临网络安全保护的巨大挑战,让国家关键信息基础设施成为网络攻击的重灾区。

护网行动是由公安部牵头,针对全国范围的真实网络目标单位进行的一种网络安全攻防演练。这种行动的主要目的是评估企事业单位的网络安全防护能力和水平,发现可能存在的安全漏洞,并提升相关人员的网络安全意识和应对能力。

在护网行动中,公安部会组织攻防两方,其中进攻方会在特定的时间内对防守方发动网络攻击,通过模拟真实的网络威胁来检验防守方的网络安全防护措施是否有效。这种实战化的演练有助于企事业单位更好地了解自身的网络安全状况,从而有针对性地加强防护措施。
护网行动是一种积极、有效的网络安全防护措施,它通过实战化的演练来提升网络安全防护能力,确保网络系统的安全和稳定。

二、HW行动具体采取了哪些攻防演练措施

护网行动采取了多种攻防演练措施,以模拟和应对网络攻击,从而提升网络安全防护能力。以下是一些具体的攻防演练措施:

  1. 制定演练计划:明确演练的目标、参与人员、时间和场地,为演练准备必要的设备、工具和系统环境。
  2. 设定演练情景:设定模拟黑客攻击、内部威胁、网络故障等演练情景,这些情景通常包括不同类型的攻击技术和威胁,以全面检验网络系统的防御能力。
  3. 实施攻防演练:根据设定的情景,模拟攻击者进行攻击,挑战网络安全防御能力。同时,团队成员需要响应并采取相应的应对措施,以检验和锻炼他们的响应和处置能力。
  4. 攻击分析和演练评估:记录并分析攻击过程,对攻击行为进行深入剖析。同时,评估团队的反应和应对能力,发现并修复存在的漏洞和弱点。
  5. 总结和改进:总结演练结果,包括表现出色的方面和需要改进的方面,并制定改进措施和行动计划,以加强网络安全防御。

这些措施旨在通过实战模拟,全面检验和提升网络系统的安全防护能力,确保在面对真实网络攻击时能够迅速、有效地进行应对。同时,护网行动还促进了网络安全团队的协作和沟通,提升了整体的安全意识和应对能力。

需要注意的是,攻防演练过程中需要确保参与者的安全和免受损害,避免演练本身对网络系统造成不必要的风险。因此,在演练过程中需要严格遵守安全规定和操作流程,确保演练的顺利进行和目标的达成。

三、攻击方一般的攻击流程和方法

HW攻防演练的安全评价关注点已经从安全防护投入过渡到讲究实战效果,拒绝纸上谈兵,直接真枪实战。
攻击方一般目标明确、步骤清晰。

目标明确: 攻击者只攻击得分项,和必要路径(外网入口,内网立足点),对这些目标采取高等级手段,会隐蔽操作;对非必要路径顺路控制下来的服务器,并不怕被发现,用起来比较随意,甚至主动制造噪音,干扰防守方。

步骤清晰: 信息收集-控制入口-横向移动-维持权限-攻击目标系统。

攻击流程:
攻击流程

攻击手法:
攻击手法

四、企业HW保障方案

企业护网安全保障是一个多层次、多方面的综合性任务,涉及技术、管理、人员培训等多个环节。以下是一些关键措施,可以帮助企业加强护网安全保障:
护网一体化保障

1.建意识

护网安全意识培训是一项至关重要的工作,它旨在提升个人和组织对网络安全的认识和应对能力,从而保护个人隐私、企业数据以及整个网络环境的安全。
首先,培训应涵盖网络安全的基本概念、原则和特点,包括密码安全、网络钓鱼、恶意软件等。这有助于人们理解网络安全的重要性,以及如何在日常生活中识别和防范网络威胁。
其次,培训内容应根据不同岗位的需求进行个性化设计。例如,对于IT人员,可以强调网络漏洞扫描和安全配置等专业技能;而对于普通员工,则应重点强调密码安全、社交工程攻击的防范等基础知识。
此外,培训内容还需与最新的网络威胁和漏洞保持同步,确保培训的实用性和时效性。这有助于人们了解最新的网络攻击手法和防范措施,从而更有效地应对网络威胁。
企业需要向员工提供网络安全意识培训,使他们了解各种网络威胁和攻击方式,并知道如何避免和应对这些威胁。包括护网技能的培训,通过模拟黑客攻击等场景,让员工在实际操作中学习和掌握网络安全技能。

2.摸家底

护网资产梳理是缩小攻击面的关键步骤,有助于企业更好地了解自身的网络安全状况,从而制定更有效的安全防护策略。
首先,明确资产梳理的目标和范围。这包括确定需要梳理的资产类型,如硬件资产、软件资产、数据资产等,以及梳理的深度和广度。通过明确目标和范围,可以确保资产梳理工作的针对性和有效性。梳理互联网类业务、暴露面、中间件、业务管理后台、供应链、 WIFI、VPN、安全意识、终端等边界突破点,实施清查和管控,缩小攻击面。
其次,收集资产信息并建立清单。通过收集资产的详细信息,如IP地址、设备名称、操作系统、数据库类型等,可以建立全面的资产清单。这有助于企业对自身的资产进行清晰的了解,并为后续的安全评估和风险分析提供基础数据。

3.固城池

护网行动中的安全检测和整改加固是确保企业网络安全的重要环节。通过安全检测,可以发现潜在的安全隐患和漏洞,而整改加固则是针对这些问题采取具体的措施,以提升网络安全防护能力。
在安全检测方面,可以采取多种手段,如渗透测试、漏洞扫描、代码审查等。渗透测试通过模拟黑客的攻击方式来评估系统的安全性,发现潜在的漏洞和薄弱点。漏洞扫描则是使用自动化工具扫描网络和系统,识别存在的安全漏洞,并提供修补建议。代码审查则是对软件代码进行详细的审核和分析,以发现可能的安全漏洞。
在进行安全检测后,需要根据检测结果制定整改加固方案。整改加固措施可能包括强化设备访问控制、安装防火墙和入侵检测系统、建立虚拟专用网络(VPN)、限制网络服务和端口等。此外,加强用户身份认证也是关键的一环,包括强化密码策略、使用多因素身份认证、建立访问权限管理机制等。

4.配神器

配置相应的有效防护技防手段,“护网神器”通常指的是一系列网络安全产品和解决方案,它们被设计用来保护企业的网络系统免受各种网络攻击的威胁。这些神器能够检测和防御各类网络攻击,包括但不限于病毒、木马、黑客攻击、钓鱼网站等。它们通过采用先进的技术手段如:动态防护、下一代防火墙、态势感知平台、SOAR等。进行实时监控和预警、智能防御和攻击溯源、高效的自动处置等。
实时监控和预警:通过部署流量探针、EDR、态势感知平台等建立监控手段实时监控网络流量和用户行为,一旦检测到异常或可疑活动,立即发出预警,提醒管理员进行处置。
智能防御和攻击溯源:通过部署下一代防火墙、动态防护设备等平台建立智能防御功能,能够自动识别和阻断攻击行为。同时,它还能对攻击进行溯源,帮助管理员定位攻击源头,采取相应的措施进行防范。
高效快速处置:通过部署SOAR,能够针对实时监控发现的安全告警事件,通过实战化的剧本来联动人员、流程、安全设备进行快速的研判和阻断。

5.增值守

在护网行动中,增加监控值守是一项重要的举措,7*24小时监控值守可以帮助企业实时了解网络系统的运行状态和安全状况。通过对网络流量、系统日志、用户行为等进行实时监控,可以及时发现异常和可疑活动,从而迅速采取措施进行处置。
为了增加监控值守的有效性,企业可以采取以下措施:

  • 建立专门的监控团队,负责网络系统的实时监控和安全事件的处置。
  • 配置先进的监控设备和软件,确保能够全面、准确地收集和分析网络数据。
  • 制定完善的监控流程和规范,确保监控工作的有序进行。
  • 加强监控人员的培训和教育,提高其专业技能和应对能力。

博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

数据安全之认识数据库防火墙

发表于 2024-04-03 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3.7k | 阅读时长 ≈ 12

随着信息技术的快速发展,数据库已成为企业信息化建设的核心组成部分,存储着大量的关键业务数据和敏感信息。与此同时,数据库也面临着来自内部和外部的各种安全威胁和攻击,如SQL注入、未授权访问、数据泄露等。为了保护数据库的安全性和完整性,传统的安全措施如防火墙、入侵检测系统等在一定程度上起到了作用。然而,这些措施往往只关注于网络层面的安全防护,而缺乏对数据库应用层面的深入保护。因此,针对数据库的安全防护需求,数据库防火墙应运而生。

一、什么是数据库防火墙

数据库防火墙是一种基于数据库协议分析与控制技术的安全防护系统,它串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题。通过实时监控和分析数据库的访问行为,数据库防火墙能够识别并阻断恶意攻击和未经授权的访问,保护数据库的敏感数据和业务逻辑不被篡改和泄露。它可以有效防护数据库免受各种安全威胁和攻击,如SQL注入攻击等。通过主动防御机制,确保数据库的安全性和完整性,防止数据泄露和非法访问等风险。

二、数据库防火墙的主要功能

数据库防火墙具备多种功能,旨在保护数据库免受各种潜在的安全威胁和攻击。以下是数据库防火墙的主要功能:

  1. 访问控制:数据库防火墙能够识别并控制对数据库的访问行为。通过设定精细化的访问控制策略,防火墙可以限制只有经过授权的用户或应用程序才能访问数据库,从而防止未经授权的访问和数据泄露。
  2. SQL注入防护:数据库防火墙具备强大的SQL注入防护能力。通过对输入数据进行验证和过滤,防火墙能够识别和阻止包含恶意SQL代码的输入,从而防止攻击者利用SQL注入漏洞对数据库进行攻击。
  3. 威胁检测和告警:数据库防火墙能够实时监控数据库的访问行为,并检测任何可疑或异常的活动。一旦发现潜在的威胁或攻击行为,防火墙会立即触发告警,通知管理员采取相应的安全措施,从而及时应对安全风险。
  4. 数据泄露防护:数据库防火墙可以监控和审计数据库的敏感数据访问行为,防止敏感数据被非法获取或滥用。通过设定敏感数据保护策略,防火墙能够限制对敏感数据的访问权限,并记录相关访问行为,确保数据的安全性和隐私性。
  5. 虚拟补丁功能:对于已知的数据库漏洞,数据库防火墙能够提供虚拟补丁功能。即使在实际的物理补丁发布之前,防火墙也可以通过配置规则来模拟补丁的效果,从而及时修补漏洞,提高数据库的安全性。
  6. 审计和日志记录:数据库防火墙能够记录所有的数据库访问行为和事件,包括正常的访问请求、异常活动以及安全事件等。这些日志记录可以用于后续的审计和安全分析,帮助管理员识别潜在的安全风险、追踪攻击来源,并为安全事件调查提供证据。

数据库防火墙具备访问控制、SQL注入防护、威胁检测和告警、数据泄露防护、虚拟补丁功能以及审计和日志记录等多种功能,能够全面提升数据库的安全性,保护数据库免受各种安全威胁和攻击。

三、数据库防火墙的工作原理

数据库防火墙的工作原理主要是基于一系列复杂的技术和策略,旨在确保数据库的安全性和完整性。其主要工作原理:

  1. 流量监控与分析:数据库防火墙首先会对进入数据库的流量进行实时监控和分析。这包括识别SQL语句,检查它们的来源、目的地以及内容。防火墙会分析这些SQL语句,以判断它们是否可能是恶意攻击的一部分。
  2. 访问控制:基于流量分析结果,防火墙会实施访问控制策略。这意味着它会根据预设的规则来决定是否允许某个特定的用户或应用程序访问数据库。只有符合特定条件的请求才会被允许通过。
  3. 恶意代码与攻击检测:防火墙会检测SQL流量中是否存在恶意代码或攻击模式。这包括常见的SQL注入攻击、缓冲区溢出攻击等。一旦检测到这些恶意行为,防火墙会立即采取措施,如阻断攻击者的访问或触发告警。
  4. 虚拟补丁功能:针对已知的数据库漏洞,防火墙提供了虚拟补丁功能。这意味着即使在实际的物理补丁发布之前,防火墙也可以通过配置规则来模拟补丁的效果,从而保护数据库免受利用这些漏洞的攻击。
  5. 审计与日志记录:防火墙会记录所有与数据库相关的访问行为和事件。这些日志记录包括成功和失败的访问尝试、异常行为、告警触发等。这些日志对于后续的审计和安全分析至关重要,可以帮助管理员了解数据库的安全状况,及时发现潜在的安全风险。
  6. 实时告警与响应:一旦防火墙检测到潜在的安全威胁或攻击行为,它会立即触发告警通知管理员。管理员可以根据告警信息采取相应的响应措施,如调查攻击来源、封锁攻击者的IP地址等。

总的来说,数据库防火墙通过实时监控、分析、控制和审计数据库的访问行为,为数据库提供了一道坚固的安全屏障。它结合了多种安全技术和策略,确保数据库免受各种恶意攻击和未经授权的访问。

四、数据库防火墙如何防护数据库免受SQL注入攻击

数据库防火墙通过一系列的技术和策略,可以有效地防护数据库免受SQL注入攻击。以下是数据库防火墙如何防护数据库免受SQL注入攻击的主要方法:

  1. 访问行为控制:数据库防火墙能够识别并控制对数据库的访问行为。通过设定规则,防火墙可以限制只有经过授权的用户或应用程序才能访问数据库,从而阻止潜在的恶意用户或应用程序尝试进行SQL注入攻击。
  2. 输入验证和过滤:数据库防火墙能够对输入到数据库中的数据进行验证和过滤,防止恶意用户通过输入恶意的SQL代码来实施注入攻击。防火墙会检查输入数据的有效性,过滤掉可能包含恶意SQL语句的输入,确保只有合法的数据才能被传递给数据库。
  3. 威胁检测和响应:数据库防火墙具备威胁检测和响应能力,能够实时监控数据库的访问行为,并检测任何可疑或异常的活动。一旦发现SQL注入攻击的迹象,防火墙会立即采取相应措施,如阻断攻击者的访问、记录攻击行为、触发警报等,从而防止攻击者进一步利用SQL注入漏洞对数据库进行破坏。
  4. 虚拟补丁功能:对于已知的数据库漏洞,数据库防火墙提供虚拟补丁功能。即使在实际的物理补丁发布之前,防火墙也可以通过配置规则来模拟补丁的效果,从而防止攻击者利用这些漏洞进行SQL注入攻击。
  5. 审计和日志记录:数据库防火墙还能够记录所有的数据库访问行为和事件,包括可能的SQL注入攻击尝试。这些日志记录可以用于后续的审计和安全分析,帮助管理员识别潜在的安全风险并采取相应的措施。

数据库防火墙通过访问行为控制、输入验证和过滤、威胁检测和响应、虚拟补丁功能以及审计和日志记录等多种手段,可以有效地防护数据库免受SQL注入攻击。

五、数据库防火墙的部署方式

数据库防火墙技术是针对关系型数据库保护需求应运而生的一种数据库安全主动防御技术。它部署于应用服务器和数据库之间,用户必须通过该系统才能对数据库进行访问或管理。这种主动防御技术能够主动监测和防护数据库的安全。

数据库防火墙部署图

数据库防火墙部署图

数据库防火墙支持多种部署模式,包括透明网桥模式、代理接入模式、旁路部署模式以及虚拟化部署等,以适应不同的网络环境和安全需求。

六、数据库防火墙与网络防火墙的关系与区别

数据库防火墙与网络防火墙在网络安全领域各自扮演着重要的角色,但它们的目标、部署位置、防护对象以及功能等方面存在显著的区别。

首先,从目标和防护对象来看,网络防火墙主要关注的是网络层面的安全防护,防止未经授权的访问和恶意攻击从外部网络进入内部网络。它部署在网络边界,对所有流入流出的网络通信进行扫描和过滤,以阻止潜在的攻击。而数据库防火墙则更专注于数据库层面的安全防护,它部署在数据库服务器前端,对SQL流量进行实时监控和分析,以检测和防止对数据库的恶意攻击和未经授权的访问。数据库防火墙的目标是保护数据库的完整性和安全性,防止数据泄露、篡改等风险。

其次,在功能方面,网络防火墙主要通过过滤网络通信、关闭不使用的端口、禁止特定端口的流出通信、封锁木马以及禁止来自特定站点的访问等方式来加强网络安全。而数据库防火墙则具备更细粒度的控制功能,它能够对数据库流量进行详细的分析,并根据预设的规则对SQL语句进行检测与过滤,避免SQL注入攻击等威胁。此外,数据库防火墙还提供安全性/合规性支持,进行完整的安全审计跟踪,并支持多种合规性标准。

此外,数据库防火墙还具有数据脱敏功能,可以对敏感数据进行处理,避免直接泄露。而网络防火墙则不具备这样的功能。

由此可以看出,网络防火墙和数据库防火墙在网络安全领域各自发挥着不可替代的作用。网络防火墙是网络安全的第一道防线,而数据库防火墙则是对数据库安全进行深度防护的关键手段。在实际应用中,两者可以相互配合,共同构建一个更加安全、可靠的网络环境。

七、数据库防火墙的应用场景

数据库防火墙的应用场景相当广泛,主要涉及到数据库的安全防护和风险管理。关键的应用场景包括:

  1. 数据库入侵防御:数据库防火墙部署在应用服务器和数据库服务器之间,防止外部黑客通过SQL注入、未授权访问等手段入侵数据库。它能够对进入数据库的流量进行实时监控和分析,识别和阻断恶意攻击,保护数据库的完整性和安全性。
  2. 数据库运维管控:数据库防火墙可以作为内部数据库运维的接口,对运维人员的操作进行细粒度的权限控制。通过设定精确的权限策略,防止运维人员执行高危操作、敏感数据泄漏或越权访问,降低因误操作引发的安全风险。
  3. 内外网隔离:数据库防火墙可以作为唯一的内网接入通道,替代传统的防火墙、IDS和IPS产品,实现安全的数据库通讯。它能够有效隔离内外网,阻止未经授权的访问和恶意攻击,确保数据在传输过程中的安全性。
  4. 合规性要求满足:数据库防火墙在多个方面,如漏洞和风险管理、资产管理、网络和系统安全管理、访问控制、个人信息保护等,都符合公安部等保和各行业规范的安全合规要求。它能够帮助企业发现违规的数据库操作,如批量导出数据引发的数据泄露等,并提供有效的风险安全防护。

除此之外,数据库防火墙还可以应用于非授权人员通过应用系统非法登录数据库的场景,通过对其操作进行监控和阻断,防止敏感数据的篡改或盗取。数据库防火墙在保护数据库安全、防止数据泄露和满足合规性要求等方面发挥着重要作用,是企业信息化建设中不可或缺的安全防护手段。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全产品之认识4A统一安全管理平台

发表于 2024-03-28 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3.1k | 阅读时长 ≈ 10

随着业务网的发展,网络规模迅速扩大,安全问题不断出现。传统的账号口令管理、访问控制及审计措施已无法满足企业业务发展的需求。过去每个业务网系统常常各自维护一套用户信息数据,这种方式使得管理变得复杂且难以统一。同时,孤立地以日志形式审计操作者在系统内的操作行为,也使得审计过程变得繁琐和低效。

因此,4A统一安全管理平台解决方案应运而生。这个解决方案将不同应用、业务过程、后端系统、服务和信息、知识等内容集成到一个软件系统平台内,从而实现了账号管理、认证管理、授权管理和安全审计的集中化、统一化管理。4A系统的诞生是对企业内部安全管理需求的直接回应,是为了解决传统安全管理方式中的不足,提高企业网络安全性、降低管理成本并强化系统安全性和政策符合性。

一、什么是4A统一安全管理平台

4A统一安全管理平台是一个以身份为中心,实现帐号、认证、授权和审计统一管控的安全访问平台。它可为企业IT系统提供综合安全防护,其核心目的是提高系统的安全性、管理效率和用户访问的便捷性。

其核心包括账号(Account)管理、认证(Authentication)管理、授权(Authorization)管理和安全审计(Audit)。这一系统为企业IT系统提供综合安全防护,通过集中的帐号管理、身份认证、授权管理和安全审计等功能,为企业提供强健的、基于统一策略的解决方案,解决企业内控等问题,降低管理成本,提高系统安全性和政策符合性。

二、4A统一安全管理平台的主要功能

4A统一安全管理平台其核心包括账号(Account)管理、认证(Authentication)管理、授权(Authorization)管理和安全审计(Audit)。具体而言,该平台实现了以下功能:

  1. 帐号管理:提供统一的帐号管理功能,支持主流的操作系统、网络设备和应用系统。这包括帐号的全生命周期管理,如创建、删除及同步等,以及帐号密码策略、密码强度、生存周期的设定。
  2. 认证管理:根据用户应用的实际需要,提供不同强度的认证方式,如静态口令、双因子认证(一次性口令、数字证书、动态口令)等,并且能够集成现有其他新型认证方式,如生物特征等。此外,还可以实现用户认证的统一管理,并提供统一的认证门户,实现企业信息资源访问的单点登录。
  3. 授权管理:集中管理系统资源和应用资源的权限,实现权限的统一展现、收集、变更和回收。
  4. 审计管理:全面记录用户的登录行为和操作行为,基于场景的异常行为分析,实现对大量日志的有效审计。

此外,4A统一安全管理平台还建立了“自然人账号——资源——资源账号”的对应关系,实现自然人对资源的统一授权。同时,对授权人员的运维操作进行记录、分析、展现,加强了内部业务操作行为监管,避免了核心资产在运维管理环节中的损失,保障了业务系统的正常运营。

三、4A统一安全管理平台的工作原理

4A系统的工作原理主要围绕账号(Account)、认证(Authentication)、授权(Authorization)和审计(Audit)四个核心组件展开,为企业IT系统提供统一的安全管理。
首先,4A系统负责账号的全生命周期管理,包括账号的创建、修改、删除等,以及密码策略的制定和执行。这一环节确保了用户账号的规范性和安全性。
其次,在认证阶段,4A系统通过采用多种认证方式(如静态口令、动态令牌、生物特征识别等),对用户身份进行验证,确保只有合法的用户才能访问系统。
授权环节是4A系统的核心功能之一。它根据用户的角色和权限,为用户分配相应的访问和操作权限。通过细粒度的权限管理,4A系统能够实现对关键资源和敏感数据的保护,防止未经授权的访问和操作。
最后,在审计环节,4A系统记录并分析用户的登录、操作等行为,为安全事件溯源和责任追究提供有力支持。同时,通过对审计数据的分析,企业可以及时发现潜在的安全风险,并采取相应的措施进行防范。
此外,4A系统通常还具备与其他安全设备和系统的集成能力,如与防火墙、入侵检测系统(IDS)、安全事件管理系统(SIEM)等进行联动,共同构建企业网络安全防线。
4A系统工作原理通过账号管理、身份认证、授权控制和安全审计等功能,实现了对企业IT系统的统一安全管理,提升了企业的网络安全防护能力。

四、4A系统与堡垒机的区别与关系

4A系统和堡垒机在网络安全领域都扮演着重要的角色,但它们各自具有不同的功能和定位。

4A系统是一个统一的安全管理平台解决方案,其核心组件包括账号(Account)管理、认证(Authentication)管理、授权(Authorization)管理和安全审计(Audit)。它旨在为企业IT系统提供综合安全防护,通过集中的帐号管理、身份认证、授权管理和安全审计等功能,解决企业内控等问题,降低管理成本,提高系统安全性和政策符合性。4A系统提供了一种集中统一的管理方式,侧重于身份管理,确保只有经过授权的用户才能访问系统资源。

堡垒机,也被称为“跳板机”或“跳板服务器”,是一种网络安全设备。其主要功能是管理和监控访问计算机网络的用户,尤其是那些需要对关键系统进行管理或维护的人员。堡垒机具有访问控制、会话监控、远程管理和权限管理等功能,能够防止未经授权的访问和潜在的网络入侵,确保用户只能访问其工作需要的资源。堡垒机起源于旁路审计产品,通过接管终端对资源的访问,在审计的同时还能对操作命令进行细粒度管控,提供了资源运维统一入口,其本质是提供资源运维统一入口,侧重于运维和审计。

两者在功能上存在明显区别,但又具有一定的关联性。从核心能力来看,4A对外输出的是身份和访问管理能力,堡垒机对外输出的是运维管控能力。在企业的网络安全架构中,4A系统主要负责对身份和访问进行统一管理,而堡垒机则作为能力组件,接收并执行4A系统制定的策略。两者协同工作,共同提升企业的网络安全水平。

五、如何在4A平台上实施帐号和认证的一体化管理

在4A平台上实施帐号和认证的一体化管理,通常涉及以下几个关键步骤:

  1. 帐号整合与标准化:首先,需要将所有分散在各个系统和应用中的帐号整合到4A平台中,确保所有帐号信息的集中管理。同时,制定统一的帐号命名规范、密码策略等,确保帐号信息的一致性和安全性。
  2. 单点登录(SSO)实施:为了实现帐号和认证的一体化管理,单点登录是不可或缺的功能。通过配置单点登录系统,用户可以只需一次登录即可访问多个系统和应用,无需在每个系统中分别输入帐号和密码。这大大提高了用户的使用便捷性,同时也降低了密码泄露的风险。
  3. 多因素认证集成:为了提高认证的安全性和可靠性,可以集成多因素认证方式。除了传统的用户名和密码认证外,还可以引入指纹、面部识别、手机验证码等多种认证方式。这样,即使在密码泄露的情况下,攻击者也难以通过其他认证方式访问系统。
  4. 权限管理与授权:在4A平台上,需要对用户的权限进行精细化的管理。根据用户的角色和职责,为其分配相应的访问权限和操作权限。同时,建立授权机制,确保用户在访问敏感数据或执行关键操作时,需要经过适当的授权和审批流程。
  5. 审计与日志记录:为了确保帐号和认证活动的可追溯性,4A平台应提供审计和日志记录功能。记录用户的登录信息、操作记录等,以便在发生安全事件时能够及时发现并追溯。
  6. 定期审查与更新:帐号和认证策略需要定期审查和更新,以适应业务发展和安全威胁的变化。定期检查帐号的使用情况、权限分配是否合理、认证方式是否足够安全等,并根据需要进行调整和优化。

通过以上步骤,可以在4A平台上实现帐号和认证的一体化管理,提高系统的安全性和用户体验。同时,这也为企业提供了一个集中、统一的安全管理解决方案,降低了管理成本并简化了管理流程。

六、4A系统运营管理建议

  1. 建设统一的4A系统,实现运营维护入口统一,企业的网络设备、系统平台、主机和数据库等都应全部纳入到4A系统管理,4A系统应作为运营维护管控手段嵌入到故障处置、割接、升级等流程。应建立绕行4A系统行为监测能力,杜绝4A绕行行为。
  2. 4A账号统一管理。一个自然人仅允许分配一个主帐 号(“主帐号”指用户在 4A 系统中的唯一 ID),主帐号的用户信 息和状态应与人力系统同步;一个自然人允许拥有多个从帐号 (“从帐号”指网络设备、系统平台、主机和数据库等帐号), 但同一网络设备或系统平台只能有唯一从帐号。
  3. 4A 系统认证管理。4A 系统应采取零信任接入认证、 双因素认证、活体实人认证等手段确保帐号登录和认证安全, 须启用 3 次认证失败自动锁定、长时间无操作自动下线等安全 配置。
  4. 4A 系统授权管理。4A系统的权限分配遵循“最小化 原则”,应按指令级授权,有效期不超过 1 年,按系统设置帐号和权限管理员,对帐号和权限的申请、变更和回收等进行管理。当人员离岗或离职时,应在 24 小时内完成帐号的关停和权限的清理。
  5. 4A 系统审计。4A 系统维护部门应建立 5W1H 自动化审计能力,实现自动告警能力。安全运营维护单位应通过 4A 系统开展高风险操作、数据下载等审计,建立告警、处置和复核机制,及时发现违规操作问题。4A 系统日志应保存 1 年以上。

博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Python爬虫如何快速入门

发表于 2024-03-26 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 2.3k | 阅读时长 ≈ 8

写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫。

一、什么是网络爬虫

网络爬虫,英文名称为Web Crawler或Spider,是一种通过程序在互联网上自动获取信息的技术。它根据指定的规则,从互联网上下载网页、图片、视频等内容,并抽取其中的有用信息进行处理。简单来说,网络爬虫可以看作是在互联网上自动“爬行”的程序,它们从某个或某些初始网页开始,读取网页内容,找到其中的链接地址,然后通过这些链接地址寻找下一个网页,这样不断循环,直到按照某种策略抓取完所需的网页为止。

网络爬虫的应用场景非常广泛,包括搜索引擎中的网页抓取、数据挖掘、网站监测等领域。例如,搜索引擎通过爬虫技术抓取互联网上的网页信息,建立索引数据库,以便用户进行关键词搜索时能够快速找到相关信息。同时,网络爬虫也需要注意遵守相关法律法规和网站的使用协议,避免对网站造成不必要的负担或侵犯用户隐私。

二、网络爬虫的工作原理

网络爬虫(Web Crawler)是一种自动化程序,用于在互联网上按照一定规则和算法自动获取网页信息。网络爬虫通过访问网站的URL,并根据预设的规则抓取页面内容,然后将抓取到的数据保存、分析或用于其他用途。
网络爬虫的主要工作步骤包括以下几个方面:
确定爬取目标–>抓取网页内容–>解析网页–>处理数据

  1. 确定爬取目标:网络爬虫会从一个或多个起始URL开始,然后根据链接关系逐步发现更多的网页。它可以通过遍历网页的超链接、Sitemap、RSS订阅等方式来发现新的网页。
  2. 抓取网页内容:一旦网络爬虫发现了目标网页,它会向服务器发送HTTP请求,获取网页的HTML代码或其他相关资源(如图片、视频等)。获取到的网页内容将会被保存到本地或内存中。
  3. 解析网页:网络爬虫通常会对抓取到的网页进行解析,提取其中的结构化数据,例如标题、正文、链接、图片等内容。这通常需要使用HTML解析器来处理网页内容。
  4. 处理数据:抓取到的数据可以被进一步处理、分析、过滤、清洗或存储。这些数据可以用于搜索引擎的索引、数据分析、信息检索、机器学习等各种用途。

网络爬虫工作步骤

三、学习爬虫需要哪些前置知识

了解到网络爬虫的工作原理后,就知道了爬虫需要哪些前置知识了。

  1. 需要具备基础的网络基础知识
    需要理解HTTP请求与响应的基本原理,包括请求方法(GET、POST等)、请求头、请求体以及响应状态码等。
  2. 需要了解熟悉HTML和CSS基础知识
    需要了解HTML的基本结构和常用标签,如标题、段落、链接、图片等
    需要熟悉CSS选择器的基本语法和用法,以便在解析网页时能够定位并提取所需内容。
  3. 最好需要熟悉正则表达式
    学习正则表达式的语法和用法,以便在爬虫中用于匹配和提取特定格式的文本信息。
  4. 了解基本的数据库知识
    因为最终爬取的数据需要存储到数据库中,那么需要了解一些基本的数据库知识如常用的关系型数据库mysql或非关系型数据库MongoDB

四、Python实现网络爬虫有什么优势

要实现网络爬虫需要编写代码来实现,Python实现网络爬虫具有许多优势,使其成为首选的爬虫开发语言之一。

  1. 易学易用:Python具有简洁、清晰的语法,易于学习和上手。它的语法类似于伪代码,使得编写爬虫代码变得简单直观。
  2. 丰富的爬虫库和工具:Python拥有丰富的第三方爬虫库和工具,如Beautiful Soup、Scrapy、Requests、Selenium等,这些库提供了丰富的功能和灵活的选项,可以满足不同场景下的爬虫需求。
  3. 强大的数据处理能力:Python在数据处理和分析方面有着强大的支持,如Pandas、NumPy、Matplotlib等库,可以轻松地对爬取到的数据进行处理、分析和可视化。
  4. 活跃的社区支持:Python拥有庞大而活跃的社区,你可以轻松地找到大量的教程、文档、示例代码以及问答社区,解决遇到的问题并不断提升技能。
  5. 跨平台性:Python是一种跨平台的语言,可以在Windows、Linux、Mac等操作系统上运行,因此可以轻松地部署和运行爬虫程序。
  6. 广泛的应用领域:Python不仅在网络爬虫领域广泛应用,还在数据科学、人工智能、Web开发等领域有着广泛的应用。因此学习Python不仅有助于网络爬虫开发,还能为未来的职业发展打下良好基础。

Python实现网络爬虫具有易学易用、丰富的库和工具、强大的数据处理能力、活跃的社区支持、跨平台性和广泛的应用领域等优势,使其成为开发网络爬虫的首选语言之一。

五、如何快速入门Python爬虫

以下是一些建议的步骤和资源,帮助开始Python爬虫的学习之旅:

  1. 学习Python基础:
    ● 如果你还没有学习Python,首先需要掌握Python的基础知识,包括变量、数据类型、控制流、函数、模块等。
    ● 推荐资源:官方Python教程、菜鸟教程、W3Schools等。
  2. 了解网络基础知识:
    ● 学习HTTP协议、URL结构、请求方法(GET、POST等)和响应状态码等网络基础知识。
    ● 推荐资源:W3Schools等。
  3. 使用requests库发送HTTP请求:
    ● requests是Python中非常流行的HTTP库,用于发送HTTP请求。requests 库提供了便捷的方式来发送HTTP请求,处理响应内容,包括cookies、headers等细节。
    ● 安装:pip install requests
    ● 学习如何发送GET和POST请求,处理响应,以及设置请求头等。
  4. 解析网页内容:
    ● 学习使用BeautifulSoup或lxml等库来解析HTML内容,提取所需数据。BeautifulSoup, lxml 等库提供了强大的网页解析功能,能够轻松解析HTML和XML文档结构。
    ● 安装:pip install beautifulsoup4 和 pip install lxml
    ● 掌握选择器语法,如CSS选择器和XPath。
    ● 学习基础的正则表达式。参考《Python与正则表达式》
  5. 处理JavaScript动态加载的内容:
    ● 有些网页内容是通过JavaScript动态加载的,直接请求HTML可能无法获取到完整内容。
    ● 学习使用Selenium库来模拟浏览器行为,获取动态加载的内容。Selenium 可以用来驱动真实的浏览器进行动态页面的爬取和交互。
    ● 安装:pip install selenium,并下载对应的浏览器驱动。参考《selenium安装与配置》
  6. 使用代理和应对反爬虫机制:
    ● 学习如何使用代理IP来避免被封禁,以及如何应对常见的反爬虫机制,如验证码、用户登录等。
    ● 学习和使用mitmproxy代理工具来抓包进行数据爬取。参考《mitmproxy安装与配置》
  7. 存储和处理数据:
    ● 学习将数据存储到文件(如CSV、JSON等)或数据库(如MySQL、MongoDB等)中。
    ● 掌握使用Python进行数据清洗和处理的技巧。pandas是做数据清洗、处理、分析的利器,可以参考《pandas快速入门指南》
  8. 高效与可扩展:
    ● 学习Scrapy框架,Scrapy框架支持分布式爬虫,允许大规模数据采集。可以参考《Scrapy爬虫框架实战》
  9. 实践项目:
    ● 通过实践项目来巩固所学知识,例如爬取某个网站的新闻、商品信息等。
    可以参考《Python爬虫获取电子书资源实战》、《Selenium实战-模拟登录淘宝并爬取商品信息》、《mitmproxy实战-通过mitmdump爬取京东金榜排行数据》、《Python爬取京东商品评价信息实战》、《Python爬取淘宝商品评价信息实战》
  10. 学习资源和社区:
    ● 推荐资源:官方文档、博客文章、GitHub上的开源项目等。
    ● 加入Python和爬虫相关的社区和论坛,与其他开发者交流学习经验。

最后,请注意在爬虫开发过程中要遵守法律法规和道德准则,不要对目标网站造成不必要的负担或侵犯他人隐私。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注微信公众号,一起学习、成长!

通过jsDelivr实现Github图床CDN加速

发表于 2024-03-20 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 866 | 阅读时长 ≈ 3

最近小伙伴们是否发现访问我的个人博客http://xiejava.ishareread.com/图片显示特别快了?
我的博客的图片是放在github上的,众所周知的原因,github访问不是很快,尤其是hexo博客用github做图床经常图片刷不出来。一直想换图床,直到找到了jsDelivr,通过jsDelivr实现Github的图床CDN加速后果然速度快了很多。
jsdelivr是一个免费的公共CDN(内容分发网络)服务,它允许网站开发者将他们的代码库、JavaScript库、字体和其他资源托管在jsdelivr上,并通过jsdelivr的CDN网络进行快速分发。使用jsdelivr可以有效地减少用户下载资源的时间,提高网页加载速度,同时减轻原始服务器的负载。
jsdelivr支持多种类型的文件托管,包括JavaScript、CSS、字体、图片等。开发者可以将自己的文件上传到jsdelivr,并获取一个指向这些文件的URL。然后,他们可以在自己的网站中引用这些URL,jsdelivr会自动处理文件的缓存、分发和版本控制。
jsdelivr的优点包括:

  1. 高速分发:jsdelivr拥有全球分布的CDN网络,可以确保资源在全球范围内都能快速加载。
  2. 可靠性高:jsdelivr提供了高可用性和容错性,确保资源的稳定性和可靠性。
  3. 易于使用:开发者可以简单地通过上传文件或使用现有的库来获取资源的URL,并在网站上引用它们。
  4. 开源和免费:jsdelivr是一个开源项目,提供免费的CDN服务,对开发者非常友好。

jsdelivr的官网地址jsdelivr.com 对于gitHub的cdn加速说明如下图所示。
gitHub的cdn加速说明

对于github的图床来说,要用jsdelivr的cdn加速服务很简单
GitHub: https://<jsDelivr加速域名>/gh/<用户>/<项目>@<版本>/<资源路径>
github图床加速

拿一个实例来说明:
github的图床地址:https://xiejava1018.github.io/xiejavaimagesrc/images/2024/20240320/1-jsdelivr官网的github说明.png

jsdelivr的cdn加速地址为:https://xiejava1018.github.io/xiejavaimagesrc/images/2024/20240320/1-jsdelivr官网的github说明.png

对于hexo的博客来说,就是要把原来所有在博客md文件中的github图床地址换成jsdelivr的cdn加速地址。
写个Python程序很容易就能完成这个工作。
代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
from logutils import logging
logger=logging.getLogger(__name__) #定义模块日志记录器


# 修改替换文件内容,进行字符串替换
def changfile(blog_md_file,old_str,new_str):
try:
with open(blog_md_file, "r+",encoding='utf-8') as file: # 打开文件
contents = file.read() # 读取文件内容
contents = contents.replace(old_str, new_str) # 替换字符串
file.seek(0) # 定位到文件开头
file.write(contents) # 将修改后的内容写入文件
file.truncate() # 删除文件剩余部分
logger.info(blog_md_file+'文件中的'+old_str+'已替换成'+new_str)
except PermissionError:
logger.error("Permission denied when trying to open the file.")
except FileNotFoundError:
logger.error("File not found.")
except UnicodeDecodeError:
logger.error("The file was not decoded correctly.")
return None


# 读取目录解析md文件并进行字符串替换
def changfilebypath(filepath='',old_str='',new_str=''):
try:
files = os.listdir(filepath)
for file in files:
if file.find('.md') > 0:
blog_file = os.path.join(filepath, file)
changfile(blog_file,old_str,new_str)
except FileNotFoundError as e:
logger.error('请确认输入是否正确!',e)



if __name__ == '__main__':
old_img_url = 'https://xiejava1018.github.io/xiejavaimagesrc' # Github图床
new_img_url = 'https://xiejava1018.github.io/xiejavaimagesrc' # jsdelivr加速
changfilebypath(filepath=r'D:\CloudStation\personal\xiejavablog\myhexo\myblog\source\_posts',old_str=old_img_url,new_str=new_img_url)

作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注微信公众号,一起学习、成长!

Python爬取淘宝商品评价信息实战

发表于 2024-03-16 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 2.1k | 阅读时长 ≈ 9

Python爬虫

前期出了一个《爬取京东商品评价信息实战》的教程,最近又有网友提到要出一个爬淘宝商品评论的教程。说实话淘宝的反爬机制做得比京东要严,所以用爬取京东商品评价信息的方式取爬取淘宝商品评价不太可行。本文还是介绍通过Selenium模拟登录后来进行淘宝商品评价信息的爬取。
Selenium安装与配置及如何模拟登录淘宝见《Selenium安装与配置》及《Selenium实战-模拟登录淘宝并爬取商品信息》

一、分析需要爬取的页面

淘宝的商品评价信息在商品详情页面,需要登录淘宝后,访问到商品详情页,并且需要点击“宝贝评价”才能看到相应的商品评价信息。
淘宝商品评价页面分析

我们还是要通过chrome浏览器的调试模式来分析需要点击哪个页面元素才能看到具体的评价信息。通过分析可以得知要点击<div class="Tabs--title--1Ov7S5f Tabs--active--2TTlc9s"><span data-spm-anchor-id="pc_detail.27183998/evo365560b447259.202205.i0.65b87dd6RabS41">宝贝评价</span><div class="Tabs--line--1ibdRMv"></div></div> 这个元素才能进行切换到宝贝评价。
页面元素分

具体的评价信息是在<div class="Comment--content--15w7fKj" data-spm-anchor-id="pc_detail.27183998/evo365560b447259.202207.i0.65b87dd6RabS41">很好很喜欢下次还会买的,之前在这店买过iPhone12 Air pos pro iPad Air3 距离上个平板时隔三年又买了iPad Air5 物流也很快,唯一的不足就是要花我自己的钱买😂哈哈哈非常推荐 </div> 这些<div class="Comment--content--15w7fKj">......</div>元素里。
页面元素分

分析完页面后,就可以开始思考如何编码了。

二、实现爬取商品评价信息的代码

通过上面的分析,我们要获取商品评价信息,需要让Selenium进行模拟登录->访问商品列表页面->访问商品详情页面->点击“宝贝评价”->获取并解析商品评价信息。
前面让Selenium进行模拟登录->访问商品列表页面在《Selenium实战-模拟登录淘宝并爬取商品信息》已有介绍。这里主要介绍后面的部分,访问商品详情页面->点击“宝贝评价”->获取并解析商品评价信息。
获取并解析商品评价信息有两种方式,一种是通过解析显示评价信息的元素获取,一种是通过mitmproxy代理进行流量抓包获取。

1、通过解析显示评价信息的元素获取商品评价信息

selenium_taobao.py的部分代码参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 解析获取商品信息
def get_products():
"""提取商品数据"""
html = driver.page_source
doc = pq(html)
items = doc('.Card--doubleCardWrapper--L2XFE73').items()
for item in items:
product = {'url': item.attr('href'),
'price': item.find('.Price--priceInt--ZlsSi_M').text(),
'realsales': item.find('.Price--realSales--FhTZc7U-cnt').text(),
'title': item.find('.Title--title--jCOPvpf').text(),
'shop': item.find('.ShopInfo--TextAndPic--yH0AZfx').text(),
'location': item.find('.Price--procity--_7Vt3mX').text()}
print(product)
item_href=item.attr('href') # 得到商品的详情访问页面
if item_href.find('https:')>=0:
item_url =item_href
print(item_url)
else:
item_url = "https:" + item.attr('href')
# 爬取商品评价
get_prod_comments(item_url)
time.sleep(sleeptime)

# 爬取商品评价
def get_prod_comments(item_url):
driver.get(item_url)
print('跳转至详情页.......'+item_url)
ele = wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='Tabs--title--1Ov7S5f ']/span")))
time.sleep(sleeptime)
# 向下滚动至目标元素可见
js = "arguments[0].scrollIntoView();"
driver.execute_script(js, ele)
print('向下滚动至-宝贝评价-元素可见.......')
driver.execute_script("arguments[0].click();", ele)
print('点击-宝贝评价.......')
ele_comments=driver.find_elements(By.CSS_SELECTOR,".Comment--content--15w7fKj")
print('提取宝贝评价信息.......')
for ele_comment in ele_comments:
print(ele_comment.text)

在解析获取商品信息的方法中通过item_href=item.attr(‘href’) # 得到商品的详情访问页面
在爬取商品评价get_prod_comments(item_url)的方法中,通过driver.get(item_url)跳转到了商品详情页面。通过ele = wait.until(EC.element_to_be_clickable((By.XPATH, “//div[@class=’Tabs–title–1Ov7S5f ‘]/span”)))定位到“宝贝评价”的点击按钮,通过driver.execute_script(“arguments[0].click();”, ele)进行点击事件,然后通过ele_comments=driver.find_elements(By.CSS_SELECTOR,”.Comment–content–15w7fKj”)找到显示评价信息的元素,循环后解析具体的评价文本信息。
效果如下:
解析获取商品信息

2、通过mitmproxy代理进行流量抓包获取商品评价信息

既然通过Selenium进行模拟点击“宝贝评价”访问了商品评价信息,也可通过流量抓包的方式来获取商品评价信息。
同样chrome浏览器的调试模式来分析商品评价是从哪些接口返回的数据,这里可以看到宝贝评价是通过https://h5api.m.taobao.com/h5/mtop.alibaba.review.list.for.new.pc.detail/1.0/....接口返回的数据。
调试模式来分析商品评价

切换到Response,可以看到接口返回的宝贝评价JSON串。
宝贝评价JSON串

有了这些信息后,就可以写mitmproxy代理抓包的代码了。
taobao_scripts.py代码如下:

1
2
3
4
5
6
7
8
9
import json

# 抓取淘宝商品评价信息
def response(flow):
url = 'https://h5api.m.taobao.com/h5/mtop.alibaba.review.list.for.new.pc.detail'
if flow.request.url.startswith(url):
text = flow.response.text
json_data = json.loads(text)
print(json_data)

在控制台运行 mitmdump -s taobao_scripts.py 启动mitmproxy代理服务。具体参考《Selenium实战-模拟登录淘宝并爬取商品信息》设置好chrome浏览器的mitmproxy代理。然后运行selenium_taobao.py通过Selenium驱动浏览器,进行自动模拟登录->访问商品列表页面->访问商品详情页面->点击“宝贝评价”。
在运行mitmdump的控制台可以看到通过抓包获取的淘宝商品评价的数据信息。
效果如下图:
抓包获取的淘宝商品评价的数据信息效果

三、附-完整代码

selenium_taobao.py完整代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common import TimeoutException, NoSuchElementException
from urllib.parse import quote
from pyquery import PyQuery as pq
import time
sleeptime=5
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "localhost:9222") #此处端口保持和命令行启动的端口一致
driver = Chrome(options=chrome_options)
driver.implicitly_wait(5) # 隐式等待
wait = WebDriverWait(driver, 10) # 显示等待

# 模拟淘宝登录
def login_taobao():
print('开始登录...')
try:
login_url='https://login.taobao.com/member/login.jhtml'
driver.get(login_url)
check_login_type()
input_login_id = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-id')))
input_login_password = wait.until(EC.presence_of_element_located((By.ID, 'fm-login-password')))
input_login_id.send_keys('your account')
input_login_password.send_keys('your password')
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit.password-login')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
return is_loging
except TimeoutException:
print('login_taobao TimeoutException')
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.fm-button.fm-submit')))
submit.click()
is_loging = wait.until(EC.url_changes(login_url))
if is_loging:
return is_loging
else:
login_taobao()

# 判断登录模式,如果是扫描登录则切换到用户名密码登录模式
def check_login_type():
print('判断登录模式')
try:
wait.until(EC.presence_of_element_located((By.ID, 'fm-login-id')))
except TimeoutException:
change_type = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.iconfont.icon-password')))
change_type.click() # 切换到用户密码模式登录
print('切换到用户密码模式登录...')

# 解析获取商品信息
def get_products():
"""提取商品数据"""
html = driver.page_source
doc = pq(html)
items = doc('.Card--doubleCardWrapper--L2XFE73').items()
for item in items:
product = {'url': item.attr('href'),
'price': item.find('.Price--priceInt--ZlsSi_M').text(),
'realsales': item.find('.Price--realSales--FhTZc7U-cnt').text(),
'title': item.find('.Title--title--jCOPvpf').text(),
'shop': item.find('.ShopInfo--TextAndPic--yH0AZfx').text(),
'location': item.find('.Price--procity--_7Vt3mX').text()}
print(product)
item_href=item.attr('href') # 得到商品的详情访问页面
if item_href.find('https:')>=0:
item_url =item_href
print(item_url)
else:
item_url = "https:" + item.attr('href')
# 爬取商品评价
get_prod_comments(item_url)
time.sleep(sleeptime)

# 爬取商品评价
def get_prod_comments(item_url):
driver.get(item_url)
print('跳转至详情页.......'+item_url)
ele = wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='Tabs--title--1Ov7S5f ']/span")))
time.sleep(sleeptime)
# 向下滚动至目标元素可见
js = "arguments[0].scrollIntoView();"
driver.execute_script(js, ele)
print('向下滚动至-宝贝评价-元素可见.......')
driver.execute_script("arguments[0].click();", ele)
print('点击-宝贝评价.......')
ele_comments=driver.find_elements(By.CSS_SELECTOR,".Comment--content--15w7fKj")
print('提取宝贝评价信息.......')
for ele_comment in ele_comments:
print(ele_comment.text)


# 自动获取商品信息并自动翻页
def index_page(url,cur_page,max_page):
print(' 正在爬取:'+url)
try:
driver.get(url)
get_products()
next_page_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//button/span[contains(text(),"下一页")]')))
next_page_btn.click()
do_change = wait.until(EC.url_changes(url))
if do_change and cur_page<max_page:
new_url=driver.current_url
cur_page = cur_page + 1
index_page(new_url,cur_page,max_page)
except TimeoutException:
print('---index_page TimeoutException---')


if __name__ == '__main__':
is_loging=login_taobao()
if is_loging:
print('已经登录')
KEYWORD = 'iPad'
url = 'https://s.taobao.com/search?page=1&q=' + quote(KEYWORD) + '&tab=all'
max_page=1
index_page(url,1,max_page)

作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

数据安全之认识数据库加密系统

发表于 2024-03-15 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 2.9k | 阅读时长 ≈ 9

数据库作为计算机信息系统的核心组成部分,在整个信息系统的构建中起着关键的作用。自20世纪60年代起,数据库技术经过短短几十年的飞速发展,现已成为整个信息系统的核心内容,并得到了广泛的应用。然而,随着数据库系统集中处理大量数据信息的任务日益繁重,其安全问题也日渐突出。

信息安全的关键在于数据的安全,而数据的安全则主要通过数据加密技术来实现。随着网上购物等电子商务的兴起和繁荣,以数据库为代表的信息安全已成为很多企业的共识。越来越多的企业和机构开始重视数据库的数据安全问题,因为一旦数据泄露或遭到非法访问,将可能导致严重的经济损失和声誉损害。

为了增强普通关系数据库管理系统的安全性,数据库加密系统应运而生。其目的是为了提供一个安全适用的数据库加密平台,对通信和数据库存储的内容实施有效保护。通过采用先进的加密技术和严格的密钥管理策略,数据库加密系统可以确保数据在存储和传输过程中的机密性、完整性和可用性,从而有效地防止数据泄露和非法访问。

本文让我们一起来认识数据库加密系统

一、什么是数据库加密系统

数据库加密系统是一款基于透明加密技术和主动防御机制的数据库防泄漏系统。
它主要实现对数据库中的敏感数据加密存储、访问控制增强、应用访问安全、安全审计以及三权分立等功能。通过使用特定的加密算法和密钥管理技术,数据库加密系统能够确保数据在存储和传输过程中的安全性,有效防止明文存储引起的数据泄密、外部黑客攻击以及内部高权限用户的数据窃取。数据库加密系统旨在从根本上解决数据库敏感数据泄漏问题,实现数据的高度安全和应用的完全透明。

二、数据库加密系统的工作原理

数据库加密系统的原理主要基于加密技术和密钥管理。其核心目的是确保数据库中存储的敏感数据不被未经授权的人员或程序读取或篡改。以下是数据库加密系统原理的详细解释:

  1. 数据加密
    数据加密是数据库加密系统的核心功能。它使用特定的加密算法,将数据库中的明文数据(即原始数据)转换成密文数据。这个转换过程依赖于一个或多个密钥,这些密钥是加密算法的输入参数,用于控制加密的强度和复杂性。通过这种方式,即使数据被非法获取,没有正确的密钥也无法解密和读取原始数据。
  2. 密钥管理
    密钥管理是数据库加密系统中至关重要的环节。它涉及到密钥的生成、存储、分发、更新和销毁等过程。密钥的安全性直接关系到整个加密系统的安全性。因此,密钥管理通常采用多种安全措施,如使用硬件安全模块(HSM)存储密钥、实施密钥的定期更换和备份、以及使用强密码保护密钥文件等。
  3. 透明加密
    透明加密是数据库加密系统的一个重要特性。它允许应用程序在不需要修改的情况下,对数据库中的敏感数据进行加密和解密操作。这意味着应用程序无需关心数据的加密细节,只需像处理普通数据一样处理加密数据。这种透明性大大简化了加密系统的部署和维护过程。
  4. 访问控制
    除了数据加密外,数据库加密系统还通常实施严格的访问控制策略。这些策略通过身份验证、授权和审计等手段,确保只有经过授权的用户才能访问和操作数据库中的敏感数据。这有助于防止内部人员滥用权限或外部攻击者入侵数据库。

数据库加密示意图如下:
数据库加密示意图

数据库加密示意图

数据库加密系统的原理基于数据加密、密钥管理、透明加密和访问控制等多个方面。这些技术和策略共同确保数据库中的敏感数据得到充分的保护,防止未经授权的访问和泄露。

三、数据库加密系统的核心功能

数据库加密系统核心功能包括数据加密、数据解密、权限控制、审计跟踪。

  1. 数据加密:通过对数据库中的敏感数据进行加密,使得即使数据被非法获取,也无法直接读取其内容。
  2. 数据解密:对经过加密的数据进行解密,使其能够被正常访问和使用。通常,只有具有特定权限的用户才能进行解密操作。
  3. 权限管理:增强对数据库访问的控制,确保只有经过授权的用户才能访问特定的数据。
  4. 审计跟踪:记录和跟踪数据库的所有操作,包括谁在何时访问了哪些数据,进行了哪些操作,以便在发生安全问题时进行追溯和审计。

四、数据库加密系统的特点和优势

数据库加密系统具有以下特点和优势:

  1. 数据安全性增强:通过数据加密技术,数据库加密系统能够确保敏感数据在存储和传输过程中的安全性。即使数据被非法获取,攻击者也无法直接读取其明文内容,从而防止数据泄露和滥用。
  2. 透明性:数据库加密系统通常设计为对最终用户透明,管理员可以根据需要进行明文和密文的转换工作。这使得用户无需改变原有的操作习惯,同时也降低了系统部署和维护的复杂性。
  3. 独立性:加密系统独立于数据库应用系统,这意味着无需改动数据库应用系统就能实现数据加密功能。这种独立性使得数据库加密系统能够灵活地集成到现有的信息系统中。
  4. 性能影响较小:数据库加密系统通常采用高效的加解密算法和优化的处理流程,以确保在加密数据的同时不会对数据库服务器的性能产生显著影响。这使得系统能够在实际应用中保持较高的响应速度和吞吐量。
  5. 灵活的加密方式:数据库加密系统支持多种加密方式,如字段级加密、记录级加密等,以满足不同场景下的安全需求。此外,系统还可以根据业务需求灵活调整加密策略,以适应数据的变化和新的安全威胁。
  6. 完善的密钥管理:密钥是数据加密和解密的关键。数据库加密系统通常具备完善的密钥管理功能,包括密钥的生成、存储、分发、更新和销毁等。这确保了密钥的安全性和可用性,从而提高了整个加密系统的安全性。
  7. 合规性支持:随着数据保护法规的日益严格,数据库加密系统能够帮助企业满足相关的合规性要求。通过实施数据加密和访问控制等安全措施,系统能够确保数据的合规性存储和使用,避免因违反法规而面临的经济和法律风险。

数据库加密系统通过增强数据安全性、提供透明性、独立性、较小的性能影响、灵活的加密方式、完善的密钥管理以及合规性支持等特点和优势,为企业和机构提供了一个安全、可靠的数据库环境。

五、数据库加密系统的部署方式

1、在线透明部署

通过在线透明的部署方式将数据库加密系统串接在数据库前,对数据库进行透明加密,提高数据库服务的可用性,部署如下图所示。
数据库加密系统串联部署图

数据库加密系统串联部署图

2、旁路代理模式

通过旁路部署的方式将数据库透明加密接入到数据库所在网络中,数据库透明加密采用反向代理模式,部署如下图所示。
数据库加密系统旁路代理部署图

数据库加密系统旁路代理部署图

六、数据库加密系统的应用场景

数据库加密系统有着广泛的应用场景,主要用于保护敏感数据的安全性和完整性,防止数据泄露和非法访问。以下是一些常见的应用场景:

  1. 金融行业:银行、证券、保险等金融机构在处理客户数据时,涉及大量敏感信息,如个人身份信息、账户信息、交易记录等。数据库加密系统能够确保这些敏感数据在存储和传输过程中的安全,防止被非法获取或篡改。
  2. 医疗领域:医疗机构存储着大量的患者个人信息、病历记录、检查结果等敏感数据。数据库加密系统可以保护这些数据的安全,防止数据泄露和滥用,维护患者的隐私权益。
  3. 政府机构:政府部门在政务处理、人口管理、税务征收等方面积累了大量的公民个人信息和敏感数据。通过数据库加密系统,政府可以确保这些数据的安全存储和合法使用,防止数据被非法获取或滥用。
  4. 电子商务:电商平台涉及大量用户信息、交易数据等敏感信息。数据库加密系统可以保护这些数据的安全,防止黑客攻击和数据泄露,维护电商平台的声誉和用户的信任。
  5. 教育行业:学校和教育机构存储着学生的个人信息、成绩记录、学籍资料等敏感数据。数据库加密系统可以保护这些数据的安全,防止数据被非法访问或篡改,维护教育公平和信息安全。

数据库加密系统适用于需要保护敏感数据安全的各个领域,确保数据在存储、传输和使用过程中的完整性和机密性。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Python爬取京东商品评价信息实战

发表于 2024-03-11 | 更新于: 2025-04-08 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 1.2k | 阅读时长 ≈ 5

网络爬虫

上期介绍了通过《mitmproxy实战-通过mitmdump爬取京东金榜数据》,能够上京东金榜的商品一般评价都是比较好的,这次介绍如何爬取京东商品的评价信息。

一、分析商品评价的页面信息

1、请求参数分析

京东的商品评价信息是在商品的详情页面,我们随便访问一个京东的商品详情页面如https://item.jd.com/100087971268.html
在这里可以看到100087971268就是商品ID也是商品的skuId,这个是商品的唯一ID可以和很过信息关联。我们可以通过chrome浏览器的调试模式来分析商品评价信息的数据是如何获取和展示的。
通过chrome浏览器的调试模式可以看到,评价信息是通过https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1710122207175&loginType=3&uuid=181111935.16953916127351737253418.1695391613.1709713566.1710121957.56&productId=100087971268&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield=
这个接口来返回的,其中关键的信息包括functionId=pc_club_productPageComments,productId=100087971268,page=0&pageSize=10。
productId=100087971268表示是获取商品ID为100087971268的商品评价,page=0&pageSize=10表示当前页是0,每页显示10条记录。

分析详情页

2、接口返回信息分析

我们可以切换到Response的标签页,分析接口的返回信息

商品评价接口返回信息分析

在这里可以看到通过接口反馈的是一个json格式的数据,其中评价信息就在comments的节点里,我们只要解析这个json就可以得到具体的评价信息了。
通过参数的分析和返回结果的分析后,就可以开始编码实现了。

二、爬取京东商品评价信息代码实现

编码主要实现两个部分的内容
1、是要组织请求参数,将请求URL的一些参数用变量替换,如商品ID,当前页等。
2、是要解析返回的JSON数据,从JSON数据中解析获取需要的评价信息以及下载评价信息中的图片。
在组织请求参数的时候,有两个关键信息,一个是Cookie信息,一个是请求的URL,因为访问京东的接口要登录,所以需要Cookie的信息。这些信息都可以在登录到京东后在chrome浏览器的调试模式中可以拿到。

组织请求参数

1、具体代码

具体代码如下:
getJDProdComments.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import json
import os
import requests
from urllib.request import urlretrieve
import time

sleeptime = 1 # 休眠时间

# 浏览器访问伪装
headers = {
'cookie': '___jdu=16953916127351737253418; shshshfpa=423ebd76-fc1a-89d5-d47a-a981cedfdsf57-1686fds5177; shshshfpx=423ebd76-fc1a-89d5-d47a-a981ced31f57-1686405177; pinId=OlFK9xcJEZ3Ep3CJn7-LwLV9-x-f3wj7; pin=jd_5ab1043c91fdff; unick=xiejava; _tp=xRz2UIA0gXgQ0KtQA8IW%2BhMgOusl53MovCk%2FP0TxaIM%3D; _pst=jd_5ab1043c91bff; PCSYCityID=CN_430000_430100_0; areaId=18; ipLoc-djd=18-1482-48942-49058; b_dh=1179; b_dpr=1.100000023841858; b_webp=1; b_avif=1; autoOpenApp_downCloseDate_auto=1705396790105_1800000; b_dw=1555; __jdv=91748099|baidu|-|organic|notset|1705397493195; jsavif=1; mba_muid=16953916127351737253418; wlfstk_smdl=4d5qhwajihbur3xtxm1dghq2bwl9ebii; 3AB9D23F7A4B3C9B=ONVXQU6KOVA46KLMDJWYJ2CLCGZLCKH4NFEKT6ANBHIYQJBOWM3KHFJ3RT5NO6GKP2BQVONOJWLAKMJUMNJOAMEHJE; TrackID=1wLmzwr1GPygNiM7hoidalzvJbkLlnJRs7c_e2wlsv7h_VHaLyqnXTiW1_vIDBhlEusopAT977EO67KV2n2vMV9jMUQx8MO9jJQMMv8skxrE; thor=C1CD4973B7F47EE1FE45201B5AB2281DC485D58F5BD12AA8CEC6335A9B07F5E3F1BFD9D9DEA859A32AEDE0F33C45B55AA44327ACD87A8E174C645BE4BC987735B3DD969561D2D0AA492DD1FEC1A793AF265724B02F9850F35F0CA58E8E4A5A3C212B0734C80AD560D299EC59026506C127E953C92D271932DDDBF32BEC59091745A6CB143671358CC8A866B9A298AA865F60B9AC41AD05C6EB6781C131BD05DD; flash=2_7Kqrs87KZ1MjgKXGB8QJTs9NjTmYiJCdEV8xYwXCMezATHn-bD7kirFJuQx5ogyzo_yuQHefS-MTOx8D5rxn-5ZxA8-qMHyBfYw-1ULH1bq*; ceshi3.com=103; __jdc=181111935; token=7482844f43473090375d99ad860b4294,3,947486; __tk=mLVlrKTimJznoD3PmcVvYmZmldTlkbVaommnjmTankZOmmPDolZTZmTfSJvkYRmblDzYrLKC,3,947486; shshshsID=a8f2acdf15967d81d4c5d8b5a45b7796_1_1705476526446; 3AB9D23F7A4B3CSS=jdd03ONVXQU6KOVA46KLMDJWYJ2CLCGZLCKH4NFEKT6ANBHIYQJBOWM3KHFJ3RT5NO6GKP2BQVONOJWLAKMJUMNJOAMEHJEAAAAMNCZJJB5QAAAAAD26SPFPWINAFQMX; _gia_d=1; shshshfpb=BApXeNARaFehAyBNmDl1nYWazwPZ1Fa6NB8QBVlhW9xJ1Mt5if4S2; __jda=181111935.16953916127351737253418.1695391613.1705471486.1705476528.12; __jdb=181111935.1.16953916127351737253418|12.1705476528; joyya=1705472508.1705476529.27.0u3hno2',
'referer': 'https://item.jd.com/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37',
}

jd_prod_pic_save_path = 'jd_prod_pic' # 图片保存目录

page_range = 50 # 翻50页取500条记录

def getJDProdComment(prod_skuId):
big_pag_path = '//img30.360buyimg.com/shaidan/s616x405_jfs/' # 评价大图地址
tiny_pag_path = '//img30.360buyimg.com/n0/s128x96_jfs/' # 评价缩略图地址
for i in range(page_range):
comments_url = 'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1705853247039&loginType=3&uuid=181111935.16953916127351737253418.1695391613.1705847111.1705852812.35&productId='+str(prod_skuId)+'&score=0&sortType=5&page='+str(i)+'&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='
data = requests.get(comments_url, headers=headers)
if data:
content_data=data.content.decode('utf-8')
json_data=json.loads(content_data)
print(json_data)
if i == 0:
productCommentSummary=json_data.get('productCommentSummary')
print(prod_skuId, str(productCommentSummary))
hotCommentTagStatistics=json_data.get('hotCommentTagStatistics')
print(prod_skuId,str(hotCommentTagStatistics))
comments=json_data.get('comments')
if comments and len(comments)>0:
for comment in comments:
prod_comment_guid=comment.get('guid')
prod_comment_content=str(comment.get('content'))
prod_comment=str(comment)
images=comment.get('images')
savepath=os.path.join(jd_prod_pic_save_path,str(prod_skuId),'comments',prod_comment_guid)
if images and len(images)>0:
for image in images:
str_image_url=image.get('imgUrl').replace(tiny_pag_path, big_pag_path)
image_url='https:'+str_image_url
filename=os.path.basename(image_url)
downloadfile(image_url, savepath, filename) #下载图片
time.sleep(sleeptime)
print(prod_comment_guid,prod_skuId,prod_comment_content,prod_comment)
time.sleep(sleeptime)


def downloadfile(downloadurl,savepath,savefilename):
savefile = os.path.join(savepath, savefilename)
try:
if not os.path.exists(savepath):
os.makedirs(savepath)
# 判断文件是否存在,如果不存在则下载
if not os.path.isfile(savefile):
print('Downloading data from %s' % downloadurl)
urlretrieve(downloadurl, filename=savefile)
print('\nDownload finished!')
else:
print('File already exsits!')
# 获取文件大小
filesize = os.path.getsize(savefile)
# 文件大小默认以Bytes计, 转换为Mb
print('File size = %.2f Mb' % (filesize / 1024 / 1024))
except Exception as e:
print('downloadfile Error:', e)

if __name__ == '__main__':
getJDProdComment('100087971268')

以上代码中的Cookie信息,需要根据自己登录后从chrome浏览器的调试模式中拿到的Cookie信息替换。

2、运行效果

运行效果:

运行效果


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

数据安全之认识数据库漏洞扫描系统

发表于 2024-03-07 | 更新于: 2025-04-08 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 5k | 阅读时长 ≈ 16

随着信息技术的迅猛发展和互联网的普及,数据库作为存储、管理和检索大量数据的关键组件,其安全性对于企业和组织来说至关重要。然而,由于网络环境的复杂性和攻击手段的多样性,数据库面临着越来越多的安全威胁。黑客可能利用已知的漏洞或弱点,对数据库进行非法访问、数据窃取或篡改,从而给企业和组织带来巨大的经济损失和声誉风险。

为了应对这些安全挑战,数据库漏洞扫描系统应运而生。该系统基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞。它能够帮助企业和组织及时发现并修复数据库中的安全漏洞,提高数据库的安全防护能力,降低潜在的安全风险。

本文让我们一起来认识一下数据库漏洞扫描系统。

一、什么是数据库漏洞扫描系统

数据库漏洞扫描系统是一种专业的数据库安全产品,它基于对数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制的深入分析,深入研究和发现数据库系统本身存在的BUG以及数据库管理、使用中存在的问题。

该系统的核心功能在于对数据库系统进行自动化安全评估。通过读取数据库的信息与安全策略进行综合分析,能够充分扫描出数据库系统的安全漏洞和威胁,并自动给出详细的漏洞描述、漏洞来源及修复建议。此外,它还提供智能的修复建议和完整的数据库漏洞报告、数据库安全评估报告,帮助用户进行漏洞修复,从而保护数据库的安全。

数据库漏洞扫描系统的主要特性之一是拥有全面的漏洞库,支持CVE、CNNVD等披露的数据库安全漏洞,并按高、中、低、信息四个级别进行不同层级的漏洞威胁排列。这使得系统能够更准确地识别和评估数据库中的安全风险。

数据库漏洞扫描系统是数据库安全评估工具之一,能够找出数据库自身的安全漏洞和使用中的安全隐患。

二、数据库漏洞扫描系统的发展历程

数据库漏洞扫描系统的发展历程是一个伴随着数据库技术、网络安全威胁以及信息技术发展的不断演进过程。
在早期,数据库的安全主要依赖于基本的访问控制和加密技术,但随着网络攻击手段的不断升级和复杂化,传统的安全措施已经无法满足需求。因此,对数据库进行漏洞扫描和风险评估的需求逐渐凸显。

随着技术的发展,数据库漏洞扫描系统开始兴起。这些系统能够自动化地检测数据库中的安全漏洞,提供修复建议,并帮助用户保持数据库的安全健康状态。它们基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞。

随着时间的推移,数据库漏洞扫描系统不断发展和完善。它们不仅支持更多的数据库类型和版本,还提供了更全面的漏洞检测和修复建议。此外,一些高级的数据库漏洞扫描系统还具备了合规性检查、弱口令检测等功能,能够更好地满足用户的安全需求。

近年来,随着云计算、大数据、人工智能等技术的快速发展,数据库漏洞扫描系统也迎来了新的发展机遇。通过集成这些先进技术,数据库漏洞扫描系统能够更加高效、准确地发现安全漏洞,提供更为智能的修复方案,为用户的数据库安全保驾护航。

数据库漏洞扫描系统的发展历程是一个不断进步和完善的过程,它随着数据库技术和网络安全威胁的发展而不断演进,为用户提供更加全面、高效的安全保障。

三、数据库漏洞扫描系统的主要功能

数据库漏洞扫描系统具备多种功能,这些功能共同协作,以全面评估数据库的安全性并发现潜在的安全风险。主要功能包括:

  1. 漏洞检测与发现:这是数据库漏洞扫描系统的核心功能。它能够扫描并检测数据库系统中的各种漏洞,包括已知和未知的漏洞。这些漏洞可能涉及SQL注入、跨站脚本攻击(XSS)、未授权访问等安全风险。
  2. 安全风险评估:在发现漏洞后,系统能够对这些漏洞进行风险评估,判断其可能对数据库系统造成的潜在影响。这有助于用户优先处理那些风险较高的漏洞。
  3. 修复建议与报告:基于漏洞检测和风险评估的结果,系统能够生成详细的修复建议和报告。这些建议通常包括如何修复漏洞、加强数据库安全配置、更新补丁等,帮助用户及时消除潜在的安全风险。
  4. 多平台与多数据库支持:系统需要支持多种操作系统和数据库管理系统,以确保无论用户使用的是哪种数据库或操作系统,都能进行有效的扫描和评估。
  5. 自定义扫描策略:系统应允许用户定义自定义的扫描策略,以满足特定的安全需求和环境。这可以包括扫描的深度、范围、时间等参数的设置。
  6. 定期扫描与监控:数据库漏洞扫描系统还应具备定期扫描和监控功能,以便及时发现并处理新的安全威胁。这有助于保持数据库系统的持续安全性。

四、数据库漏洞扫描系统的基本原理

数据库漏洞扫描系统的原理基于自动化的安全测试技术,用于检测数据库系统中存在的潜在安全漏洞。以下是该系统的基本原理:

  1. 信息收集:首先,扫描系统会对目标数据库进行信息收集。这包括获取数据库的类型、版本、配置信息,以及运行的操作系统和服务等。这些信息有助于确定扫描的范围和策略,以及为后续的漏洞检测提供基础数据。
  2. 漏洞检测规则:系统内置了大量的漏洞检测规则,这些规则是根据已知的安全漏洞和攻击手法编写的。这些规则可能涉及SQL注入、跨站脚本攻击(XSS)、权限提升等常见的数据库安全威胁。
  3. 扫描与测试:利用上述的漏洞检测规则,扫描系统会对数据库进行深入的扫描和测试。这可能包括发送特定的查询请求到数据库,观察和分析数据库的响应,以及尝试利用潜在的漏洞。
  4. 漏洞验证:当扫描系统发现潜在的漏洞时,它会尝试进一步验证这些漏洞的存在和利用性。这通常涉及更复杂的测试和攻击模拟,以确保检测到的漏洞是真实存在的,并且可以被攻击者利用。
  5. 报告与修复建议:最后,扫描系统会生成详细的漏洞报告,列出所有检测到的漏洞及其严重程度。同时,系统还会提供修复建议,帮助数据库管理员或安全专家及时修复这些漏洞,提高数据库的安全性。

需要注意的是,数据库漏洞扫描系统虽然功能强大,但也存在一定的局限性。它可能无法检测到所有类型的漏洞,特别是那些新出现或特定环境下的漏洞。此外,系统的准确性和可靠性也受到多种因素的影响,如扫描策略的选择、数据库环境的复杂性等。因此,在使用数据库漏洞扫描系统时,需要结合其他安全措施和人工分析,以确保数据库的安全性。

五、为什么企业需要数据库漏洞扫描系统

黑客常利用数据库的各种漏洞来对数据库进行攻击,例如数据库用户密码的脆弱性,非法的远程连接,数据库用户占用CPU会话数过多等。对于不同的数据库,漏洞也不同。如:目前oracle数据库的漏洞就有超过1000项,SQL Server有超过500项。只要一个漏洞被黑客利用,数据库就有被破坏的危险。还有一点也很重要,操作系统安全不能说明数据库是安全的。辟如我们目前使用的数据库大部分都是关系型数据库,而关系型数据库一般都是通过端口的方式来进行访问的,这种访问方式是可以绕开操作系统的验证的。

企业之所以需要数据库漏洞扫描系统,主要基于以下几个方面的原因:

  1. 识别与修复安全漏洞:数据库是企业存储关键信息和数据的核心组件,其安全性至关重要。然而,由于软件研发过程中可能存在的普遍问题,如引用第三方开源代码和运行环境的不确定性,数据库可能面临各种已知和未知的漏洞。数据库漏洞扫描系统能够自动化地扫描数据库,识别出潜在的安全漏洞,并提供修复建议。这有助于企业及时发现并修复安全漏洞,降低资产风险。
  2. 满足法律合规要求:在数字化时代,网络安全等级保护等法规要求企业对其信息系统进行安全漏洞的检测和修补。数据库漏洞扫描系统能够帮助企业满足这些法律合规要求,确保企业信息系统的安全。
  3. 提高安全管理效率:传统的安全管理方式可能耗时且效率低下,而数据库漏洞扫描系统能够自动化执行漏洞扫描,大大提高安全检测的效率和准确性。同时,系统还能提供针对性的安全建议,帮助企业优化其安全策略和措施,从而进一步提高网络安全水平。
  4. 增强品牌声誉和客户信任:通过及时发现并修复数据库的安全漏洞,企业能够防止数据泄露和系统崩溃等安全事件的发生,从而保护客户信息的安全。这有助于增强客户对企业的信任,提高品牌声誉,为企业赢得更多的商业机会。

综上所述,企业在日常运营中应充分考虑引入并使用数据库漏洞扫描系统。

六、数据库漏洞扫描系统的部署方式

数据库漏洞扫描系统的部署方式主要可以分为以下几种:

  1. 网络集成部署:这种方式是将数据库漏洞扫描系统部署在网络中的某个节点,使其能够与网络中的数据库进行通信并执行扫描任务。这种部署方式通常需要对网络架构进行一定的配置,以确保扫描系统能够顺利访问目标数据库。
  2. 分布式部署:对于大型网络或分布式数据库环境,可以采用分布式部署方式。这意味着在多个网络节点或数据库服务器上部署扫描系统的组件,以实现并行扫描和集中管理。这种部署方式可以提高扫描效率,并更好地适应复杂网络环境的需求。
  3. 独立部署:在某些情况下,数据库漏洞扫描系统可以独立部署在单个设备或服务器上。这种方式适用于对特定数据库或特定环境进行单独的扫描任务。独立部署可以确保扫描系统的独立性和安全性,避免与其他系统或网络产生冲突。

需要注意的是,具体的部署方式应根据实际情况和需求进行选择。在选择部署方式时,需要考虑网络架构、数据库类型、扫描需求以及安全性等因素。同时,部署过程中需要确保遵循相关的安全标准和最佳实践,以确保扫描系统的正常运行和数据的安全性。

七、为什么系统漏洞扫描/网络漏洞扫描系统不能代替数据库漏洞扫描系统?

系统漏洞扫描系统是检查操作系统中存在的漏洞,其扫描对象是操作系统,操作系统是大型数据库系统的运行平台,为数据库系统提供一定程度的安全保护。但是当入侵是通过数据库开放的端口进行时,操作系统就无能为力了。

网络漏洞扫描系统是一种基于网络的漏洞扫描和分析工具软件,能够自动检查主机、网络设备的安全漏洞。系统管理员利用漏洞扫描技术对局域网络、Web站点、主机操作系统、系统服务以及防火墙系统的安全漏洞进行扫描,可以能够及时发现网络漏洞并在网络攻击者扫描和利用之前予以修补,从而提高网络的安全。

相比之下,数据库漏洞扫描系统专门针对数据库进行安全检测。数据库系统的安全性很大程度上是依赖于数据库管理系统。如果数据库管理系统的安全机制非常强大,则数据库系统的安全性能就较好。数据库漏洞扫描系统它能够识别数据库中的安全漏洞,包括SQL注入、未授权访问等数据库特有的安全威胁。此外,数据库漏洞扫描系统还能评估数据库的配置和权限设置,发现潜在的安全风险,并提供相应的修复建议。

虽然系统漏洞扫描和网络漏洞扫描系统能够提升整体网络安全水平,但它们无法替代数据库漏洞扫描系统在数据库安全方面的专业性和深入性。为了全面保障网络安全,需要综合运用多种扫描系统,从多个层面进行安全检测和防护。

八、数据库漏洞扫描系统的局限性和挑战

数据库漏洞扫描系统能够发现数据库中的安全漏洞并提供修复建议,但也存在一些局限性和挑战。如:

  1. 无法检测所有漏洞:尽管数据库漏洞扫描系统可以检测大量的已知漏洞,但它可能无法检测到所有类型的漏洞。特别是对于那些新出现的、未知的或者特定环境下的漏洞,系统可能无法进行有效识别。
  2. 误报和漏报的可能性:在某些情况下,系统可能会误报一些并非真正存在的漏洞,或者漏报一些实际存在的安全风险。这可能是由于扫描过程中的一些技术限制或者环境差异导致的。
  3. 依赖于数据库的配合:数据库漏洞扫描系统通常需要数据库的配合才能进行完整的扫描。如果数据库管理员不提供足够的权限或者对扫描过程进行限制,系统可能无法全面评估数据库的安全性。
  4. 需要人工分析和判断:尽管系统可以生成详细的漏洞报告和修复建议,但最终的决策和修复工作仍然需要由数据库管理员或安全专家来执行。因此,对人员的专业技能和经验有一定要求。
  5. 对复杂环境的挑战:在复杂的数据库环境中,如分布式数据库、云数据库等,数据库漏洞扫描系统可能面临更大的挑战。这些环境可能涉及多个组件、网络和安全策略,使得扫描和评估过程更加复杂和困难。

针对以上挑战,数据库漏洞扫描系统的发展趋势主要体现在以下几个方面:

  1. 技术集成与智能化:随着人工智能、大数据等技术的快速发展,数据库漏洞扫描系统将更加注重技术的集成和智能化。例如,通过集成机器学习和深度学习算法,系统能够更精准地识别和分析漏洞,提供更为智能化的修复建议。
  2. 云化与平台化:云计算的普及使得越来越多的应用和服务迁移到云端。因此,数据库漏洞扫描系统也将逐步云化,为用户提供更为便捷、灵活的服务。同时,平台化也是一个重要的发展趋势,通过构建统一的安全管理平台,实现多种安全工具和服务的集成和协同。
  3. 全面性与精细化:随着数据库类型的多样化和复杂性的增加,数据库漏洞扫描系统需要支持更多的数据库类型和版本,并提供更为全面和精细化的漏洞检测。这意味着系统需要不断更新和优化漏洞数据库,提高检测的准确性和效率。
  4. 合规性与标准化:随着网络安全法规的不断完善,数据库漏洞扫描系统需要更加注重合规性和标准化。系统需要能够按照相关法规和标准进行检测和报告,帮助企业满足法律合规要求。
  5. 自动化与响应式安全:自动化是数据库漏洞扫描系统的重要发展方向。通过实现自动化的扫描、分析和修复流程,可以大大提高安全管理的效率。同时,响应式安全也是未来的一个关键趋势,系统需要能够实时监测数据库的安全状况,对新的漏洞和威胁进行快速响应。

综上所述,数据库漏洞扫描系统的发展趋势是多元化、集成化、云化、平台化、全面化、精细化、合规化、自动化和响应式安全。这些趋势将有助于提升数据库漏洞扫描系统的性能和功能,为企业提供更为全面、高效和智能的安全保障。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

<1…345…20>
XieJava

XieJava

200 日志
11 分类
25 标签
RSS
GitHub
友情链接
  • 爱分享读书
  • CSDN
  • 豆瓣
© 2025 XieJava | Site words total count: 415.3k

主题 — NexT.Muse
0%