首页 文章 精选 留言 我的

精选列表

搜索[手游加固],共7832篇文章
优秀的个人博客,低调大师

灵魂画:漫画图解 SSH

OpenSSL 本身是一个软件库,这个软件被广泛的应用在系统服务器当中,他的主要功能是在网络通信的过程中,保证数据的一致性以及数据传输过程中的安全性。软件本身是由C语言编写,这使得他具备了跨平台的特性,OpenSSL 主要包括如下三大功能: 加解密: OpenSSL 具有丰富的加解密算法库,支持不同的加解密方式以及存储秘钥的方式,如对称加密,非对称加密,信息摘要等内容 SSL 协议: OpenSSL 实现了 SSL 协议的的 SSLv2 和 SSLv3,支持了其中绝大部分算法协议 证书操作: OpenSSL 自身提供了一种文本数据库,支持证书的管理功能,包括证书秘钥的产生、请求产生、证书签发、吊销和验证等功能。 加解密的几种形式 加解密的形式通常分为以下几种: 对称加密算法 非对称加密算法 不可逆加密算法 下面我们挨个来看这些加密算法。 对称算法 对称算法是指信息的发送方和接收方使用同一份秘钥去加解密数据。AES、DES 等都是常用的对称加密算法。 对称算法的优点是加解密的速度快,适合对于大数据量加密。缺点是因为只有一个秘钥,所以秘钥管理困难,只要暴露了,就很容易破解加密后的信息。 非对称算法 非对称算法是指信息的发送方和接收方分别持有一份秘钥。一份公开发布,称公钥;一份私有,称秘钥。秘钥可以导出对应的公钥。RSA、DSA 等是常用的非对称加密算法。 一般情况下,信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。不同的使用场景下,也会衍生出其他的使用方法,比如私钥加密,公钥解密。 RSA 加解密算法 RSA 是一个流行的非对称加密算法, 生成公私钥内容如下: # 生成秘钥 OpenSSL genrsa -out test.key 1024 # 从秘钥中导出公钥 OpenSSL rsa -in test.key -pubout -out test_pub.key # 公钥加密文件 echo "test" > hello OpenSSL rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello.en # 私钥解密文件 OpenSSL rsautl -decrypt -in hello.en -inkey test.key -out hello.de 不可逆加密算法 不可逆加密算法主要用于校验文件的一致性,摘要算法就是其中一种。常用的摘要算法有 MD5。 摘要算法 摘要算法用来把任何长度的明文以一定规则变成固定长度的一串字符。在做文件一致性校验的时候,我们通常都是先使用摘要算法,获得固定长度的一串字符,然后对这串字符进行签名。接收者接收到文件后,也会执行一遍摘要算法后再签名。前后数据一致,则表示文件在传输过程没有被窜改。 base64 特别需要注意的是,base64 不是加密算法,它是编码方式。 它可以方便传输过程 ASCII 码和二进制码之间的转换。类似于图片或者一些文本协议,在传输过程中通常可以使用 base64 转换成二进制码进程传输。 SSH 加密流程 客户端发送自己的密钥 ID 给服务器端 服务器在自己的 authorized_keys 文件中查找是否存在此 ID 的公钥 如果有,则服务器生成一个随机数,用当前 ID 的公钥加密 服务器将加密后的随机数发给客户端 客户端用私钥解密该随机数,然后在本地为随机数做 MD5 加密 客户端将该 MD5 哈希发给服务器端 服务器端为一开始自己生成的随机数也做一个 MD5 哈希,然后用通讯通道“公共的密钥”将该哈希加密,再跟客户端发来的内容进行对比。如果双方内容一致,则通过验证,开放访问权限给客户端 深入了解 OpenSSL 后,其对密码学技术的功能支持会让你激动不已,如果有兴趣可以更加深入地了解其中的内容以及试验不同加密方式在不同场景中的使用。放个小预告: 后续还会推出一篇用 pyo3 来给 python 编写 rsa 正反向加解密模块的文章。 推荐阅读 webpack 从 0 到 1 构建 vue MySQL 那些常见的错误设计规范

优秀的个人博客,低调大师

来,教你写一好SQL!

点击关注上方“SQL数据库开发”, 设为“置顶或星标”,第一时间送达干货 本人负责的项目主要采用阿里云数据库 MySQL,最近频繁出现慢 SQL 告警,执行时间最长的竟然高达 5 分钟。 导出日志后分析,主要原因竟然是没有命中索引和没有分页处理。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。 改造这些 SQL 的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。 MySQL 性能 ①最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL 没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴 Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB,才推荐分库分表。 性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL 配置、数据表设计、索引优化。500 万这个值仅供参考,并非铁律。 我曾经操作过超过 4 亿行数据的单表,分页查询最新的 20 条记录耗时 0.6 秒,SQL 语句大致是: selectfield_1,field_2fromtablewhereid<#{prePageMinId}orderbyiddesclimit20 prePageMinId 是上一页数据记录的最小 ID。 虽然当时查询速度还凑合,随着数据不断增长,有朝一日必定不堪重负。 分库分表是个周期长而风险高的大活儿,应该尽可能在当前结构上优化,比如升级硬件、迁移历史数据等等,实在没辙了再分。对分库分表感兴趣的同学可以阅读分库分表的基本思想。 ②最大并发数 并发数是指同一时刻数据库能处理多少个请求,由 max_connections 和 max_user_connections 决定。 max_connections 是指 MySQL 实例的最大连接数,上限值是 16384,max_user_connections 是指每个数据库用户的最大连接数。 MySQL 会为每个连接提供缓冲区,意味着消耗更多的内存。如果连接数设置太高硬件吃不消,太低又不能充分利用硬件。 一般要求两者比值超过 10%,计算方法如下: max_used_connections/max_connections*100%=3/100*100%≈3% 查看最大连接数与响应最大连接数: showvariableslike'%max_connections%';showvariableslike'%max_user_connections%'; 在配置文件 my.cnf 中修改最大连接数: [mysqld]max_connections=100max_used_connections=20 ③查询耗时 0.5 秒 建议将单次查询耗时控制在 0.5 秒以内,0.5 秒是个经验值,源于用户体验的 3 秒原则。如果用户的操作 3 秒内没有响应,将会厌烦甚至退出。 响应时间=客户端 UI 渲染耗时+网络请求耗时+应用程序处理耗时+查询数据库耗时,0.5 秒就是留给数据库 1/6 的处理时间。 ④实施原则 相比 NoSQL 数据库,MySQL 是个娇气脆弱的家伙。它就像体育课上的女同学,一点纠纷就和同学闹别扭(扩容难),跑两步就气喘吁吁(容量小并发低),常常身体不适要请假(SQL 约束太多)。 如今大家都会搞点分布式,应用程序扩容比数据库要容易得多,所以实施原则是数据库少干活,应用程序多干活: 充分利用但不滥用索引,须知索引也消耗磁盘和 CPU。 不推荐使用数据库函数格式化数据,交给应用程序处理。 不推荐使用外键约束,用应用程序保证数据准确性。 写多读少的场景,不推荐使用唯一索引,用应用程序保证唯一性。 适当冗余字段,尝试创建中间表,用应用程序计算中间结果,用空间换时间。 不允许执行极度耗时的事务,配合应用程序拆分成更小的事务。 预估重要数据表(比如订单表)的负载和数据增长态势,提前优化。 数据表设计 ①数据类型 数据类型的选择原则,更简单或者占用空间更小: 如果长度能够满足,整型尽量使用 tinyint、smallint、medium_int 而非 int。 如果字符串长度确定,采用 char 类型。 如果 varchar 能够满足,不采用 text 类型。 精度要求较高的使用 decimal 类型,也可以使用 BIGINT,比如精确两位小数就乘以 100 后保存。 尽量采用 timestamp 而非 datetime。 相比 datetime,timestamp 占用更少的空间,以 UTC 的格式储存自动转换时区。 ②避免空值 MySQL 中字段为 NULL 时依然占用空间,会使索引、索引统计更加复杂。从 NULL 值更新到非 NULL 无法做到原地更新,容易发生索引分裂影响性能。 因此尽可能将 NULL 值用有意义的值代替,也能避免 SQL 语句里面包含 is not null 的判断。 ③Text 类型优化 由于 Text 字段储存大量数据,表容量会很早涨上去,影响其他字段的查询性能。建议抽取出来放在子表里,用业务主键关联。 索引优化 索引分类如下: 普通索引:最基本的索引。 组合索引:多个字段上建立的索引,能够加速复合查询条件的检索。 唯一索引:与普通索引类似,但索引列的值必须唯一,允许有空值。 组合唯一索引:列值的组合必须唯一。 主键索引:特殊的唯一索引,用于唯一标识数据表中的某一条记录,不允许有空值,一般用 primary key 约束。 全文索引:用于海量文本的查询,MySQL 5.6 之后的 InnoDB 和 MyISAM 均支持全文索引。由于查询精度以及扩展性不佳,更多的企业选择 Elasticsearch。 索引优化原则: 分页查询很重要,如果查询数据量超过 30%,MySQL 不会使用索引。 单表索引数不超过 5 个、单个索引字段数不超过 5 个。 字符串可使用前缀索引,前缀长度控制在 5-8 个字符。 字段唯一性太低,增加索引没有意义,如:是否删除、性别。 合理使用覆盖索引,如下所示: selectlogin_name,nick_namefrommemberwherelogin_name=? login_name, nick_name 两个字段建立组合索引,比 login_name 简单索引要更快。 SQL 优化 ①分批处理 博主小时候看到鱼塘挖开小口子放水,水面有各种漂浮物。浮萍和树叶总能顺利通过出水口,而树枝会挡住其他物体通过,有时还会卡住,需要人工清理。 MySQL 就是鱼塘,最大并发数和网络带宽就是出水口,用户 SQL 就是漂浮物。 不带分页参数的查询或者影响大量数据的 update 和 delete 操作,都是树枝,我们要把它打散分批处理,下面举例说明。 业务描述: 更新用户所有已过期的优惠券为不可用状态。 SQL 语句: updatestatus=0FROM`coupon`WHEREexpire_date<=#{currentDate}andstatus=1; 如果大量优惠券需要更新为不可用状态,执行这条 SQL 可能会堵死其他 SQL,分批处理伪代码如下: intpageNo=1;intPAGE_SIZE=100;while(true){List<Integer>batchIdList=queryList('selectidFROM`coupon`WHEREexpire_date<=#{currentDate}andstatus=1limit#{(pageNo-1)*PAGE_SIZE},#{PAGE_SIZE}');if(CollectionUtils.isEmpty(batchIdList)){return;}update('updatestatus=0FROM`coupon`wherestatus=1andidin#{batchIdList}')pageNo++;} ②操作符 <> 优化 通常 <> 操作符无法使用索引,举例如下,查询金额不为 100 元的订单: selectidfromorderswhereamount!=100; 如果金额为 100 的订单极少,这种数据分布严重不均的情况下,有可能使用索引。 鉴于这种不确定性,采用 union 聚合搜索结果,改写方法如下: (selectidfromorderswhereamount>100)unionall(selectidfromorderswhereamount<100andamount>0) ③OR 优化 在 Innodb 引擎下 OR 无法使用组合索引,比如: selectid,product_namefromorderswheremobile_no='13421800407'oruser_id=100; OR 无法命中 mobile_no + user_id 的组合索引,可采用 union,如下所示: (selectid,product_namefromorderswheremobile_no='13421800407')union(selectid,product_namefromorderswhereuser_id=100); 此时 id 和 product_name 字段都有索引,查询才最高效。 ④IN 优化 IN 适合主表大子表小,EXIST 适合主表小子表大。由于查询优化器的不断升级,很多场景这两者性能差不多一样了。 尝试改为 Join 查询,举例如下: selectidfromorderswhereuser_idin(selectidfromuserwherelevel='VIP'); 采用 Join 如下所示: selecto.idfromordersoleftjoinuseruono.user_id=u.idwhereu.level='VIP'; ⑤不做列运算 通常在查询条件列运算会导致索引失效,如下所示,查询当日订单: selectidfromorderwheredate_format(create_time,'%Y-%m-%d')='2019-07-01'; date_format 函数会导致这个查询无法使用索引,改写后: selectidfromorderwherecreate_timebetween'2019-07-0100:00:00'and'2019-07-0123:59:59'; ⑥避免Select All 如果不查询表中所有的列,避免使用 SELECT *,它会进行全表扫描,不能有效利用索引。 ⑦Like 优化 Like 用于模糊查询,举个例子(field 已建立索引): SELECTcolumnFROMtableWHEREfieldlike'%keyword%'; 这个查询未命中索引,换成下面的写法: SELECTcolumnFROMtableWHEREfieldlike'keyword%'; 去除了前面的 % 查询将会命中索引,但是产品经理一定要前后模糊匹配呢?全文索引 fulltext 可以尝试一下,但 Elasticsearch 才是终极武器。 ⑧Join 优化 Join 的实现是采用 Nested Loop Join 算法,就是通过驱动表的结果集作为基础数据,通过该结数据作为过滤条件到下一个表中循环查询数据,然后合并结果。 如果有多个 Join,则将前面的结果集作为循环数据,再次到后一个表中查询数据。 驱动表和被驱动表尽可能增加查询条件,满足 ON 的条件而少用 Where,用小结果集驱动大结果集。 被驱动表的 Join 字段上加上索引,无法建立索引的时候,设置足够的 Join Buffer Size。 禁止 Join 连接三个以上的表,尝试增加冗余字段。 ⑨Limit 优化 Limit 用于分页查询时越往后翻性能越差,解决的原则:缩小扫描范围,如下所示: select*fromordersorderbyiddesclimit100000,10耗时0.4秒select*fromordersorderbyiddesclimit1000000,10耗时5.2秒 先筛选出 ID 缩小查询范围,写法如下: select*fromorderswhereid>(selectidfromordersorderbyiddesclimit1000000,1)orderbyiddesclimit0,10耗时0.5秒 如果查询条件仅有主键 ID,写法如下: selectidfromorderswhereidbetween1000000and1000010orderbyiddesc耗时0.3秒 如果以上方案依然很慢呢?只好用游标了,感兴趣的朋友阅读 JDBC 使用游标实现分页查询的方法。 其他数据库 作为一名后端开发人员,务必精通作为存储核心的 MySQL 或 SQL Server,也要积极关注 NoSQL 数据库,他们已经足够成熟并被广泛采用,能解决特定场景下的性能瓶颈。 编辑:陶家龙 出处:www.cnblogs.com/xiaoyangjia/p/11267191.html ——End—— 后台回复关键字:1024,获取一份精心整理的技术干货 后台回复关键字:进群,带你进入高手如云的交流群。 推荐阅读 不懂就问:为什么SELECT * 会导致查询效率低? SQL 语法速成手册 精心整理了一套SQL高级函数,建议收藏 一款SQL自动检查神器,再也不用担心SQL出错了! SQL 语句中 where 条件后 写上1=1 是什么意思 这是一个能学到技术的公众号,欢迎关注 点击「阅读原文」了解SQL训练营 本文分享自微信公众号 - SQL数据库开发(sql_road)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

苹果奇葩修漏洞,Siri被“剁

前两天 iPhone 6s、iPhone 6s Plus 上的Siri 被爆出严重的漏洞,让用户可以通过一连串“调戏”手段把Siri搞懵X。具体手法如下: 呼出 Siri,命令它进行Twitter搜索。如果搜索结果包含可执行的联系人数据,比如电子邮箱地址,接下来利用3D Touch手势呼出相关菜单,就可以绕过安全验证发送电子邮件、添加或修改联系人信息。 【使用 Siri 和 3D Touch 绕过安全验证演示】 平胸而论,Siri给出这些丰富的搜索结果也是出于“好心”。而且,Siri 的热情并不是造成漏洞的主要原因,绕过安全验证的关键步骤是使用3D Touch 呼出的菜单(3D Touch Quick Action)。 不过,反应迅速的苹果在今天就宣布修复了这个漏洞。正当童鞋们好奇自己为什么没有收到 iOS 升级推送的时候,苹

优秀的个人博客,低调大师

霸都90后程序猿的第一次川

本来对象今年想去云南玩的,然后因为疫情原因我们选择了去四川的稻城游玩。(报了携程的旅游社) 5.1日 乘飞机 乘坐上午9:20的飞机,由于上午收拾的一些东西,加上节假日的“拥堵”,差点让我们没有赶上这趟航班,还是我们坚持没有让司机上高速,不然不知道会堵到什么时候。 后面紧赶慢赶,插了安检的队才上了飞机,这是长这么大第一次坐飞机(“城里人”不要笑话我)。 飞机上的景色还是很不错的,由于我的拍照技术有限,我把返程(在飞机上)的一些景也搬到这儿了。 吃午餐逛锦里古街 下午1:00左右 赶到酒店,酒店不是很大,却是我们接下来住的几天中 ,住的最好的啦。(基本上所有旅游社都会这样安排),小憩了一会,我们便选了一家做烤鱼的店(烤匠麻辣烤鱼)吃饭,美团上评分还是比较高的。我们点了一份黔鱼-老坛酸菜味烤鱼(不敢点太辣的,因为四川的辣跟安徽的辣不是一个级别的)。当然这顿也是我们吃的最好的一顿,后面高反等原因吃的东西一般,另外也是没有胃口。 过了两三个钟头我们叫了个出租车,去锦里古街那边逛逛。这个很多玩具、配饰都很有四川的特色,比如有很多熊猫标识的戒指 、吊坠、钥匙链等等,有很多变脸的玩具。 主播“不白吃”经常推 四川的兔头产品,口语是没有一只兔子是无辜的,没有一只兔子能活着离开四川。这边到处可见的就是买卖 兔 的“生意”。 晚上的夜景也是很漂亮的,有很多艺人在这边,有说书的、变脸的、唱戏的、特色铜人、抖音热门的驻场歌手 等等。 5.2日 今日行程 今天会到 成都的康定情歌(木格措)景区(5-2到5.3 都是6点左右就要起床,吃饭出发 这个比上班还”勤快“。),简单介绍下,木格措景区风景区坐落于贡嘎山脉中段,距离康定市区约17公里,系国家AAAA级旅游景区、世界自然遗产提名地、国家级重点风景名胜区。本来今天有个游艇的项目,由于堵车的原因,导游征求大家意见,说 如果去玩,可能会12点左右才能回酒店,会弄的第二天比较累。然后大家伙决定不去了,导游把这部分的费用退还给我们了。 康定情歌的海拔大约在2300左右,气压约有750百帕。 今天没穿什么厚点的衣服,车上空调一直开着,搞得有点闹肚子,中午在成名饭店吃完中饭,下午果断多穿点。下午到达海拔高的地方有些高原反应,反应就是有点恶心、头晕。(切记高原反应为适应前,不要洗澡、洗头,这样感冒会导致肺气肿,严重可能会挂掉,当然也不能剧烈的运动,像我们当天有个7岁的小孩子就因此送到急诊,所以建议 有心脏病 高血压的患者,还有10岁以下和60岁以上的人不要轻易上高原,以免”受罪“) ** 看到康定情歌 四个大字了?** 5.3日 今日行程 今天会经过 新都桥-雅江-理塘【勒通古镇】,从丁真的家乡稻城路过。 经过 : 剪子弯山 和 卡子拉山 在理塘【勒通古镇】,我们在当地导游的带领下,了解一些当天的历史,抱歉这个人名实在不是很好记,就记住了仓央嘉措,很多墙壁上刻上了仓央嘉措的诗,我们经过了 长青春科尔寺,里面供奉了几位“活佛”,有很多很气派的佛像,里面有很多唐卡(指用彩缎装裱后悬挂供奉的宗教卷轴画,是藏族的非遗文化之一)很漂亮,因为不能拍摄的原因这边不能让大家观赏了(藏区人民都是虔诚的佛教徒)。藏族导游还给我们演示了一种驱赶牦牛的鞭子(主要是为了放牧),具体名称没听清,挥舞起来很是威武。 5.4日 今日行程 今天全天会走长线,从香格里拉镇坐车到稻城景区,先坐售票买观光车票,这里是电影”从你的全世界路过“的拍摄点,里面有句经典的台词,”我偷偷的告诉你,有一个地方叫做稻城,我要和我最心爱的人一起去哪里,看蔚蓝的天空,看白色的雪山,看金色的草地,看一场秋天的童话。“,这边路线往返是11公里左右,可以骑洛绒牛场的马,费用是300元/人,但可以骑的马匹数量是30匹左右,往往是供不应求。 如果你骑马的话,大概能向上走3公里左右,沿路上我看到牵马的藏民都有点气力不支,可见高海拔的地方,往上走并不是那么容易,原因昨晚休息的比较好,所以今天的“反应”不是很大,甚至有点想吃黄焖鸡(开个玩笑)。走过了3公里 其实都有点不想向上走了,因为越向上 空气越稀薄,呼吸就越困难,还好带着氧气瓶“续命”。走着走着 我们看到了指示牌,向左1km是牛奶海,向右750m是五色海,有人告诉我们可以先去牛奶海然后再向下就可以去五色海。我们就这样穿着雨衣向上走了,因为这时都在下雪了,看起来是很美,但寒风吹的脑瓜子嗡嗡的(后脑勺有点疼)。 路中艰险万分(此处省略3万9千三百五十二个字),下面是牛奶海和五色海,个人拍摄能力有限,请各位看官海涵。值得一提的事,下山时 有藏民准备了姜汤给我们,热腾腾的姜汤,只需要5元(这个价格是很便宜了,因为景区入口就10元了,这里都已经是很高的地方,手机也没信号,人家狮子大开口50元一杯,你身体不舒服不照样也要买?),喝完挺管用的,头马上就不疼了。 5.5日 今日行程 吃完早饭,准备去藏族家参观,导游说藏民的普通话不是很好,让我们不要笑话他们,一下车藏族同胞就把红色的哈达挂在我们的脖子上,每个人手掌居合向藏族同胞说了句 扎西德勒,这时候我才知道我们的导游是羌族的,我之前一直以为是藏族的,现在换藏族的导游给我们介绍,她是位女导游,皮肤呈高原红色,一看就是藏民,她给我们说了她的名字,由于比较难记,她让我们称呼她为“卓玛”,她告诉我们说一般女性可以称为“卓玛”,男性可以称为“扎西”,她先带领我们去他们家的佛堂(之前他们的佛堂是不对外开放的)。由于佛堂里面不给拍照,下面也只能干讲了,佛堂里面供奉着“圣水”,又称无根之水,熟悉西游记的都知道何为无根之水,即为露水/雨水(未沾地的水)/霜水等。由于地势比较高,所以接圣水的器皿接到的往往是雪水,要等它化了 才能拿到佛堂供奉,使用的器皿为铜器和银器。这两种金属的器皿对藏民来说是神圣的。 中午一起在这里进食,然后我们吃了他们的青稞面、牦牛蛋、原生的土鸡肉等,饮了藏红花茶(原本是让我们喝酥油茶,因为很多人和不习惯,就换了)。本来我们还在想牦牛蛋是傻子(牦牛不是哺乳动物?居然会下蛋?),后面“卓玛”导游告诉我们,牦牛蛋其实是土豆,在他们这里只有土豆和青稞等少量的植物能种植起来,目前响应政府的“退耕还林”的政策,他们的畜牧业减少了一半,政府鼓励他们发展旅游业。 吃过午饭后,我们就到下面进行购物。买了一些奶制品和牦牛干等等。晚上我们去酒店附近逛了一圈,给家人带了一些首饰,在广场一群人围着跳起来了藏舞。一段时间人越跳越多,我对象拉着我也进去了,由于怕人认出,我带上了口罩,这个肢体不协调,我都想找个洞钻进去,幸亏没人认识我。这个就差一个篝火了,很像还珠格格里面的藏民围着篝火跳舞,现代社会邻居几年都不认识,能像藏族人民一样围着篝火起舞,怕也是很难得的事了。 5.6日 返程 此处省略3千八百字。 欢迎关注我的公众号:程序员ken,程序之路,让我们一起探索,共同进步。

优秀的个人博客,低调大师

逆天Kali带你遍大江南北~安全之前人铺路!

Linux相关知识:http://www.cnblogs.com/dunitian/p/4822808.html#linux 0.Linux基础学习(基本指令) http://www.cnblogs.com/dunitian/p/4822807.html 1.Kali安装到移动硬盘或者U盘中~Linux系列通用方法(包括Android) http://www.cnblogs.com/dunitian/p/4707828.html 2.Kali安装VMware tools(详细+异常处理) http://www.cnblogs.com/dunitian/p/4709210.html 3.修改更新源sources.list,提高软件下载安装速度(2017.04.05的源) http://www.cnblogs.com/dunitian/p/4712852.html 4.Kali安装中文输入法(谷歌pinyin + 其他) http://www.cnblogs.com/dunitian/p/4712323.html 5.如何使主机和虚拟机IP处于同一网段(内网渗透专用) http://www.cnblogs.com/dunitian/p/4714249.html 6.Kali 2.0不能使用SSH连接的解决方法 http://www.cnblogs.com/dunitian/p/6268304.html#kali Kali信息收集系列: Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html Kali信息收集~ 1.Google Hacking + Github Hackinghttp://www.cnblogs.com/dunitian/p/5074765.html Kali信息收集~2.Whois :域名信息 http://www.cnblogs.com/dunitian/p/5074768.html Kali信息收集~3.子域名系列 http://www.cnblogs.com/dunitian/p/5074772.html Kali信息收集~4.DNS系列 http://www.cnblogs.com/dunitian/p/5074773.html Kali信息收集~ 5.The Harvester:邮箱挖掘器 http://www.cnblogs.com/dunitian/p/5074776.html Kali信息收集~6.Dmitry:汇总收集 http://www.cnblogs.com/dunitian/p/5074777.html Kali信息收集~7.FPing :ip段扫描 http://www.cnblogs.com/dunitian/p/5074783.html Kali信息收集8.Nmap :端口扫描 http://www.cnblogs.com/dunitian/p/5074784.html 待续......................以后有时间再继续更新 ~持续更新中 本文转自毒逆天博客园博客,原文链接:http://www.cnblogs.com/dunitian/p/4709751.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

最佳实践系列丨Docker EE 供应链安全加固指南(一)

本文首发自“Docker公司”公众号(ID:docker-cn)编译丨小东每周一、三、五 与您不见不散! 创建安全的镜像供应链至关重要。每个组织都需要权衡所有可用选项并了解安全风险。可供选择的镜像过多大大增加了挑选难度。归根结底,每个组织都需要了解所有镜像的来源,即使它是来自于 store.docker.com 中的可信认的上游镜像时也是如此。将镜像导入基础架构后,很有必要进行漏洞扫描。而带镜像扫描功能的 Docker Trusted Registry 提供了深入了解漏洞的能力。最后,整个过程需要实现自动化以提供简单的审核线索。 学习内容 本参考架构介绍了安全供应链的组件。主题包括使用 Git、Jenkins 和 Docker 商店来为供应链提供素材。可以使用同类工具替代本参考架构中列出的和用作示范的所有工具。安全供应链可分为三个阶段: 阶段 1 是代码镜像仓库。 阶段 2 是持续集成。 阶段 3 是可以扫描镜像的镜像库。 尽管存在许多替代工具,本文档主要关注一组工具组合: GitLab(阶段 1) Jenkins(阶段 2) Docker Trusted Registry(阶段 3) 对于此参考架构,需要牢记一条格言“任何人都不得将构建或部署直接投入生产的代码!” 先决条件 在继续之前,请先了解并熟悉: Docker 文档中的 Docker 概念:https://docs.docker.com/engine/docker-overview/ 保护 Docker EE 安全和安全最佳实践:https://success.docker.com/article/security-best-practices 缩写词 在本文档中使用了以下缩写词: UCP = Universal Control PlaneDTR = Docker Trusted RegistryDCT = Docker Content TrustEE = Docker 企业版RBAC = Role Based Access Controls(基于角色的访问控制)CA = Certificate Authority(认证中心)CI = Continuous Integration(持续集成)CD = Continuous Deployment(持续部署)HA = High Availability(高可用性)BOM = Bill of Materials(物料清单)CLI = Command Line Interface(命令行接口) 原因 您需要安全供应链的原因有多个。从理论上讲,必须为生产环境创建安全供应链。非生产环境管道也可因拥有自动化基础镜像而受益。提到供应链,就该想起一些重要的格言: “任何人都不得将构建或部署直接投入生产的代码!”它可以防止恶意代码偷偷进入通过审核的代码。它也有助于预防内部威胁。 “一切都需要审核线索。”如果能够证明内容、时间、原因、和方式,就可以简化每个人的工作。 “每个供应链都需要已知安全源头。”您会在沼泽中建房吗? 理想情况下,您希望用最快的速度获取镜像。您希望确保镜像的成功可以贯穿整个供应链。限制所要采取的步骤的数量是减少移动组件的理想方式。总体来看,只需要两个组件,Git (GitLab) 和 Docker Trusted Registry (DTR)。 下面是当今途径的基本图表。 已知可靠源头 无论供应链有多出色,它都依赖于从“已知可靠源头”着手。阶段 1 可以分为两个可能的起点。 来自 Docker 商店的自动化、预制、(最好)经认证的镜像; 带有 Dockerfile 和其他 YAML 的私有安全 Git 镜像仓库; 两者都有充分的理由。Docker 商店途径意味着继承上游镜像时面临少许风险,取决于供应商构建它的方式。Git 途径意味着构建镜像时需要冒风险。两个入口点都各有优缺点。两个起点都有可验证的内容,以确保它们是“已知可靠源头”。 在后面的部分将对两个源头进行详细介绍。 Docker 商店 Docker 商店 store.docker.com 应当是查找镜像的首选位置。它为每个组织提供了巨大的优势。商店中包含大量随时可用的镜像。镜像所有者负责更新镜像并确保镜像无漏洞。Docker 商店保证了所有“认证”和“官方”镜像都经过漏洞扫描。对于“认证”镜像,Docker 商店和供应商还会采取更进一步的措施。认证镜像需要经历全面的审查流程。从根本上说,供应商和 Docker 为认证镜像提供容器可正常工作的保证。商店中还包含“官方”镜像。“官方”镜像由 Docker 构建,并且也会由 Docker 定期进行更新。Docker 商店和 Docker Hub 中还包含社区镜像。非万不得已请勿使用社区镜像。 挑选合适的上游镜像 ​从商店中挑选合适的镜像至关重要。决定使用哪个镜像的决策过程非常简单。请优先考虑认证镜像,然后再考虑官方镜像。最后考虑社区镜像。请仅使用“自动构建”的社区镜像。这有助于确保它们会被及时更新。验证镜像的新鲜度也很重要。 以下内容节选自有关认证镜像的一篇博文: Docker 认证计划旨在帮助技术合作伙伴和企业客户识别在质量、合作支持及合规性方面表现超群的容器和插件。Docker 认证以可用的 Docker EE 基础架构为标准,借助 Docker 和发布者的支持,为企业提供在容器中运行更多技术的可靠途径。借助显而易见的徽章,客户可以快速识别出经认证的容器和插件,并且可以确信它们采用最佳实践构建,经测试可在 Docker EE 上平稳运行。 在 Docker 商店中搜索镜像时,请务必选中 Docker 认证复选框。 Docker 商店的一个出色功能是镜像都需要经过安全漏洞扫描。此功能使您可在拉取镜像前先对镜像进行检查。 除了商店中的“认证”镜像之外,另一种很棒的资源是 Hub 的“官方”镜像。所有这些“官方”镜像都是自动化的,经过扫描且更新频率很高。 当使用非官方或未经认证的上游镜像时,需要确保镜像为自动构建。一个重要的步骤是审查 Dockerfile,以确保镜像中仅包含正确的数位。万不得已时,可考虑创建社区的“自动”镜像。 请注意,任何从 Hub 或商店中拉取的镜像也都应通过 Docker Trusted Registry 接受相同级别的详细审查。 Git - (GitLab CE) 在现代企业中,版本控制系统对于所有代码都很重要。Git 等版本控制系统也是跟踪配置的出色方式。Git 真正成为了企业的“数据源”。多家公司都搭建了 Git 服务器。GitLab CE 是出色的开源 Git 服务器。在下面的示例中使用的是 GitLab 社区版。 理想的 Git 镜像仓库结构包含构建和部署所需的所有文件。具体来说,就是 Dockerfile、代码和 stack.yml。 Dockerfile是用来构建 Docker 镜像的“食谱”。代码文件应该简单易懂。 stack.yml 用来描述应用栈。 stack.yml 也被称为 compose YAML 文件。下面的示例使用 Docker 设置了一个 GitLab 实例。该实例应位于您的 Docker 企业版集群外部。 设置 针对使用 Docker 镜像设置,GitLab 提供了一些非常好的说明。Git 默认使用 SSH 端口 (22),因此无需更改主机或 Git 的端口。下面展示了如何将 GitLab 的端口移动到 2022。对于生产环境来说,移动主机的 SSH 端口可能更为合理。另外,对于有状态安装,需要使用永久存储。使用应用栈文件来简化安装过程: > > version: "3.3" services: gitlab: image: gitlab/gitlab-ce:latest ports: - 80:80 - 443:443 - 2022:22 volumes: - /var/run/docker.sock:/var/run/docker.sock - /srv/gitlab/config:/etc/gitlab - /srv/gitlab/logs:/var/log/gitlab - /srv/gitlab/data:/var/opt/gitlab restart: always networks: gitlab: gitlab-runner: image: gitlab/gitlab-runner:alpine volumes: - /var/run/docker.sock:/var/run/docker.sock - /srv/gitlab-runner/config:/etc/gitlab-runner - /root/.docker:/root/.docker - /root/.notary:/root/.notary restart: always networks: gitlab: networks: gitlab: 将``` 以上内容保存为 gitlab.yml。然后执行以下命令: $ sudo docker swarm init$ sudo docker stack deploy -c gitlab.yml gitlab 注意,GitLab 需要一分钟来启动。 ---- #### 镜像仓库内容 利用“数据源”的一个好方法是将构成镜像的所有内容与应用栈存储在一起。该示例为三层应用,由“Web”、“middleware”和“db”组成。将所有三个 Dockerfile 和 stack.yml 存储在相同的位置非常便于所有团队进行构建和部署。理论上,目录结构中应包含: 1. 名称为 web.dockerfile、middleware.dockerfile 和 db.dockerfile 的 Dockerfile。 1. 每层的源数位和工件(位于另一个目录中)。 1. stack.yml(用于 docker stack deploy)。 1. GitLab CI 描述 .gitlab-ci.yml(后面将介绍)。 别忘了在 Dockerfile 中使用多阶段构建。多阶段构建有助于大幅减小生成的镜像的大小。现在,您可以自动实现这一切。 <p style="text-align:center">![screenshot](https://yqfile.alicdn.com/9d5740f041bf21085c02cec216eeb1f432d472f8.png)</p> 下一部分将介绍持续集成自动化的相关内容。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册