首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这届黑客不讲武德

广交会、世界智能大会、数博会,以及众多攻防演练期间,曾勇江所在的腾讯安全服务团队都在背后默默提供安全保障。而回忆起其中印象最深刻的攻防事件,却是八月份帮助一家物流公司做的重服务。...腾讯安全服务团队期间,7*24小时全天候待命,作为企业期的有力后盾。故事发生到这里,似乎一切按部就班,一份完美的答卷即将完成。但是,天底下没有密不透风的系统,从来没有100%的安全。...八月旬的一天,IT人员敏锐地监测到一名内部员工工作时间多次访问内部敏感信息,扫描内网、搜集企业数据资产,甚至请求访问了多个高权限的IP和端口。“我们恐怕遭遇内鬼了!”...最终,根据iOA的日志,他们拿到了攻击者入侵的IP,并通过系统的日志找到关键的事件ID,从而扒出了攻击者入侵之后执行的命令。...黑客午饭时间,利用一些远程控制软件在后台操控,并将该电脑作为跳板,进行二次攻击,访问了公司内网多个高权限的IP和端口。

65930

线上问题处理案例——出乎意料的数据库连接池

01 问题描述 今年的敏捷团队建设,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?...8、 反向思考,为何只有大促期间才发生问题? 图4 平时和大促时回收频率对比 可以看到平时由于业务量小,GC不频繁,过期连接没有达到进入老年代阈值,在年轻代被回收。...另外默认Max Tenuring Threshold是15,可以防止失效连接过早进入老年代; 方案2:min EvictableIdle Time Millis设置为0,使数据库连接不会自动失效,进入老年代以后一直存活...,避免老年代失效回收; 方案3:min EvictableIdle Time Millis设置为0,使数据库连接不会自动失效,进入老年代以后一直存活,避免老年代失效回收; 05 拓展知识点...本例由于不断有新的虚引用对象老年代失效,导致FullGC后,内存水位仍然偏高,会加剧GC压力。

22820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    对象的共享

    可能的情况下,使用其他更强的线程封闭技术. ##3.2 栈封闭 栈封闭,只能通过局部变量才能访问对象....提供了get与set等访问接口方法,这些方法为每个使用该变量的线程都存有一份独立的副本,因此get总是返回由当前执行线程调用set时设置的最新. 常用于防止对可变的单实例变量或全局变量进行共享....ThreadLocal 变量类似于全局变量,它能降低代码的可重用性,并在类之间引入隐含的耦合性,使用时需要格外小心. 4 不变性 不可变对象: 满足以下条件: 对象创建以后其状态就不能修改 对象的所有域都是...一个正确构造的对象可以通过以下方式来安全发布 静态初始化函数里初始化一个对象引用 将对象的引用保存到volatile类型的域或者AtomicReference对象 将对象的引用保存到某个正确构造对象的...synchronizedSet,可以将该对象安全地发布到任何从这些容器访问该对象的线程 通过将某个对象放入BlockingQueue或者ConcurrentLinkedQueue,可以将该对象安全地发布到任何从这些队列访问该对象的线程

    44850

    《redis 设计与实现》--总结

    键空间的也是数据库的,每个可以是字符串对象、列表对象、哈希对象、集合对象,有序集合对象的任意一个Redis对象。 一个键空间的例子: ?...实现原理:从数据库读取键现在的,然后用一条命令去记录键值对,代替之前记录这个键值对的多条命令。 后台重写:子进程AOF重写期间,服务器进程可以继续处理命令请求。...后台重写问题:子进程重写期间,服务器还需要处理命令请求,可能导致服务器当前数据库状态和重写后的AOF文件所保存的数据库状态不一致。解决办法:AOF重写缓冲区。 事件 文件事件 文件事件处理器。...,以供新数据使用 volatile-lru:从已设置过期时间的数据集(server.db[i].expires)挑选最近最少使用的数据淘汰,以供新数据使用 allkeys-random:从所有数据集(...server.db[i].dict)任意选择数据淘汰,以供新数据使用 volatile-random:从已设置过期时间的数据集(server.db[i].expires)任意选择数据淘汰,以供新数据使用

    80621

    《redis 设计与实现》--总结

    RDB文件是一个经过压缩的二进制文件,保存在硬盘,因此Redis进程退出,只要RDB文件仍在,就可以用来还原数据库的状态。 RDB文件的创建和载入 服务器载入RDB文件期间,会一直阻塞。...实现原理:从数据库读取键现在的,然后用一条命令去记录键值对,代替之前记录这个键值对的多条命令。 后台重写:子进程AOF重写期间,服务器进程可以继续处理命令请求。...后台重写问题:子进程重写期间,服务器还需要处理命令请求,可能导致服务器当前数据库状态和重写后的AOF文件所保存的数据库状态不一致。解决办法:AOF重写缓冲区。 事件 文件事件 文件事件处理器。...,以供新数据使用 volatile-lru:从已设置过期时间的数据集(server.db[i].expires)挑选最近最少使用的数据淘汰,以供新数据使用 allkeys-random:从所有数据集(...server.db[i].dict)任意选择数据淘汰,以供新数据使用 volatile-random:从已设置过期时间的数据集(server.db[i].expires)任意选择数据淘汰,以供新数据使用

    1.2K40

    Java并发编程学习4-线程封闭和安全发布

    Swing 的可视化组件和数据模型对象都不是线程安全的,Swing 通过将它们封闭到 Swing 的事件分发线程来实现线程安全性;为了进一步简化对 Swing 的使用,Swing 还提供了 invokeLater...机制,用于将一个 Runnable 实例调度到事件线程执行。...值得注意的是,ThreadLocal 变量类似于全局变量,它可能会降低代码的可重用性,并在类之间引入隐含的耦合性,因此使用时要格外小心。2....当满足以下条件时,对象才是不可变的:对象创建以后其状态就不能修改。对象的所有域都是 final 类型。对象时正确创建的(在对象创建期间,this 引用没有逸出)。...可以将该元素安全地发布到任何从这些容器访问该元素的线程。

    21121

    信号(一) - 概念

    信号量上的操作共享它的所有进程以同步的方式更改变量的。按照惯例,的变化会在共享信号量的进程之间传递信息。尽管信号量和锁似乎有很多共同点,但使用信号量还是有一些优势的。...通常,信号量存储创建该信号量的实例上,并且对该实例上的所有进程可见。但是,当信号量名称看起来像全局变量的名称时,信号量存储映射全局变量(包括下标)的系统上。...第一组包括: Create – 创建一个新的信号量实例并初始化它以供使用 Open ——访问并初始化现有的信号量 Delete - 使任何知道信号量的进程无法使用它 Increment - 将指定量添加到信号量的...由于信号量的异步性质,调用WaitMany期间,等待列表上的某个挂起请求可能会得到满足。在这次WaitMany调用期间是否计入这个现已满足的请求,或者它是否将计入后续调用,目前尚不确定。...将OREF保存到信号量的进程也可能删除它。在这种情况下,会发生什么取决于请求的操作是否得到满足。 如果信号量是已满足的操作的目标,则将该请求标记为已将信号量递减零。

    36110

    关于PHP安全编程的一些建议

    简介 要提供互联网服务,当你开发代码的时候必须时刻保持安全意识。可能大部分 PHP 脚本都对安全问题不在意,这很大程度上是因为有大量的无经验程序员使用这门语言。...3、关闭全局变量 你可能会有的最大安全漏洞是启用了 register_globals 配置参数。幸运的是,PHP 4.2 及以后版本默认关闭了这个配置。...初始的表单像下面这样: 微信图片_20191107152754.png 运行 process.php 的时候,启用了注册全局变量的 PHP 会将该参数赋值到 $username 变量。...所有通过 post 表单传递到你 web 页面的数据都会自动保存到一个称为 $_POST 的大数组,所有的 GET 数据都保存在 $_GET 大数组。...要从一个 POST 方法表单访问username字段,可以使用 $_POST['username']。如果 username URL 中就使用$_GET['username']。

    66350

    快速掌握接口测试利器Postman

    Postman的优点 使用简单,无需搭建环境,直接使用,可以快速构建请求。 保存以供以后回放使用。 Postman有响应结果的断言功能,可以用来写测试用例。...构建GET请求示例 url输入https://postman-echo.com/get?...name=xiaoming&sex=男 get请求的参数URL,上面说过了get请求是查询数据,所以参数类型就是查询参数。 ?...1.创建测试集:左侧面板下点击New collections按钮。 ? 2.创建多条测试用例,点击左侧save按钮,保存到创建的测试集中 ?...环境变量和全局变量 接口测试时,为了方便修改和管理环境和参数,我们会把域名信息和请求的固定参数设为环境变量,把接口参数的请求或者返回参数的固定设为全局变量

    83441

    产业安全专家谈 | 企业如何进行高效合规的专有云安全管理?

    比如在制作一部网络视频作品时,首先会把录制组拍好的视频素材储存到内部偏私有云的环境,交给制作组进行编辑制作;作品完成后,会被转移到专有云中另外负责对外输出的端口上,通过公有云上的CDN,也就是内容分发网络发送给观众...Q4:专有云安全管理工作,AI发挥了怎样的作用? 洪春华:安全管理工作,AI主要的作用是对安全事件进行识别和自动化分析,即提高安全事件的发现能力和处理效率。...一方面AI能够通过异常检测、时序分析这些方法,从大量的网络活动检测出风险行为。 另一方面,考虑到那些使用专有云的企业,安全管理部门每天收集到的安全事件的数据量是非常大的。...还有就是疫情期间,有很多类似健康码的小程序被分别部署各个云平台上。针对这种情况,安全运营中心会将各个云平台的安全管理工作进行融合,并通过态势感知的功能实现对各个平台安全运营工作的统一管理。...好的安全管理中心不止要满足等2.0的要求,还要构建针对等合规技术项的持续检测分析,让企业安全运维人员能够随时了解到当前的合规情况、目前的不足和如何完善。

    1.3K30

    《Redis设计与实现》简读

    (惰性释放,避免以后需要增长操作时重分配内存,会在较短的时间内造成内存浪费,文中未提及何时是“需要时”) 最佳实践:因为对字符串的增长或缩短操作都有可能需要执行内存重分配,所以修改相同键使用SDS类型保存的时保持修改前后长度一致...(rehash)维持哈希表负载因子合理范围之内 rehash操作采用渐进式,分量将ht[0]的键值对rehash到ht[1],新键值对统一保存到ht[1] rehash步骤 扩展操作(没有执行...持久化 AOF文件通过保存所有修改数据库的写命令请求来记录服务器的数据库状态 AOF文件中所有命令均以Redis命令请求协议保存 命令请求会先保存到AOF缓冲区,再定期保存到AOF文件 AOF重写通过读取数据库的键值对来重新产生一个...、周期事件 serverCron是一个周期性事件,它是Redis周期性事件的主要函数 因为事件处理时间事件和文件事件轮训,且不会抢占,时间事件不一定在设定的时间立即执行 客户端 客户端发送的请求记录在服务端的输入缓冲区...保护Lua环境的全局变量,防止执行脚本过程修改全局变量 将修改完成后的Lua环境保存到服务器状态的Lua属性 排序 SORT命令由快速排序算法实现 SORT命令通过将元素保存在数组,再对数组进行排序

    1.3K50

    《Redis设计与实现》简读

    (惰性释放,避免以后需要增长操作时重分配内存,会在较短的时间内造成内存浪费,文中未提及何时是“需要时”) 最佳实践:因为对字符串的增长或缩短操作都有可能需要执行内存重分配,所以修改相同键使用SDS类型保存的时保持修改前后长度一致...(rehash)维持哈希表负载因子合理范围之内 rehash操作采用渐进式,分量将ht[0]的键值对rehash到ht[1],新键值对统一保存到ht[1] rehash步骤 扩展操作(没有执行BGSAVE...持久化 AOF文件通过保存所有修改数据库的写命令请求来记录服务器的数据库状态 AOF文件中所有命令均以Redis命令请求协议保存 命令请求会先保存到AOF缓冲区,再定期保存到AOF文件 AOF重写通过读取数据库的键值对来重新产生一个...、周期事件 serverCron是一个周期性事件,它是Redis周期性事件的主要函数 因为事件处理时间事件和文件事件轮训,且不会抢占,时间事件不一定在设定的时间立即执行 客户端 客户端发送的请求记录在服务端的输入缓冲区...保护Lua环境的全局变量,防止执行脚本过程修改全局变量 将修改完成后的Lua环境保存到服务器状态的Lua属性 排序 SORT命令由快速排序算法实现 SORT命令通过将元素保存在数组,再对数组进行排序

    1.3K80

    后端转前端的小老弟突然收割大厂offer,真相竟然是

    不过此人受过血虐,清楚自身实力差距,时刻以失败鞭策自己,并将秋招大厂定为目标,实习期间边做边学,持续输入,积累技术知识和项目经验,一步步完成进阶图谱的目标。然而,流畅的节奏却出现了转折。...此人战略转移 修炼正酣之时,学院传来消息:可以研。此人得知,陷入思考:研深造,学历镀金诱惑很大,而且家中父母长辈十分支持,亲友面前也可挣足面子。...于是此人接受研,并为研究生的前端修炼铺路——提前联系导师,申请前端项目,并在项目以及课程作业见缝插针使用各类前端技术,不断扩充前端进阶导图,学习之余不忘编写博客产出,当然也得兼顾学业。...二月十四,当晚面过,第一个躺在了淘系前端预备群,宣告第二次春招战役正式打响。期间,此人先广投小厂,锻炼面试套路和心态,再和大厂进行拉锯战,最终收到阿里淘系意向书,春招告一段落。...要不要读研 我当初的计划是: 有研资格,则根据春招乃至实习结果决定是否研,如果否收到富有诱惑力的offer,且可以转正,则放弃研机会,全力投入秋招和以后的工作;如果春招并不理想,则接受研,从长计议

    55020

    FreeRTOS源码探析之——任务调度相关

    RTOS,当然也可以使用全局变量,但RTOS更推荐我们使用系统自带的任务间通信机制。...全局变量会产生不可重入函数造成逻辑混乱 RTOS运行时,CPU是各个任务间跳来跳去的,若使用全局变量不恰当,会导致原本设计的逻辑产生混乱。...比如某个低优先级任务正在访问某个公共函数,并对该函数全局变量进行了修改,还未退出该函数时,更高优先级的任务抢占了CPU的使用权,并也对该函数全局变量进行了修改,此时,如果低优先级的任务若认为自己对变量修改成功...,恢复调度器之前,不会被放置就绪列表或从阻塞列表删除 此任务不能出现在事件列表,因为它是当前正在执行的任务。...pxCurrentTCB是当前正在运行的任务的任务控制块 当进入PendSV中断服务函数时,上一任务的运行环境为:xPSR,PC(任务入口地址),R14,R12,R3,R2,R1,R0(任务的形参),这些CPU寄存器的会自动保存到任务的栈

    1.4K21

    京东价格保护高并发 | 七步走保证用户体验

    >>>> 化繁从简 高并发情况下,需要快速响应,当请求过程,获取过多的数据,则有可能会降低响应速度,因此要将处理简单化,只做黄金流程即可。 ?...图-价申请 以价申请页面为例,用户进入页面,就是要进行商品价格保护,因此商品列表、申请按钮,是用户最想看见的。其他的信息,如商品最近一次价记录、下单价格等数据,就可以后续再进行加载。...价系统的主要维度是用户,因此我们按照用户PIN进行分库路由,以用PIN取Hash,然后取模。例如我们要分2个库,则算法hash%2。...c、将路由算法调整到 hash%8,部署新应用,将所有主库连接上后进行接量,此时有新、旧2个应用同时。...我们业务接单集群,只做业务处理,保存到业务DB集群,通过业务WK集群,将任务下发到JMQ中间件,任务流程处理SV集群进行消息监听,将消息分库插入到流程处理DB,每个流程处理DB都会对应一套任务处理WK

    1.9K30

    2019 C++开发工程师面试题大合集

    操作系统有一个记录空间内存的链表,当收到内存申请时遍历链表,找到第一个空间大于申请空间的堆节点,将该节点分配给程序,并将该节点从链表删除。...其中,初始化的全局变量和静态变量存放在DATA段,未初始化的全局变量和静态变量存放在BSS段。BSS段特点:程序执行前BSS段自动清零,所以未初始化的全局变量和静态变量程序执行前已经成为0....SGL版本使用开链法,使用一个链表保持相同散列的元素。...字典维持一个索引计数器变量 rehashidx , 并将它的设置为 0 , 表示 rehash 工作正式开始。...4)Event Handler:定义事件处理方法:handle_event(),以供InitiationDispatcher回调使用

    1.5K41

    web前端开发初学者十问集锦(1)

    我们知道,script标签可以放置html文档的任何位置。那实际使用,应该放置什么位置呢? 区别:不同的位置,其区别主要是javascript脚本加载执行的顺序。...对于那些需要很多JavaScript 代码的页面来说,这无疑会导致浏览器呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。...如上面body的onload事件显示调用function load()。 4.Javascript脚本定义的全局变量和函数可以跨script标签调用吗?...对于全局变量和函数都可以跨script标签调用。 但是全局变量和函数二者的区别在于:对于全局变量,不管是同一个script还是不同的script,使用时前面必须已经定义。...使用的区别上,null可以将任意类型的对象置空,将该对象的类型变成Object。

    2K10

    Android十八章:5分钟学会用MVP架构开发Android项目

    让model和view的通信通过Presenter来搞定,这样子就降低了一个activity成千代码量的可能,以后修改业务逻辑,新增方法只要model层实现好,然后Presenter层暴露接口给view...这个对象要赋值才能使用,所以我们会在LoginPresenter构造方法给mView赋值。并且构造函数调用mView的setPresenter给View层的负责登陆业务的Presenter赋值。...方法拉起登录,点击事件调用mPresenter.login(...);。...注意,mPresenter主要是为了复制给view并让view绑定Presenter,一定要先实例化mPresenter,因为LoginPresenter的构造函数,会传入mView,才会让LoginPresenter...的mView有,执行LoginPresenter里面的login方法不会报错。

    81920
    领券