Web安全之XSS

什么是XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会...

展开...

头条APK瘦身之路

随着版本迭代,功能增加安装包体积也会慢慢增大。 今日头条576版本APK达到了25M,通过一系列的优化,到目前的607版本为12M。本文主要是介绍头条APK瘦身中用到的一些方法。 APK分析 既然是要优化APK的大小,那首先就得看下APK文件的构成。 Android Studio在2.2版本添加 A...

展开...

域名劫持资源重加载方案

痛点: ​ 在部分用户的网络环境中,页面CDN域名被劫持,导致前端资源无法正常加载,而页面主域名正常,导致页面可以访问,但是功能不正常。 背景: ​ 通常来说,主域名一般都是众所周知的域名,运营商一般不会劫持(本文特指劫持后导致无法加载,注入这些不在本文考虑范围内),主域名被劫持的可能性...

展开...

内涵Golang DAO

背景: 内涵近段时间迁移了部分API代码到Golang,主要是为了使用Golang中方便的goroutine。但是开发中很多冗余代码需要重复开发(缺少一个组件能够收敛各种RPC调用,复用代码,减少开发量),同时,又不希望组件使用过多的黑魔法,导致结构复杂,开发维护麻烦。 要求 综上...

展开...

Redux源码剖析及应用

使用redux+react已有一段时间,刚开始使用并未深入了解其源码,最近静下心细读源码,感触颇深~ 本文主要包含Redux设计思想、源码解析、Redux应用实例应用三个方面。 背景: React 组件 componentDidMount 的时候初始化 Model,并监听 Model 的 chang...

展开...

机器内存爆满问题排查

1 背景 两周前广告开屏服务突然503报警不断,先查看了各种业务监控没发现流量等有什么大变化,因为不久之前出过一次机器出问题的情况,马上去查看了机器是不是正常,果然内存几乎涨满了。大概十来分钟内存就会达到90%多,然后进程就重启了,但是从日志来看并没有什么异常情况,好在并没有将机器拖死。当时第一件事...

展开...

iOS端一次视频全屏需求的实现

对于一个带有视频播放功能的app产品来说,视频全屏是一个基本且重要的需求。虽然这个需求看起来很简单,但是在实现上,我们前后迭代了三套技术方案。这篇文章将介绍这三种实现方案中的利弊和坑点,以及实现过程中积累的经验。 需求要点: 在屏幕旋转的动画中,需要保持播放器之外的界面布局(比如“First Vie...

展开...

头条视频详情页新交互实现方案

背景 头条视频App在1.0.8版本中准备优化打开详情页的交互体验。目的是使打开详情页显得更轻,减少用户进入详情页的交互成本,提升详情页的打开率。 首先来看下新旧交互方式的对比(左为旧交互,右为新交互): 新旧交互的主要差别在,从列表页中播放视频切换到详情页播放视频的过程中,视频是不会暂停的,...

展开...

mc集群写入恍惚问题排查

1.现象 业务方反馈在向memcache集群写入数据时,出现不稳定。表现为向mc写入一个creative和ad对象的list,有的时候能写进去并读出来,有的时候写成功但是读不出来。 2.问题排查 2.1 复现问题 a.有的key没有问题,能够一直写+读。 b.有的key一直都是写ok,读None。...

展开...

Redis migrate slots丢key排查

1.问题 redis slots迁移的时候,在迁移之后key数量会变少. 2.排查 2.1思考 redis 3.x也是比较成熟的产品了,为什么会丢key?别人有没有遇到同样的问题? 假设丢key了,如果key是因为expire丢失,那应该是正常,如果没有expire丢失,就是问题了,首先复现问题。...

展开...

webpack前端构建性能优化策略小结

背景 回顾2016的前端技术的发展真的可以用百(gui)花(quan)争(zhen)鸣(luan)来形容,无论是技术栈的演进,技术框架的推新,还是各种模式,反模式的最佳实践都在不断地涌现,网上的一篇文章《在2016年学JavaScript是一种什么样的体验?》更是把这一现状做了很好总结。当然,吐槽归...

展开...